pytorch的conv2d函数groups分组卷积使用及理解

pytorch的conv2d函数groups分组卷积使用及理解,第1张

pytorch的conv2d函数groups分组卷积使用及理解

                

'''
    groups:定义为分组:
        计算公司:输出与输入通道同时分为整数的倍数,一一对应卷积。
        表现:
            groups=2:torch.Size([6, 2, 1, 1])
                如果将group=3时,卷积核大小为torch.Size([6, 2, 1, 1]),即6个2*1*1的卷积核,只需要需要6*2*1*1=12个参数
                那么每组计算就只被in_channels/groups=2个channels的卷积核计算,当然这也会将输入分为三份大小为2*H_in*W_in的小输入,
                分别与2*1*1大小的卷积核进行三次运算,然后将得到的3个2*H_out*W_out的小输出concat起来得到最后的6*H_out*W_out输出
            groups=3:torch.Size([6, 3, 1, 1])
            groups=1:torch.Size([6, 6, 1, 1]) 
                当group=1时,该卷积层需要6*6*1*1=36个参数,即需要6个6*1*1的卷积核.
                也就是6个卷积核与6个输入相乘。是6*H_in*W_in的输入整个乘以一个6*1*1的卷积核,乘以6次。
        总结:就是输入,输出的深度同时除以groups。
        效果:在实际实验中,同样的网络结构下,这种分组的卷积效果是好于未分组的卷积的效果的。
        2、为什么要设置groups参数,有什么优点?
            为了在GPU上并行计算:
            普通的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5495674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存