In a convolutional neural network (CNN), the layer weights are learnt such that they extract meaningful features from the data. For each layer, can we merge multiple filters into a single filter after the CNN is trained?

Example: Suppose the first layer of a CNN has N (3x3) filters. After training, how can we merge some filters out of these into a single filter and discard the individual filters, so that the merged filter will help to extract the combined features. This might need retraining the network after merging is done. This might help to reduce the number of filters in the network and may speed up inference.

Can anyone suggest some techniques using which filters can be merged?


  • $\begingroup$ Having N filters in a convolutional layer means that its output tensor has N channels. The next layer expects its input tensor to have N channels. If you "combine" all the filters in a single one, it means the output tensor of the convolutional layer would have only one channel How would that fit with the expectations of the next layer? $\endgroup$ – noe Jan 20 at 23:41
  • $\begingroup$ Not combining all N into one, but combining some filters into one and then pruning the individual filters. There are channel pruning techniques which prune channels and remove the corresponding connections to next layer. $\endgroup$ – Meenal Jan 21 at 2:36
  • $\begingroup$ I think you should clarify this in your question, with links to those techniques. $\endgroup$ – noe Jan 21 at 7:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.