Closed 1171000410 closed 2 years ago
你好,感谢对我们工作的关注。
为解决这个问题,我们设计了一个ratio loss(见论文中公式15),监督训练时的剪枝比例等于一个预先定义的比例,然后再测试时候直接应用这个比例。在模型收敛后,我们观察到ratio loss非常小,说明此时训练和测试的情况已经基本一致了。
谢谢作者回复! 我还想追问一下。我现在做的任务测试的时候可能没办法固定比例裁剪,请问作者试过以下方式吗,训练的时候不设定比例,让网络自己学习出裁剪的方式,然后测试阶段也是不同数据预测出不同的裁剪方式。
我简单试过这个方案,大概和固定比例准确率差不多,但是会导致batch无法并行,很难实现在gpu上的加速,所以我们最终没有继续探索这个方向。我觉得如果训练得当,不固定比例的方法上限是更高的。
请问不设定预定比例,不使用ratio loss的情况下,学出来的裁剪比例大概是什么样呀? 我的场景需要用到一个类似的模型和gumbel softmax,但模型会渐渐学成裁剪掉所有token,不知道您有没有什么建议。还有我的应用只关心batch size=1 的情况,所以不在意batch无法并行的问题。
@kaikai23,我的建议是各种情况都应该加入ratio loss,但是可能计算方法不太一样。比如可以约束整个batch的平均剪枝比例,先对batch内剪枝比例取平均,再监督mse,或者设计其他的方式。
谢谢回复!
作者您好,据我的理解,训练时候不同图片裁剪的token数目不同,是通过网络学出来的,而测试的时候裁剪的比例是固定的。
那么会不会导致训练测试阶段不一致呢?而且测试阶段的裁剪比例影响是不是也挺大的?