Caffe入门: group参数理解

        caffe Convolution层的convolution_param参数字典中有一个group参数,其意思是将对应的输入通道与输出通道数进行分组,比如输入数据大小为90x100x100x32,90是数据批大小,100x100是图像数据shape32是通道数,要经过一个3x3x48的卷积,group默认是1,就是全连接的卷积层,如果group2,那么对应要将输入的32个通道分成216的通道,将输出的48个通道分成224的通道。对输出的224的通道,第一个24通道与输入的第一个16通道进行全卷积,第二个24通道与输入的第二个16通道进行全卷积。极端情况下,输入输出通道数相同,比如为24group大小也为24,那么每个输出卷积核,只与输入的对应的通道进行卷积。


       caffe官网原话是:group (g) [default 1]: If g > 1, we restrict the connectivity of each filter to a subset of the input. Specifically, the input and output channels are separated into g groups, and the i-th output group channels will be only connected to the i-th input group channels.

 

下面分享几个网友的问题,更深入地理解group。

1、分成几个group后,是按照group1,group2,...这样串行的计算以后再把结果传到下一层,还是这几个group是并行计算后,再把结果传到下一层

答:串行和并行看你怎么计算cpu就是串行计算后将结果综合并行计算也是gpu计算后将计算结果进行综合

2、对于输入的一个feature_map和输出的feature_map 原本输出的特征图都是由原来的所有通道做全连接(加权)得到的,现在group后只与input_dim/group个有关?

答:输出也要进行groupgroupoutput_dim/groupfeature map只与对应的input_dim/groupfeature map相连(如果不懂,仔细阅读第一段话)

发布了185 篇原创文章 · 获赞 873 · 访问量 127万+

猜你喜欢

转载自blog.csdn.net/duan19920101/article/details/102615917