动手学深度学习(Pytorch版)代码实践 -卷积神经网络-20填充与步幅

20填充与步幅

python 复制代码
import torch
from torch import nn

# 此函数初始化卷积层权重,并对输入和输出提高和缩减相应的维数
def comp_conv2d(conv2d, X):
    # 这里的(1,1)表示批量大小和通道数都是1
    #将输入张量 X 的形状调整为 (1, 1, height, width)
    X = X.reshape((1,1) + X.shape)
    Y = conv2d(X) #张量X为 8 * 8,经过conv2d,填充为1,变为10 * 10
    #卷积核为3 * 3, 得到Y为 8 * 8
    return Y.reshape(Y.shape[2:])
    #将输出张量 Y 的形状从 (1, 1, new_height, new_width) 
    #变换为 (new_height, new_width),去掉批量大小和通道数的维度。

# 请注意,这里每边都填充了1行或1列,因此总共添加了2行或2列
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1)
X = torch.rand(size=(8, 8))
print(comp_conv2d(conv2d, X).shape)
# torch.Size([8, 8])

# 步幅
# 高度和宽度的步幅设置为2,从而将输入的高度和宽度减半
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1, stride=2)
print(comp_conv2d(conv2d, X).shape)
# torch.Size([4, 4])

conv2d = nn.Conv2d(1, 1, kernel_size=(3, 5), padding=(0, 1), stride=(3, 4))
print(comp_conv2d(conv2d, X).shape)
# torch.Size([2, 2])
相关推荐
wdf80888 分钟前
算力随行:UltraLAB便携工作站如何将多卡深度学习带入户外与现场
人工智能·深度学习·大模型推理·无人机影像
Ferries2 小时前
《从前端到 Agent》系列|02:应用层-提示词工程 (Prompt Engineering)
前端·人工智能·深度学习
π....2 小时前
人工智能(AI) & 深度学习 毕设热门题目
人工智能·深度学习
AI先驱体验官5 小时前
AI智能体赛道新机遇:2026机会与挑战深度解析
大数据·人工智能·深度学习·重构·aigc
热爱生活的猴子5 小时前
什么情况是训练好验证差,什么情况判定为收敛慢,什么情况下判定为震荡,什么情况下说明是泛化差
人工智能·深度学习·机器学习
li星野5 小时前
GPT工作机制
人工智能·gpt·深度学习
Omics Pro6 小时前
空间组学下一代机器学习与深度学习
大数据·人工智能·深度学习·算法·机器学习·语言模型·自然语言处理
这张生成的图像能检测吗6 小时前
(论文速读)MoECLIP:零射异常检测补丁专家
人工智能·深度学习·计算机视觉·异常检测·clip·zero-shot方法
Rick19937 小时前
Prompt 提示词
人工智能·深度学习·prompt
披着羊皮不是狼8 小时前
CNN卷积输出尺寸计算(公式+实例)
人工智能·神经网络·cnn