假设我们有一个特征图,尺寸为
32
×
32
32 × 32
32×32 像素,包含
64
64
64 个通道(深度)。我们希望通过
1
×
1
1 × 1
1×1 卷积来减少通道数,设目标通道数为
32
32
32。
示例步骤:
-
输入特征图:
- 尺寸: 32 × 32 × 64 32 × 32 × 64 32×32×64
- 表示: 32 × 32 32 × 32 32×32 的空间维度和 64 64 64 个通道。
-
1x1卷积层:
- 卷积核:设置为 1 × 1 1 × 1 1×1 的卷积核,每个卷积核具有 64 64 64 个输入通道和 32 32 32 个输出通道。
- 卷积操作:对于输入特征图中的每个 32 × 32 32 × 32 32×32 的位置,应用 32 32 32 个 1 × 1 1 × 1 1×1 卷积核(每个卷积核权重矩阵是 1 × 1 × 64 1 × 1 × 64 1×1×64),计算得到 32 32 32 个新的通道值。
-
输出特征图:
- 尺寸: 32 × 32 × 32 32 × 32 × 32 32×32×32
- 表示:空间维度不变,通道数减少到 32 32 32。
具体例子:
假设卷积核的设置如下:
- 输入特征图:假设有一个位置 ( x , y ) (x, y) (x,y) 的输入特征图,通道数据为 [ a 1 , a 2 , . . . , a 64 ] [a_1, a_2, ..., a_{64}] [a1,a2,...,a64]。
- 卷积核:第一个卷积核的权重是 [ w 1 , 1 , w 1 , 2 , . . . , w 1 , 64 ] [w_{1,1}, w_{1,2}, ..., w_{1,64}] [w1,1,w1,2,...,w1,64],第二个卷积核的权重是 [ w 2 , 1 , w 2 , 2 , . . . , w 2 , 64 ] [w_{2,1}, w_{2,2}, ..., w_{2,64}] [w2,1,w2,2,...,w2,64],以此类推,共有 32 32 32 个卷积核。
卷积计算:
-
卷积结果:对于每个 1 × 1 1 × 1 1×1 位置,使用第一个卷积核的权重进行计算得到输出通道 1 1 1 的值:
Output ( x , y , 1 ) = ∑ i = 1 64 a i × w 1 , i \text{Output}_{(x, y, 1)} = \sum_{i=1}^{64} a_i \times w_{1,i} Output(x,y,1)=i=1∑64ai×w1,i -
同样,使用第二个卷积核的权重计算得到输出通道 2 2 2 的值:
Output ( x , y , 2 ) = ∑ i = 1 64 a i × w 2 , i \text{Output}_{(x, y, 2)} = \sum_{i=1}^{64} a_i \times w_{2,i} Output(x,y,2)=i=1∑64ai×w2,i以此类推,直到得到 32 32 32 个输出通道的值。
最终结果:
- 输出特征图:每个位置 ( x , y ) (x, y) (x,y) 现在有 32 32 32 个通道值,空间尺寸保持为 32 × 32 32 × 32 32×32,因此最终输出的特征图尺寸为 32 × 32 × 32 32 × 32 × 32 32×32×32。
通过这种方式, 1 × 1 1×1 1×1卷积有效地将输入特征图的通道数从 64 64 64 减少到 32 32 32,同时保持了空间尺寸不变。这不仅减少了计算量,还降低了模型的复杂性。