Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请教一些疑问 #4

Open
Dawson-huang opened this issue Sep 25, 2019 · 4 comments
Open

请教一些疑问 #4

Dawson-huang opened this issue Sep 25, 2019 · 4 comments

Comments

@Dawson-huang
Copy link

非常感谢博主的开源代码。对于您的算法有点小疑问:

1、你的算法是对训练完成后的caffemodel和prototxt进行模型压缩,那如果这个caffemodel本身精度还没有训练到收敛,是否可以把Compress后的prototxt重新训练(不是findtune)一个新的压缩版caffemodel?
2、还是说原始的caffemodel就要训练得很好,然后再通过您的代码进行模型压缩得到新的caffemodel和prototxt,并且通过微调训练之后得到最终的部署caffemodel?
3、压缩之后的模型精度是否会大致按比例损失吗?

望博主解答一二,谢谢!

@MedicineStick
Copy link
Owner

同学您好!谢谢你对此项目的认可= =
1 可以对压缩完的模型进行微调,压缩后会生成相应的prototxt和caffemodel。
2 也可以直接压缩后部署,但需要边裁剪边测试,不同的层裁剪的比列需要在测试的时候确定,比如最后一个卷积层,如果裁剪0.2的测试效果好于0.25的效果,那就保留0.2的配置,再继续裁剪之前的卷积层
3不同的卷积层按相同的比列裁剪,结果差异很大,比喻有些卷积层可以裁剪50%的卷积核,而有些卷积层只能裁剪5%左右。

@Dawson-huang
Copy link
Author

非常感谢博主的耐心解答,那
1、裁剪的比例值目前只能通过不断手动测试得到吗?
2、有没有更好的方法自适应去计算这个比值?

@MedicineStick
Copy link
Owner

不客气
目前我没有做自动调节裁剪比列的工作,不过我可以给你提供一个思路,将本项目编成库,然后自己写个程序循环调库的接口并对结果进行测试,可以设置跨距。对最后的卷积层,第一次裁剪0.05,第二次裁剪0.10,第三裁剪0.15,以此类推(可以手动设置大小),找好最优解后再自动裁剪之前的卷积层。
项目跑起来可能比较费时间,但实现此工程应该工作量不大

@Dawson-huang
Copy link
Author

好的,谢谢您

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants