You need to enable JavaScript to run this app. LeNet将28×28输入图像转为32×32的逻辑及tf.pad填充参数含义咨询
优惠活动
大模型
产品
解决方案
定价
更多

LeNet将28×28输入图像转为32×32的逻辑及tf.pad填充参数含义咨询

LeNet填充逻辑与tf.pad参数解答

1. LeNet中将28×28输入图像转换为32×32的逻辑

  • 适配LeNet原始网络结构:LeNet-5的原生设计输入尺寸为32×32,该尺寸下配合第一层5×5、步长为1的无填充卷积核,卷积后输出特征图尺寸刚好为28×28,和MNIST原始图像尺寸一致,能完整覆盖输入特征,无需调整后续卷积、池化层的参数设计。
  • 避免边缘特征丢失:如果直接输入28×28的图像,图像边缘的像素点只会被卷积核扫过一次,角落的手写笔迹特征甚至无法被有效提取。填充为32×32后,原始28×28图像处于32×32画布的居中位置,边缘像素也能被卷积核的感受野完整覆盖,保证边缘手写特征的提取效果。

2. tf.pad中paddings参数的含义

TensorFlow的tf.pad接口中,paddings参数是和输入张量维度数一致的二维列表,每个子列表的格式为[对应维度前侧填充量, 对应维度后侧填充量],你所用的paddings=[[0, 0], [2,2], [2,2]]对应含义如下:

  • [0, 0]:对应输入张量的第0维,也就是样本批量维度(你的X_train形状为[60000, 28, 28],第0维就是60000个训练样本),前后填充量都为0代表该维度不做任何填充,处理后批量数依然保持60000不变。
  • [2, 2]:对应输入张量的第1维,也就是图像高度维度(行维度),前填充量2代表图像上方填充2行像素,后填充量2代表图像下方填充2行像素,原始高度28填充后变为28+2+2=32。
  • [2, 2]:对应输入张量的第2维,也就是图像宽度维度(列维度),前填充量2代表图像左侧填充2列像素,后填充量2代表图像右侧填充2列像素,原始宽度28填充后变为28+2+2=32。

默认填充值为0,也就是在图像四周各补2个像素的黑边,刚好实现原始28×28图像居中放大为32×32的效果。


内容的提问来源于stack exchange,提问作者Siddhesh Shankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 19:24:02