coldlarry / YOLOv3-complete-pruning

提供对YOLOv3及Tiny的多种剪枝版本,以适应不同的需求。
805 stars 214 forks source link

关于论文中稀疏训练的损失函数的疑惑 #85

Open songyang86 opened 4 years ago

songyang86 commented 4 years ago

大牛,我想问一个问题,我觉的论文《Learning Efficient Convolutional Networks Through Network Slimming》中给出的损失函数是针对需要剪枝的BN层的,而网络的最后层的损失函数还是经典的yolov3的损失函数,可以这样理解吗?根据代码的意思,最后的loss依然是经典的yolov3的损失函数值,没有加入L1正则的损失值

期待您的回复。十分感谢

HaolyShiit commented 4 years ago

在这里,作者直接根更新BN层的gamma参数,类似于权重的L1正则化:

https://github.com/coldlarry/YOLOv3-complete-pruning/blob/90c5869d265a632829ba7798598aa2798e4f5227/train.py#L323-L327

https://github.com/coldlarry/YOLOv3-complete-pruning/blob/90c5869d265a632829ba7798598aa2798e4f5227/utils/prune_utils.py#L121-L129

不过我也有一个疑惑,在更新BN层gamma参数的时候,作者加上了L1函数导数值,我觉得应该是减去?