【一起深度学习吧!!!!!】24/05/03

卷积层里的多输入输出通道

1、 多输入通道:

当输入包含多个通道时,需要构造一个输入通道与之相等的卷积核,以便进行数据互相关计算。

例如李沐老师中的例子:

输入有两个通道(前后),故卷积核也应有两个输入通道。

计算式子如下:

(11 + 2 2 + 43 + 5 4) + (00 + 1 1 + 32 + 43) = 56

代码演示:

python 复制代码
import torch
from d2l import torch as d2l

def corr2d_multi_in(X, K):
    # 先遍历"X"和"K"的第0个维度(通道维度),再把它们加在一起
    return sum(d2l.corr2d(x, k) for x, k in zip(X, K))
python 复制代码
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(X.shape)
print(K.shape)
print(corr2d_multi_in(X, K))

输出结果:

torch.Size(2, 3, 3)

torch.Size(2, 2, 2)

tensor(\[ 56., 72.,

104., 120.])
多个输入通道并不会影响输出张量个数
zip() :

zip() 是将不同张量中的数据,对应位置拼接起来形成元组。

例如:

python 复制代码
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]

xyz = zip(x, y, z)

print xyz

'''结果是:'''
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

在本例子中呢,根据X,K的shape可知:

第一个元组:

tensor(\[0., 1., 2.,

3., 4., 5.,

6., 7., 8.])

tensor(\[0., 1.,

2., 3.])

第二个元组:

tensor(\[1., 2., 3.,

4., 5., 6.,

7., 8., 9.])

tensor(\[1., 2.,

3., 4.])

多输出通道:

多个输出通道,也就意味着有多个卷积核的存在。

代码实现:

python 复制代码
def corr2d_multi_in_out(X, K):
    # 迭代"K"的第0个维度,每次都对输入"X"执行互相关运算。
    # 最后将所有结果都叠加在一起
    return torch.stack([corr2d_multi_in(X, k) for k in K], 0)
K = torch.stack((K, K + 1, K + 2), 0)
K.shape

torch.stack(),实现将多个张量堆叠起来,0表示从0维的位置插入。

K = torch.stack((K, K + 1, K + 2), 0) 如何理解这句代码呢?

K 一开始我们就定义了:

K = torch.tensor(\[\[0.0, 1.0,

2.0, 3.0],

\[1.0, 2.0,

3.0, 4.0\]

])

那么K+1 也就是在K的基础上,将所有元素进行加一操作。

通过stack将K,K+1,K+2 三个不同的张量(三个不同的卷积核)堆叠在一起,形成了三个输出通道。与X进行互相关操作。

相关推荐
搬砖的小码农_Sky1 小时前
AI Agent:macOS Sequoia 部署 OpenClaw 完整教程
人工智能·macos·ai·人机交互
无心水2 小时前
【Harness:设计规范】15、Harness 成熟度模型(H0-H3):你的 AI 智能体在第几层
人工智能·设计规范·openclaw·养龙虾·harness·hermes·honcho
Raink老师8 小时前
【AI面试临阵磨枪-79】实时数据 RAG:订单、商家、物流、天气、动态库存
人工智能·面试·职场和发展
脑极体8 小时前
点亮星河AI+鸿蒙,一座艺术场馆的日神觉醒
人工智能·华为·harmonyos
Cosolar8 小时前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
BUG指挥官8 小时前
Claude Code的自动化编程
人工智能
意图共鸣8 小时前
意图共鸣科技《认知智能白皮书》——感知与执行分离:认知架构(CA)如何重塑大模型底层结构
人工智能·架构
等一个人的@8 小时前
让数据自己开口:数睿通智库新增智能问数模块
人工智能·自然语言处理
ZGi.ai8 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
王莎莎-MinerU9 小时前
MinerU 深度技术解析:从架构原理到生产部署的全面指南
css·人工智能·自然语言处理·架构·ocr·个人开发