Open fffyyy415 opened 4 years ago
这个取决于你的方案,这个模型是运用了《Distilling the Knowledge in a Neural Network》这篇论文的想法,用学生模型去拟合教师模型的 soft-laber(预测),相当于老师告诉你这道题目的答案,至于如何思考并没有一一细讲,因此我们也不知道学生模型是从教师模型的哪几层学到的。
基于第一个回答,后续就有人想到,只让学生模型学习教师模型的输出难度还是有点大,如果教师模型能够将它的思考过程也告诉学生模型岂不是更好,于是就有了这篇论文《Patient Knowledge Distillation for BERT Model Compression》,推荐去看一下,里面的模型图挺清楚的。这篇论文的方法我还没有实现。
这个取决于你的方案,这个模型是运用了《Distilling the Knowledge in a Neural Network》这篇论文的想法,用学生模型去拟合教师模型的 soft-laber(预测),相当于老师告诉你这道题目的答案,至于如何思考并没有一一细讲,因此我们也不知道学生模型是从教师模型的哪几层学到的。
基于第一个回答,后续就有人想到,只让学生模型学习教师模型的输出难度还是有点大,如果教师模型能够将它的思考过程也告诉学生模型岂不是更好,于是就有了这篇论文《Patient Knowledge Distillation for BERT Model Compression》,推荐去看一下,里面的模型图挺清楚的。这篇论文的方法我还没有实现。
还有个问题是 distill.sh里是run_classifier.py,而你的说明写的是 distill.sh是运行run_classifier_distill.py的脚本,请问需不需要改呢?
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
报错是:AttributeError: 'InputFeatures' object has no attribute 'soft_target' 应该是Features里没有soft_target这个参数
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
在 419 行修改成 soft_label 试一下,我刚看了下是变量名调用错了,前面传递的是 soft_label。
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
在 419 行修改成 soft_label 试一下,我刚看了下是变量名调用错了,前面传递的是 soft_label。
还是有点问题 在读取tfrecord后
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
在 419 行修改成 soft_label 试一下,我刚看了下是变量名调用错了,前面传递的是 soft_label。
还是有点问题 在读取tfrecord后
tfrecord 是新创建的吗?在你训练前有没有把之前训练过程中生成的 tfrecord 删除?
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
在 419 行修改成 soft_label 试一下,我刚看了下是变量名调用错了,前面传递的是 soft_label。
还是有点问题 在读取tfrecord后
tfrecord 是新创建的吗?在你训练前有没有把之前训练过程中生成的 tfrecord 删除?
你是说distill.sh的output里的tfrecord吗?这个是自动新建生成的啊
我在想是不是因为之前 soft_label 的问题,导致生成的 tfrecord 文件有问题,然后你没有把之前生成的 tfrecord 删除,而是继续使用了,所以会出现这个问题?
是我这边的问题,需要修改成 run_classifier_distill.py,不好意思...
但是run_classifier_distill.py里419行 features["soft_label"] = create_float_feature(feature.soft_target),soft_target会报错。应该怎么解决呢
具体报了什么错误?在 convert_single_example() 这个函数中有对 soft_target 进行打印,可以看下打印的内容是什么
在 419 行修改成 soft_label 试一下,我刚看了下是变量名调用错了,前面传递的是 soft_label。
还是有点问题 在读取tfrecord后
tfrecord 是新创建的吗?在你训练前有没有把之前训练过程中生成的 tfrecord 删除?
你是说distill.sh的output里的tfrecord吗?这个是自动新建生成的啊
我这边完整地跑了一下没有问题,稍后我把修改后的 sh 上传一下,再和你说一下步骤,或者你加我 QQ 879646529
学生模型的4层是从bert的哪几层蒸馏出来的? 如何控制蒸馏哪几层