卷积输出尺寸计算:5种常见场景(含padding/stride)与1个通用公式推导
卷积输出尺寸计算5种常见场景与通用公式推导实战指南在深度学习的实际工程中卷积神经网络CNN的设计往往需要精确控制特征图的尺寸变化。许多开发者在调整网络结构时常会遇到特征图尺寸意外缩小的困扰——这可能源于对卷积参数影响的误判。本文将系统梳理卷积输出尺寸的计算逻辑提供可直接套用的决策流程图和配置速查表并通过PyTorch代码验证五种典型场景下的计算结果。1. 卷积参数的核心影响维度卷积操作的输出尺寸主要由三个参数决定卷积核大小Kernel Size、填充Padding和步长Stride。理解它们的相互作用是掌握尺寸计算的关键。1.1 基础计算公式推导假设输入特征图尺寸为$W_{in} \times H_{in}$卷积核尺寸为$K \times K$则输出尺寸的通用计算公式为$$ W_{out} \left\lfloor \frac{W_{in} 2P - K}{S} \right\rfloor 1 $$其中$P$为单边填充量实际总填充量为$2P$$S$为步长$\lfloor \cdot \rfloor$表示向下取整实际工程中需特别注意当$(W_{in} 2P - K)$不能被$S$整除时不同框架的处理方式可能不同。PyTorch默认会舍弃无法完整卷积的右侧/底部区域。1.2 参数组合效果速查表配置类型KernelPaddingStride尺寸变化典型应用场景等尺寸卷积311保持原尺寸浅层特征保留二倍下采样312高宽减半池化层替代无填充严格卷积301缩小2像素边缘检测任务扩张卷积321扩大2像素医学图像分割重叠采样523缩小约1/3视频时序建模2. 五种典型配置的实战验证2.1 等尺寸卷积K3, P1, S1这是最常用的配置方案保证特征图尺寸不变的同时进行特征提取import torch.nn as nn conv nn.Conv2d(in_channels3, out_channels16, kernel_size3, padding1, stride1) input torch.randn(1, 3, 256, 256) # (batch, channel, H, W) output conv(input) print(output.shape) # torch.Size([1, 16, 256, 256])数学验证 $(256 2 \times 1 - 3)/1 1 256$2.2 二倍下采样K3, P1, S2替代池化层的现代方案在减少尺寸的同时保留更多空间信息conv nn.Conv2d(3, 16, kernel_size3, padding1, stride2) output conv(input) print(output.shape) # torch.Size([1, 16, 128, 128])计算过程 $(256 2 \times 1 - 3)/2 1 128$2.3 无填充严格卷积K3, P0, S1适用于需要逐步收缩感受野的网络设计conv nn.Conv2d(3, 16, kernel_size3, padding0, stride1) output conv(input) print(output.shape) # torch.Size([1, 16, 254, 254])边界效应 每经过一层特征图尺寸减少$K-12$像素2.4 扩张卷积K3, P2, S1通过增大padding实现特征图扩张conv nn.Conv2d(3, 16, kernel_size3, padding2, stride1) output conv(input) print(output.shape) # torch.Size([1, 16, 258, 258])特殊应用 配合dilation参数可实现空洞卷积显著增大感受野2.5 非对称步长K5, P0, S3适用于需要特定比例下采样的场景conv nn.Conv2d(3, 16, kernel_size5, padding0, stride3) output conv(input) print(output.shape) # torch.Size([1, 16, 84, 84])取整规则 $(256 - 5)/3 1 84.333 \rightarrow 84$PyTorch取整方式3. 工程实践中的决策流程3.1 尺寸控制决策树graph TD A[需要保持输入尺寸?] --|是| B[选择K3,P1,S1] A --|否| C[需要整数倍下采样?] C --|是| D[选择S目标下采样率,P(K-1)/2] C --|否| E[计算P(S*(W_out-1)-W_inK)/2]实际应用中建议优先选择奇数尺寸卷积核便于对称填充3.2 动态尺寸计算函数def calc_conv_size(W_in, K, P, S, dilation1): effective_K (K - 1) * dilation 1 W_out (W_in 2*P - effective_K) // S 1 return W_out # 示例计算ResNet50第一层输出 print(calc_conv_size(224, 7, 3, 2)) # 输出1124. 特殊场景处理技巧4.1 非整数步长情况当使用如S1.5等非整数步长时部分框架支持可采用以下等效方案# 方案1组合卷积 conv1 nn.Conv2d(3, 16, kernel_size3, stride1, padding1) conv2 nn.Conv2d(16, 16, kernel_size3, stride2, padding1) # 等效于S1.5 # 方案2插值标准卷积 upsample nn.Upsample(scale_factor2/3, modenearest) conv nn.Conv2d(3, 16, kernel_size3, stride1, padding1)4.2 转置卷积的尺寸计算转置卷积反卷积的输出尺寸公式为$$ W_{out} (W_{in} - 1) \times S K - 2P $$deconv nn.ConvTranspose2d(16, 3, kernel_size3, stride2, padding1) input torch.randn(1, 16, 64, 64) output deconv(input) print(output.shape) # torch.Size([1, 3, 129, 129])5. 跨框架实现差异不同深度学习框架对边缘情况的处理存在细微差别框架整除规则输出对齐方式特殊参数支持PyTorch向下取整右/底部截断dilation, groupsTensorFlow四舍五入对称填充rate(即dilation)MXNet向下取整可配置填充策略layout支持NHWC在部署模型时建议通过实际测试验证尺寸计算结果。例如以下代码可以检测当前环境的处理方式# 边界测试案例 conv nn.Conv2d(1, 1, kernel_size3, stride2, padding0) test_input torch.zeros(1, 1, 5, 5) # 奇数尺寸测试 output conv(test_input) print(output.shape) # 观察是2x2还是3x3掌握这些计算规则后开发者可以更精准地设计网络结构避免因尺寸误算导致的特征图尺寸坍塌或张量形状不匹配问题。实际项目中建议在模型初始化后立即添加形状验证断言def init_weights(m): if isinstance(m, nn.Conv2d): expected_shape calc_conv_size(input_size, m.kernel_size[0], m.padding[0], m.stride[0]) assert actual_shape expected_shape, 尺寸计算错误 model.apply(init_weights)

相关新闻

IQ 采样 vs 中频采样:5 个维度对比与 2 种主流 SDR 硬件实现

IQ 采样 vs 中频采样:5 个维度对比与 2 种主流 SDR 硬件实现

IQ 采样 vs 中频采样:5 个维度对比与 2 种主流 SDR 硬件实现在软件定义无线电(SDR)和现代通信系统设计中,信号采样架构的选择直接影响系统性能与成本。本文将深入对比 IQ 采样与中频采样两种主流方案,从信噪比、系统复…

2026/7/10 6:17:49 阅读更多 →
ChatGPT整合Codex代码生成:从环境配置到API集成的实践指南

ChatGPT整合Codex代码生成:从环境配置到API集成的实践指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这类工具整合最值得先看的不是功能列表,而是它到底解决了什么实际开发问题,以及普通开发者能不能在自己的环境…

2026/7/10 6:15:48 阅读更多 →
从零构建NVIDIA Triton自定义C++后端:插件机制与高性能推理服务实战

从零构建NVIDIA Triton自定义C++后端:插件机制与高性能推理服务实战

1. 项目概述:从推理服务到自定义后端在AI模型工程化的世界里,把训练好的模型高效、稳定地服务于生产环境,是每个算法工程师和架构师必须跨越的一道坎。你或许已经熟悉了TensorFlow Serving、TorchServe这些框架,但当你的场景变得复…

2026/7/10 6:15:48 阅读更多 →

最新新闻

PyCharm专业版下载、安装教程,附详细图文

PyCharm专业版下载、安装教程,附详细图文

今天给大家带来 JetBrains PyCharm 2025.1 专业版的详细下载与安装教程。PyCharm 是目前最强大的 Python 集成开发环境(IDE)之一。本教程基于 Windows 系统,包含完整的安装步骤,有需要的同学建议收藏! 一、下载 PyCh…

2026/7/10 7:00:00 阅读更多 →
北京华恒智信为酒店行业明晰外包服务商员工管理责任边界、破解“用而不控”难题

北京华恒智信为酒店行业明晰外包服务商员工管理责任边界、破解“用而不控”难题

一、案例介绍 在酒店行业的运营过程中,为优化人力成本、适配淡旺季客流波动、提升运营效率,越来越多酒店选择将保洁、安保、工程等非核心服务岗位外包给专业服务商。但随之而来的管理困境日益凸显:外包员工的服务行为直接面向酒店客人&#…

2026/7/10 7:00:00 阅读更多 →
DHT11 单总线协议解析:STM32 精准时序控制与 40 位数据帧校验

DHT11 单总线协议解析:STM32 精准时序控制与 40 位数据帧校验

DHT11单总线协议深度解析与STM32高精度驱动实现1. 单总线通信协议的工程挑战在嵌入式传感器领域,DHT11以其简洁的单总线接口和稳定的性能成为入门级温湿度监测的首选。但看似简单的单线通信背后,却隐藏着严苛的时序要求——微秒级的信号偏差就可能导致数…

2026/7/10 6:57:59 阅读更多 →
STM32CubeMX 6.11.1 配置 FreeRTOS:CMSIS-RTOS V2 与 X-CUBE-FREERTOS 选择指南

STM32CubeMX 6.11.1 配置 FreeRTOS:CMSIS-RTOS V2 与 X-CUBE-FREERTOS 选择指南

STM32CubeMX 6.11.1 中FreeRTOS配置的深度解析:CMSIS-RTOS V2与X-CUBE-FREERTOS选型策略当开发者面对STM32CubeMX 6.11.1版本中FreeRTOS配置选项的变化时,往往会陷入选择困境:是使用原生FreeRTOS还是X-CUBE-FREERTOS扩展包?CMSIS-…

2026/7/10 6:55:58 阅读更多 →
Multisim 电路仿真 3 大常见连接错误排查:示波器无信号与波形失真

Multisim 电路仿真 3 大常见连接错误排查:示波器无信号与波形失真

Multisim电路仿真中示波器无信号与波形失真的3大常见连接错误排查指南1. 接地错误:被忽视的"隐形杀手"在Multisim电路仿真中,接地问题往往是新手最容易忽视却导致最多故障的根源。与真实实验室环境不同,虚拟仿真中的接地错误不会引…

2026/7/10 6:53:58 阅读更多 →
LLM 分词实战:BPE vs WordPiece vs Unigram,3 种算法在 10 万条语料上的性能与效果评测

LLM 分词实战:BPE vs WordPiece vs Unigram,3 种算法在 10 万条语料上的性能与效果评测

LLM 分词算法深度评测:BPE vs WordPiece vs Unigram 在10万条语料上的实战对比引言:为什么分词算法对LLM如此重要?当我们与ChatGPT等大语言模型对话时,很少有人会注意到一个隐藏在幕后的关键技术——分词算法(Tokeniza…

2026/7/10 6:53:57 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中,模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器,配合STM32F101ZG这类主流微控制器,能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域,直流有刷电机因其结构简单、控制方便、成本低廉等优势,仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器,与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻