he-y / soft-filter-pruning

Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks
https://arxiv.org/abs/1808.06866
376 stars 74 forks source link

why add bn_value in imagenet_resnet_small.py #27

Open Emily0219 opened 4 years ago

Emily0219 commented 4 years ago

你好,这里的bn_value不就是bn3.weight吗?为什么residual还要再加一次呢? `

    residual += self.bn_value.cuda()
    residual.index_add_(1, self.index.cuda(), out)
    residual = self.relu(residual)

`

Emily0219 commented 4 years ago

看您之前的解释,是零输入对应的bn层输出,那为什么不减去bn_value呢?是因为未剪枝前bn就有输出,所以剪完枝之后要加上吗?

zhangxin-xd commented 2 years ago

Hi, I also don't understand this operation. Do you have any answers? @Emily0219

zhangxin-xd commented 2 years ago

应该是这样的,是因为bn_value是对应剪掉位置的bn值,self.bn3的大小则和conv3保持一致(只有remaining 的filter对应的值), bn_value相当于0输入时,剪掉部分的对应输出,所以需要加上