知识蒸馏得到三个文件
然后我执行了脚本
但是发现不太对,所以不清楚这个脚本执行应该怎么操作呢
可以去看看那个.yaml文件的设置和配置,内容如果没有配置好数据肯定有差异
我在train.py进行训练的时候,除了对训练集进行训练,同时也对验证集进行了验证(在验证集上的acc能达到0.9的,训练、验证配置的信息都在.yaml文件里面,所以应该.yaml文件没有什么问题吧?哈哈不是很清楚),然后执行eval.py就是对验证集进行重新测试,所以我觉得是不是执行eval.py的时候,-o pretrained_model参数设置的不对呢,因为没有用知识蒸馏的时候模型输出只有ppcls.pdparams和ppcls.pdopt,没有ppcls_student.paparams
解决了,确实需要修改配置文件:
执行eval.py如下:
原本的配置文件在训练时是下面这样的:
训练完成后,执行eval.py的话,需要把红框内容删去(不再是蒸馏模式并且模型名称改为学生模型名称),这样得到了正确结果:
要执行infer.py的时候,执行如下指令(注意红框部分):
终于发现了,确实是配置文件的问题,但是这个在paddleclas文档里面好像没有提及,特别是训练和验证的时候配置文件的模型名称那里,不太容易注意到,谢谢了
客气了客气了
可以去看看那个.yaml文件的设置和配置,内容如果没有配置好数据肯定有差异
我在train.py进行训练的时候,除了对训练集进行训练,同时也对验证集进行了验证(在验证集上的acc能达到0.9的,训练、验证配置的信息都在.yaml文件里面,所以应该.yaml文件没有什么问题吧?哈哈不是很清楚),然后执行eval.py就是对验证集进行重新测试,所以我觉得是不是执行eval.py的时候,-o pretrained_model参数设置的不对呢,因为没有用知识蒸馏的时候模型输出只有ppcls.pdparams和ppcls.pdopt,没有ppcls_student.paparams
解决了,确实需要修改配置文件:
执行eval.py如下:
原本的配置文件在训练时是下面这样的:
训练完成后,执行eval.py的话,需要把红框内容删去(不再是蒸馏模式并且模型名称改为学生模型名称),这样得到了正确结果:
要执行infer.py的时候,执行如下指令(注意红框部分):
终于发现了,确实是配置文件的问题,但是这个在paddleclas文档里面好像没有提及,特别是训练和验证的时候配置文件的模型名称那里,不太容易注意到,谢谢了
客气了客气了