当前位置: 首页 > java >正文

PyTorch卷积层填充(Padding)与步幅(Stride)详解及代码示例

本文通过具体代码示例讲解PyTorch中卷积操作的填充(Padding)步幅(Stride)对输出形状的影响,帮助读者掌握卷积层的参数配置技巧。


一、填充与步幅基础

  • 填充(Padding):在输入数据边缘添加指定数量的像素,用于控制输出尺寸的大小。

  • 步幅(Stride):卷积核在输入数据上每次滑动的步长,用于控制输出尺寸的缩小比例。

输出尺寸计算公式:

二、代码实现与示例

1. 全侧边填充1个像素

import torch
from torch import nndef comp_conv2d(conv2d, x):x = x.reshape((1, 1) + x.shape)  # 增加批次和通道维度y = conv2d(x)                    # 计算卷积return y.reshape(y.shape[2:])    # 删除批次和通道维度# 创建卷积层:3x3卷积核,填充1像素
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1)
x = torch.rand((8, 8))               # 8x8输入矩阵
comp_conv2d(conv2d, x).shape         # 输出形状

输出结果

torch.Size([8, 8])


解析:填充1像素后,输入尺寸保持不变。


2. 非对称填充(高度和宽度不同)

# 创建卷积层:5x3卷积核,高度填充2,宽度填充1
conv2d = nn.Conv2d(1, 1, kernel_size=(5, 3), padding=(2, 1))
comp_conv2d(conv2d, x).shape

输出结果

torch.Size([8, 8])

3. 步幅设置为2

# 创建卷积层:3x3卷积核,填充1,步幅2
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1, stride=2)
comp_conv2d(conv2d, x).shape

输出结果

torch.Size([4, 4])

4. 复杂参数组合 

# 创建卷积层:3x5卷积核,高度不填充,宽度填充1,步幅(3,4)
conv2d = nn.Conv2d(1, 1, kernel_size=(3, 5), padding=(0, 1), stride=(3, 4))
comp_conv2d(conv2d, x).shape

输出结果

torch.Size([2, 2])

 

三、总结

  1. 填充用于保持输入输出尺寸一致或调整边缘特征保留。

  2. 步幅用于降低输出尺寸,减少计算量。

  3. 通过组合不同参数,可灵活控制卷积层的输出形状。

建议读者通过修改参数自行实验,深入理解公式中的数值变化规律。

http://www.xdnf.cn/news/1127.html

相关文章:

  • 一款丰富的工作流自动化平台 | N8N 83.6K ⭐
  • 基于外部中中断机制,实现以下功能: 1.按键1,按下和释放后,点亮LED 2.按键2,按下和释放后,熄灭LED 3.按键3,按下和释放后,使得LED闪烁
  • Android 中实现图片翻转动画(卡片翻转效果)
  • react使用01
  • 基于微信小程序的走失儿童帮助系统-项目分享
  • PerfettoSQL
  • 火山引擎实时语音合成WebSocket V3协议Python实现demo
  • redis数据类型-基数统计HyperLogLog
  • 搜索引擎的高级语法
  • 前端性能优化全攻略:JavaScript 优化、DOM 操作、内存管理、资源压缩与合并、构建工具及性能监控
  • 复刻低成本机械臂 SO-ARM100 3D 打印篇
  • RHCE 作业二(密钥登录实验)
  • XPath 语法入门
  • day35图像处理OpenCV
  • docker镜像新增加用户+sudo权限,无dockerfile
  • osxcross 搭建 macOS 交叉编译环境
  • LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
  • [特殊字符]【Qt自定义控件】创意开关按钮 - 丝滑动画+自定义样式+信号交互 | 附完整源码
  • 人工智能在PET-CT中的应用方向探析
  • 环境变量(Linux)
  • SparkStreaming概述
  • C# MP3 伴奏
  • MYSQL之库的操作
  • C++设计模式
  • Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介
  • MongoDB常用命令
  • 01-STM32基本知识点和keil5的安装
  • 【白雪讲堂】[特殊字符]内容战略地图|GEO优化框架下的内容全景布局
  • 7N60-ASEMI无人机专用功率器件7N60
  • Elasticsearch 使用reindex进行数据同步或索引重构