You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Keras中实现模型时如何解读与编码stride/padding参数?

标注含义解读

模型图里的1/2类Stride/Padding标注,行业通用约定为前者是步长(Stride),后者是填充(Padding),无特殊图例说明时都按这个顺序解读。

Keras对应实现方案

分两种常见场景处理:

  • 标注为整数Stride/整数Padding的普通卷积
    Keras原生Conv2D的padding参数仅支持"same"/"valid"两个字符串值,如果需要设置固定数值的填充,要搭配ZeroPadding2D层使用,示例如下:
    from tensorflow.keras.layers import Input, ZeroPadding2D, Conv2D
    
    # 对应标注1/2:Stride=1,Padding=2的场景
    input_layer = Input(shape=(64, 64, 3))
    # 先做2像素的全局填充
    x = ZeroPadding2D(padding=2)(input_layer)
    # 卷积层步长设为1,padding用valid避免额外填充
    x = Conv2D(filters=64, kernel_size=3, strides=1, padding="valid")(x)
    
  • 标注为分数Stride(如1/2)的上采样场景
    步长为分数的情况一般出现在上采样分支,对应Keras的转置卷积层Conv2DTranspose,分数步长的倒数就是转置卷积的步长参数值,示例如下:
    from tensorflow.keras.layers import Conv2DTranspose
    
    # 对应Stride=1/2,Padding=1的上采样场景,输出尺寸为输入的2倍
    x = Conv2DTranspose(filters=32, kernel_size=3, strides=2, padding="same")(x)
    

参数校验方法

可以通过卷积输出尺寸公式反向验证参数设置是否匹配图中尺寸:

  • 普通卷积输出尺寸:输出高 = floor((输入高 + 2*填充值 - 卷积核大小) / 步长 + 1),宽度计算逻辑和高度一致
  • 转置卷积(padding=same时)输出尺寸:输出高 = 输入高 * 步长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:09:01