动手学深度学习(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])
相关推荐
Fleshy数模1 小时前
基于PyTorch的食品图像分类:数据增强与调优实战
人工智能·pytorch·分类
Daydream.V2 小时前
卷积神经网络——附水果分类案例及参数优化
人工智能·分类·cnn·卷积神经网络
DANGAOGAO3 小时前
Transformer学习
深度学习·学习·transformer
纤纡.3 小时前
矿物识别分类:8 种机器学习算法对比与实战(平均值填充数据集)
python·深度学习·算法·机器学习
Figo_Cheung3 小时前
Figo量子压缩态几何优化理论——首次将压缩参量空间建模为黎曼流形,为量子精密测量、连续变量量子计算和量子通信等领域提供新的理论框架。
深度学习·量子计算
骇客野人3 小时前
用python实现Transformer
人工智能·深度学习·transformer
听风吹等浪起5 小时前
【SwinTransformer 全维度改进方案矩阵】—— 覆盖注意力、多尺度、通道/空间增强,适配CV全场景的工业级优化库
人工智能·深度学习·线性代数·计算机视觉·矩阵
bryant_meng5 小时前
【NLP】《The Evolution of NLP: Understanding RNNs, Seq2Seq, and Attention》
人工智能·深度学习·自然语言处理·attention·seq2seq
jay神5 小时前
基于YOLOv8的传送带异物检测系统
人工智能·python·深度学习·yolo·可视化·计算机毕业设计
放下华子我只抽RuiKe56 小时前
文本处理与RNN:硬核实战笔记
人工智能·rnn·深度学习·神经网络·线性代数·机器学习·矩阵