ReProduceByYQ / Channel_pruning_yq

This repo is re-produce for Channel_pruning
MIT License
11 stars 1 forks source link

resnet #6

Open young-fire opened 6 years ago

young-fire commented 6 years ago

剪枝resnet实现了没有,看了下原文实现好像将caffe底层也改了,我想不改底层,能否给点建议。

Johnson-yue commented 6 years ago

resnet部分我没有实现,因为resnet只是多了一个分支,所以你实现的时候注意一下分支的问题就可以

young-fire commented 6 years ago

已经实现了,效果不太好,剪枝对应的bn和scale层,我是直接剪掉的

Johnson-yue commented 6 years ago

什么意思??你可以先把bn和scale合到conv层里面再剪啊

young-fire commented 6 years ago
            key = conv
            bn_name = 'bn'+conv[3:]
            scale_name = 'scale'+conv[3:]
            self.WPQ[(key,0)] = self.param_data(conv)
            self.WPQ[(bn_name,0)] = self.param_data(bn_name)[idxs,]
            self.WPQ[(bn_name,1)] = self.param_b_data(bn_name)[idxs,]
            self.WPQ[(scale_name,0)] = self.param_data(scale_name)[idxs,]
            self.WPQ[(scale_name,1)] = self.param_b_data(scale_name)[idxs,]
            if conv in self.selection:
                self.WPQ[(key,0)] = self.param_data(conv)[:,self.selection[conv],:,:]
            self.WPQ[(key,0)] = self.WPQ[(key,0)][idxs]

我是这么做的 ,好像和你说的不同啊。