network-slimming icon indicating copy to clipboard operation
network-slimming copied to clipboard

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

Open songyang86 opened this issue 4 years ago • 3 comments

大神,你好。我想问一个问题,我觉的论文《Learning Efficient Convolutional Networks Through Network Slimming》中给出的损失函数是针对需要剪枝的BN层的,而网络的最后层的损失函数还是经典的yolov3的损失函数,可以这样理解吗?根据代码的意思,最后的loss依然是经典的yolov3的损失函数值,没有加入L1正则的损失值。如果在网络的最后的损失函数是论文中的公式话,那么应该对每层的反向梯度就都应该包含L1正则的梯度

期待您的回复。十分感谢

songyang86 avatar Jun 21 '20 13:06 songyang86

而网络的最后层的损失函数还是经典的yolov3的损失函数 这里的网络是做classification而不是detection的。我们的l1损失没有加入到损失函数里,而是直接算出gradient来做update,见这个函数 https://github.com/Eric-mingjie/network-slimming/blob/master/main.py#L126

Eric-mingjie avatar Jun 21 '20 21:06 Eric-mingjie

大神,你好。 非常感谢你的回复! 我是这样理解的,即使将l1损失加入到最终损失函数里,但在反向传播时候,对于不需要剪枝或者不含有BN的网络层,对其求偏导得到的导数其实也不包含L1正则的导数,这与在反向传播时候直接对BN网络层的导数加上L1正则的导数是等效的,可以这样理解吗? 谢谢你的及时回复

songyang86 avatar Jun 23 '20 05:06 songyang86

是的

Eric-mingjie avatar Jun 23 '20 18:06 Eric-mingjie