26李沐动手学深度学习v2/多输入多输出通道
26李沐动手学深度学习v2/多输入多输出通道
·
多输入单输出通道互相关运算
# 2通道输入,2通道的卷积核(每个通道1个卷积核)
import torch
from d2l import torch as d2l
def corr2d_multi_in(X,K):
'''
多输入通道的卷积操作
Ci通道的输入,Co个Ci通道的卷积核,得到Co通道的输出
'''
# 循环次数=通道数,将卷积核应用到对应的输入通道上
return sum(d2l.corr2d(x,k) for x,k in zip(X,K))
# 验证互相关运算的输出
# !三维数据,第3维才是数据
#输入
#[
# 通道1:[3*3的图片],
# 通道2:[3*3的图片]
#]
#核
#[
# 通道1:[2*2的卷积核],
# 通道2:[2*2的卷积核]
#]
X = torch.tensor([[[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]],
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]])
K = torch.tensor([[[0.0, 1.0], [2.0, 3.0]], [[1.0, 2.0], [3.0, 4.0]]])
print(corr2d_multi_in(X,K))
tensor([[ 56., 72.],
[104., 120.]])
多输入多输出通道互相关运算
def corr2d_multi_in_out(X,K):
# c_o个多通道卷积核,循环次数=c_o,结果在第0维堆叠
return torch.stack([corr2d_multi_in(X,k) for k in K],0)
# +1元素值加法,c_o=3,在第0个维度堆叠,增加第0维
K = torch.stack((K, K+1, K+2), 0)
# c_o=3,3个通道的输出
print(K.shape)
print(corr2d_multi_in_out(X, K))
torch.Size([3, 2, 2, 2])
tensor([[[ 56., 72.],
[104., 120.]],
[[ 76., 100.],
[148., 172.]],
[[ 96., 128.],
[192., 224.]]])
11卷积核,相当于权重(c_o,c_i),输入(c_i,hw)的全连接层,y=wx+b
def corr2d_multi_in_out_1x1(X,K):
'''
1*1卷积核
'''
c_i,h,w=X.shape
c_o=K.shape[0]
X=X.reshape((c_i,h*w))
# c_0*c_i*1*1,每个通道1个卷积核
K=K.reshape((c_o,c_i))
# 数学矩阵乘法
Y=torch.matmul(K,X)
return Y.reshape((c_o,h,w))
# mean=0, std=1,3通道的3*3的矩阵
X=torch.normal(0,1,(3,3,3))
# 2个3通道的1*1的卷积核
K=torch.normal(0,1,(2,3,1,1))
Y1=corr2d_multi_in_out_1x1(X,K)
Y2=corr2d_multi_in_out(X,K)
# <1e-6几乎认为相等,因为浮点数是有精度的
assert float(torch.abs(Y1-Y2).sum())<1e-6
query
输入输出和通道数
- 答:输出要减半的情况下,将通道数量加1倍,多1倍的卷积核,提取更多信息。空间信息减半,把信息存储到更多的输出通道里
- 答:!多输出通道可以保留更多的空间信息
padding 0
- 答:0与卷积核相乘为0,结果是偏差(常数),对最终结果没有影响,对计算有影响
bias
- 答:有用,影响不大
深度图,深度摄像头
- 答:深度图有4个维度 第1维通道,第2维深度,宽高像素
- 答:使用3维卷积核
1x1卷积不识别空间信息
- 答:只看了1个像素,没有看多个像素,没有关注多个像素直接的相关性,没有识别空间信息
可以3x3的卷积和1x1的卷积层叠加,分别进行空间信息检测和信息融合
- 答:MobileNet,计算量低,将3x3卷积的空间提取信息输出做1x1的信息融合,?
卷积能获取位置信息吗
- 答:卷积对位置信息很敏感,使用池化层让卷积对位置信息不那么敏感
- 答:单独使用卷积,要求数据是有方向的,不同的方向是不同的数据,excel不能用来卷积
通道的信息不共享
- 答:希望每个通道的核学习不同的模式
feature map
- 答:就是卷积的输出
3d卷积处理视频
- 答:3d卷积效果比2d卷积好一点,但计算量很大
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)