Eric-mingjie / network-slimming

Network Slimming (Pytorch) (ICCV 2017)
MIT License
907 stars 214 forks source link

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

Open songyang86 opened 4 years ago

songyang86 commented 4 years ago

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

期待您的回复。十分感谢

Eric-mingjie commented 4 years ago

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

songyang86 commented 4 years ago

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

Eric-mingjie commented 4 years ago

是的