首页 Paddle框架 帖子详情
paddleclas通过知识蒸馏训练得到的模型该如何使用 已解决
收藏
快速回复
Paddle框架 问答模型训练深度学习 1465 5
paddleclas通过知识蒸馏训练得到的模型该如何使用 已解决
收藏
快速回复
Paddle框架 问答模型训练深度学习 1465 5

知识蒸馏得到三个文件

 

然后我执行了脚本

 

但是发现不太对,所以不清楚这个脚本执行应该怎么操作呢

璨璨
已解决
5# 回复于2022-02
解决了,确实需要修改配置文件: 执行eval.py如下: [图片]   原本的配置文件在训练时是下面这样的: [图片]   训练完成后,执行eval.py的话,需要把红框内容删去(不再是蒸馏模式并且模型名称改为学生模型名称),这样得到了正确结果: [图片]   要执行infer.py的时候,执行如下指令(注意红框部分): [图片]      
展开
0
收藏
回复
全部评论(5)
时间顺序
三岁
#2 回复于2022-02

可以去看看那个.yaml文件的设置和配置,内容如果没有配置好数据肯定有差异

0
回复
璨璨
#3 回复于2022-02
三岁 #2
可以去看看那个.yaml文件的设置和配置,内容如果没有配置好数据肯定有差异

我在train.py进行训练的时候,除了对训练集进行训练,同时也对验证集进行了验证(在验证集上的acc能达到0.9的,训练、验证配置的信息都在.yaml文件里面,所以应该.yaml文件没有什么问题吧?哈哈不是很清楚),然后执行eval.py就是对验证集进行重新测试,所以我觉得是不是执行eval.py的时候,-o pretrained_model参数设置的不对呢,因为没有用知识蒸馏的时候模型输出只有ppcls.pdparams和ppcls.pdopt,没有ppcls_student.paparams

0
回复
璨璨
#5 回复于2022-02

解决了,确实需要修改配置文件:

执行eval.py如下:

 

原本的配置文件在训练时是下面这样的:

 

训练完成后,执行eval.py的话,需要把红框内容删去(不再是蒸馏模式并且模型名称改为学生模型名称),这样得到了正确结果:

 

要执行infer.py的时候,执行如下指令(注意红框部分):

 

 

 

0
回复
璨璨
#6 回复于2022-02
三岁 #2
可以去看看那个.yaml文件的设置和配置,内容如果没有配置好数据肯定有差异

终于发现了,确实是配置文件的问题,但是这个在paddleclas文档里面好像没有提及,特别是训练和验证的时候配置文件的模型名称那里,不太容易注意到,谢谢了

0
回复
三岁
#7 回复于2022-02
璨璨 #6
终于发现了,确实是配置文件的问题,但是这个在paddleclas文档里面好像没有提及,特别是训练和验证的时候配置文件的模型名称那里,不太容易注意到,谢谢了

客气了客气了

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户