卷积模块参数及channel计算

假设输入数据为2个三维数据块,batch数目为b,channel数目为ch_in(这里即是2),三维数据的尺寸即D、H、W。

那么,输入张量的维度应为 (b,ch_in,d,h,w) ,其中:

  • b:batch的大小。使用训练集中的一小部分样本队模型权重进行一次反向传播的参数更新,这一小部分样本被称为"一批数据",这一批数据的数目即batch的尺寸b。
  • ch_in:输入数据的通道数量。比如这里,我们的输入是两个三维数据块,那么ch_in的大小就是2。在彩色图像的输入中,RGB三个通道,ch_in大小就是3。
  • d:输入数据的深度,切片数量。
  • h:输入数据的高度,单张二维切片的高。
  • w:输入数据的宽度,单张二维切片的宽。

输出张量的维度应为 (b,ch_out,d',h',w') ,其中:

  • b:批处理数量,与输入一致。
  • ch_out:输出数据的通道数量,表示经过卷积操作后输出特征图的通道数。由卷积操作所设置的out_channels决定。
  • d':输出数据的切片数量。
  • h':输出数据的单张二维切片的高。
  • w':输出数据的单张二维切片的宽。

这里以医学图像为例,网络的输入为2个三维医学图像(尺寸为300*48*48),即输入张量的尺寸为(b,2,300,48,48)。

使用nn.Conv3d进行三维卷积操作,其使用方法如下:

torch.nn.Conv3d(in_channels, 
                out_channels, 
                kernel_size, 
                stride=1, 
                padding=0, 
                dilation=1, 
                groups=1, 
                bias=True,
                padding_mode = 'zeros')

参数解释:

  • in_channels(int):输入张量的通道数
  • out_channels(int):卷积中滤波器的数量,表示输出张量的通道数
  • kernel_size(int or tuple):卷积窗口的宽度和高度
  • stride(int or tuple):输入的每一条边填充的层数
  • 其他参数默认即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Yolov5中,CBS模块是指通道块压缩模块Channel Block Squeeze)。该模块是通过一系列的卷积操作来对输入特征图进行处理,以减少计算量和参数数量。在Yolov5的不同版本中,CBAM模块的结构有所变化。 在Yolov5的6.1版本中,作者建议不要全部替换C3模块,因为这样可能会产生负面影响。相反,可以对C3模块中的卷积操作进行改进,例如使用空洞卷积、分组卷积等方法,以实现轻量化的效果。此外,在backbone的深层添加注意力机制模块,可以更好地提升模型性能,但是对于浅层特征的影响较小。最后,针对空间金字塔部分,也可以参考一些资料来改进,以增强浅层信息和深层信息的有机结合。 在Yolov5中,作者还对最大池化操作的卷积核大小进行了改变,将其全部替换成了5x5大小的卷积核。这样可以在保持相同效果的情况下提升计算速度。此外,作者还借鉴了残差结构,减少了SPP模块中通道数的数量,以减少计算量。针对这一点,我们可以对网络结构进行改进。 此外,Yolov5中还使用了卷积层(CBS)来处理特征图。具体而言,首先使用了一个1x1的卷积层(CBS),然后是一个3x3的卷积层(CBS),最后将残差结构与初始输入相加。与原始的Bottleneck结构相比,这种处理方式减少了一个1x1卷积的升维操作,而是使用了Concat操作来实现特征图的融合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值