多通道卷积的参数数量计算

还是这张老图:
在这里插入图片描述

输入3通道5×5的特征图,利用3×3卷积,输出为2通道。

首先记一点,输出特征图的通道数是多少,那么该卷积层就有多少个卷积核。各个卷积核互相独立,分别负责输出特征图的某一通道。

例如,上图输出通道数为2,则该3×3的卷积层就会有2个卷积核(中间那两列粉色的)。而每个卷积核的深度(通道数)等于输入特征图的通道数,以一一对应进行运算。

对于本例,由于卷积核尺寸为3×3,则某个卷积核的某一层的参数数量为3×3=9。而卷积核的通道数等于输入特征图的通道数3,则该卷积核的参数数量为9×3=27。加上卷积过后还要进行偏置运算(bias),此时共28个参数。输出为2通道,因此共2个这样的卷积核,该卷积层总计可训练的参数数量为28×2=56。

直接数图中的参数数量,可以验证有56个可训练参数,也可以用torchsummary证实下:

from torchsummary import summary
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 2, 3, padding=1)
    
    def forward(self, x):
        x = self.conv1(x)
        return x

net = Net()
summary(net, (3, 5, 5))

输出:

----------------------------------------------------------------
        Layer (type)               Output Shape         Param #
================================================================
            Conv2d-1              [-1, 2, 5, 5]              56
================================================================
Total params: 56
Trainable params: 56
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.00
Forward/backward pass size (MB): 0.00
Params size (MB): 0.00
Estimated Total Size (MB): 0.00
----------------------------------------------------------------
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值