卷积神经网络中的卷积反卷积及池化计算公式、特征图通道数(维度)变化、卷积核大小与深度等概念解释

1.计算公式

设:
图像宽为W,高为H,通道数为C;
卷积核尺寸为K,通道数为D,个数为N;
卷积运算步长为S,0填充大小为P;
输入和输出量分别以1和2表示。

卷积:

W2 = (W1 - K + 2×P) / S + 1
H2 = (H1 - K + 2×P) / S + 1
C2 = N

反卷积:

W2 = (W1-1) × S + K - 2×P
H2 = (H2-1) × S + K - 2×P
C2 = N

池化:

W2 = (W1 - K) / S + 1.
H2 = (H1 - K) / S + 1.
C2 = C1

卷积、反卷积和池化操作均可改变图像尺寸大小,但池化操作不会改变图像的通道数,而卷积与反卷积通常会改变图像的通道数。

2.特征图通道数(维度)变化

经过卷积运算输出的特征图通道数仅由卷积核的个数决定,随各卷积层中卷积核的个数变化而变化,即C2=N,例如32×32×3经过5个5×5×3的卷积核运算后输出的特征图通道数即为5,如28×28×5。

3.卷积核大小与深度

卷积核通道数

卷积核的通道数只与输入图像的通道数有关,在进行卷积运算时,要求用于运算的卷积核的通道数应与输入图像的通道数一致,即D=C1,例如对32×32×3大小的输入图像进行卷积计算,卷积核通道数也为3,如5×5×3;

卷积核深度

卷积核深度就是卷积核的个数,每个卷积核中各通道与输入图像各通道相对应,所有通道同时分别进行运算,然后形成输出特征图其中的一个通道,多个卷积核运算后便形成多个通道,因此卷积核的深度也就是输出图像的通道数
再结合上一条,则卷积核的深度同时也决定了下一卷积层中卷积核的通道数,因为本卷积层输出图像就是下一层的输入图像;

最后附上一张动图帮助理解

卷积运算动态演示

卷积运算

### 卷积计算公式解释 卷积神经网络(CNN)中的卷积层通过特定的数学运算来处理输入数据,这些运算是基于卷积核(也称为滤波器或权重矩阵)。对于给定的一个二维输入图像 \( I \),以及一个大小为 \( k \times k \)卷积核 \( K \)卷积操作可以表示如下: \[ (I * K)(i,j)=\sum_{m=0}^{k-1}\sum_{n=0}^{k-1} I(i+m, j+n)\cdot K(m,n) \] 这里 \( i \),\( j \) 表示输出特征图的位置坐标;而 \( m \),\( n \)[^1] 则遍历整个卷积核。 当涉及到更复杂的场景时,比如彩色图片或者多通道的数据,则会引入额外维度来进行描述。此时卷积过程变为三维形式,在每个位置上执行的是体素级别的乘积累加操作: \[ O(x,y,c')=\sigma(\sum_{d=0}^{D-1}\sum_{u=-a}^{a}\sum_{v=-b}^{b}(W(u,v,d,c')\odot X(x+u,y+v,d))+B(c')) \] 其中 \( D \) 是输入张量的深度通道数,\( a,b \) 定义了卷积窗口尺寸的一半宽度和高度,\( c' \) 指向当前正在计算的新特征映射索引,\( W \) 和 \( B \) 分别对应于可训练参数——权值和偏置项。\(^{[^2]}\) 为了适应不同需求下的模型设计灵活性,通常还会考虑步幅(stride) s 和填充(padding) p 参数的影响。前者决定了滑动窗移动的距离间隔,后者用于控制边界扩展方式从而影响最终输出尺寸。具体来说, 如果设原始输入尺寸为 H×W ,则经过一次标准卷积变换后的输出尺寸可以通过下面这个简单的关系式得到: \[ H_{out}=((H+2p-k)/s)+1 \\ W_{out}=((W+2p-k)/s)+1 \]^ {[^3]} 上述关系不仅适用于单个卷积层内部的操作定义,同时也构成了构建复杂深层架构的基础理论依据之一。 ```python import torch.nn as nn conv_layer = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=(3, 3), stride=1, padding=1) ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值