21-多输入输出通道
21-多个输入和输出通道
本节目录:
1.多个输入通道:
-
彩色图像可能有 RGB 三个通道
-
转换为灰度会丢失信息
-
每个通道都有一个卷积和,结果是所有通道卷积结果的和
- 输入X:
- 核W:
- 输出Y:
多个输入通道:
import torch
from d2l import torch as d2l
def corr2d_multi_in(X, K):
return sum(d2l.corr2d(x, k) for x, k in zip(X, K))
2.多个输出通道
- 无论有多少输入通道,到目前位置我们植绒到单输出通道
- 我们可以有多个三维卷积核,每个核生成一个输出通道
- 输入X:
- 核W:
- 输出Y:
多个输出通道:
def corr2d_multi_in_out(X, K):
return torch.stack([corr2d_multi_in(X, k) for k in K], 0)
3.多个输入和输出通道
- 每个通道可以识别特定的模式
- 输入通道核识别并组合输入中的模式
4.1X1 卷积层
def corr2d_multi_in_out_1x1(X, K):
c_i, h, w = X.shape
c_o = K.shape[0]
X = X.reshape((c_i, h * w))
K = K.reshape((c_o, c_i))
Y = torch.matmul(K, X)
return Y.reshape((c_o, h, w))
5.二维卷积层
6.总结
- 输出通道数是卷积层的超参数
- 每个输入通道有独立的二维卷积和,所有通道结果相加得到一个输出通道结果
- 每个输出通道有独立的三维卷积核
7.Q&A
Q1:网络越深,Padding 0 越多,这里是否会影响性能?
这里性能分为计算性能和网络性能,Padding 0 不会影响网络精度,但会使计算复杂
Q2:计算卷积时,bias 的有无对结果影响大吗?bias 的作用怎么解释?
因为正则化的操作,bias 对结果影响不大,但加入 bias 对计算性能基本无影响,故默认加入 bias
Q3:如果是一个 rgb 图像,加上深度图,相当于是四个通道吗?
不是,输入输出通道单列,这里使用 3d 的卷积,输入变为 4 维,核是 5 维
Q4:怎么理解 1x1 卷积核不识别空间模式?
因为输出的一个像素只对应输入的一个像素,所以没有获取到空间信息
Q5:是不是可以 3x3x3 和 1x1xN 的卷积层叠加,来进行空间信息的检测和信息融合,以及输出通道的调整?
是的,mobile net 就是这种思想
Q6:3d 卷积是处理视频问题的吧?也可以处理 rgb 加深度信息吗?
都可以,rgb 加深度信息甚至可以用 2d 卷积处理。