yolov5prune icon indicating copy to clipboard operation
yolov5prune copied to clipboard

关于sr这个参数有一些问题想请教一下大佬

Open zhangxiaohuixuhao opened this issue 3 years ago • 12 comments

首先非常感谢作者开源该项目代码。 其次有以下几个问题请教一下大佬:

  1. "sr的选择需要根据数据集调整,可以通过观察tensorboard的map,gamma变化直方图等选择",关于这句话的理解不是很深刻,能不能麻烦大佬给解释一下。
  2. sr这个参数使用作者给出的“0.001”,但是对于自己的数据集会出现train.py训练的准确率与train_sparsity.py训练的准确率不相同,调小准确率会上升,具体的原因是什么呢? 做的几个实验以及实验的截图,如下: sr=0.001--->0.0001 image-20210701134823875 sr=0.0001--->0.00001 image-20210701134359626 sr = 0.00001---->0.000001 image-20210701134158329 MPA50的统计分别是 image-20210701142512917

zhangxiaohuixuhao avatar Jul 01 '21 06:07 zhangxiaohuixuhao

  1. sr是稀疏正则项的系数, 当稀疏训练map和baseline差距较大,可以适当调小sr;当稀疏收敛过快,如图一,也需要适当调小. map和剪枝之前需要trade off, 这个要看你实际需要.
  2. 我这里选用的0.001,是因为我数据集很简单,只有2k图片, 如果你的数据集很大,而且batch size设置的很小,那么你迭代的次数很多,每次迭代都会进行一次稀疏, 所以如果你迭代的次数很多(大数据集,或者batch size很小),可以设置小一点sr例如1e-4 等.

midasklr avatar Jul 02 '21 02:07 midasklr

好的,谢谢大佬,给大佬递茶

zhangxiaohuixuhao avatar Jul 02 '21 03:07 zhangxiaohuixuhao

好的,谢谢大佬,给大佬递茶

我只是渣渣...

midasklr avatar Jul 02 '21 04:07 midasklr

请问bn_weights一定要在0附加吗,就类似于上面的图片那样,我稀疏训练后的分布变化不是很大,从权重分布从1->0.8,这这种情况可以剪枝吗 $B0MW9TO9P D $9`S5$ 7)3

big-xiao avatar Nov 25 '21 13:11 big-xiao

请问bn_weights一定要在0附加吗,就类似于上面的图片那样,我稀疏训练后的分布变化不是很大,从权重分布从1->0.8,这这种情况可以剪枝吗 $B0MW9TO9P D $9`S5$ 7)3

你的稀疏率sr 太小了 调大多试几次

503092317 avatar Mar 16 '22 07:03 503092317

请问bn_weights一定要在0附加吗,就类似于上面的图片那样,我稀疏训练后的分布变化不是很大,从权重分布从1->0.8,这这种情况可以剪枝吗 $B0MW9TO9P D $9`S5$ 7)3

大佬,请问下你这个bn层权重的可视化软件是什么呢

Nwaf-sl avatar May 10 '22 08:05 Nwaf-sl

可视化使用的tensorboard,作者代码都写好了,我也是使用

503092317 avatar May 10 '22 08:05 503092317

image 不好意思,我问的是这种可视化图片

Nwaf-sl avatar May 10 '22 08:05 Nwaf-sl

image 不好意思,我问的是这种可视化图片

这种可视化图片也是从tensorboard中导出的,具体怎么画你需要参考作者代码

503092317 avatar May 10 '22 09:05 503092317

image 不好意思,我问的是这种可视化图片

这种可视化图片也是从tensorboard中导出的,具体怎么画你需要参考作者代码 好的,十分感谢

Nwaf-sl avatar May 10 '22 09:05 Nwaf-sl

2. 如果你的数据集很大,而且batch size设置的很小,那么你迭代的次数很多,每次迭代都会进行一次稀疏, 所以如果你迭代的次数很多(大数据集,或者batch size很小),可以设置小一点sr例如1e-4 等.

大佬,我稀疏化设为sr-0.5,变化还不是很明显,这该怎么办?VOC数据集,周期450,每个周期变化只有一点点。

silenterA2 avatar Aug 25 '22 15:08 silenterA2

  1. sr是稀疏正则项的系数, 当稀疏训练map和baseline差距较大,可以适当调小sr;当稀疏收敛过快,如图一,也需要适当调小. map和剪枝之前需要trade off, 这个要看你实际需要.
  2. 我这里选用的0.001,是因为我数据集很简单,只有2k图片, 如果你的数据集很大,而且batch size设置的很小,那么你迭代的次数很多,每次迭代都会进行一次稀疏, 所以如果你迭代的次数很多(大数据集,或者batch size很小),可以设置小一点sr例如1e-4 等.

大佬,我想问一下这个稀疏训练是从头开始重新训练吗?可不可以加载我已经训练好的模型进行稀疏化训练?

puyiwen avatar Oct 12 '22 09:10 puyiwen