21-多输入输出通道

21-多个输入和输出通道

本节目录:

1.多个输入通道:

  • 彩色图像可能有 RGB 三个通道

  • 转换为灰度会丢失信息

    image
  • 每个通道都有一个卷积和,结果是所有通道卷积结果的和

image
  • 输入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.多个输入和输出通道

  • 每个通道可以识别特定的模式
image
  • 输入通道核识别并组合输入中的模式

4.1X1 卷积层

image
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.二维卷积层

image

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 卷积处理。

上一页
下一页