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

使用InceptionV4时Convolution2D报subsample与strides错误求助

解决InceptionV4代码运行的Keras版本兼容性错误

错误根源

你用的InceptionV4代码是基于旧版Keras(1.x)写的,但当前运行环境是Keras 2.x,两者卷积层API参数差异很大:

  • 旧版Convolution2D在新版中更名为Conv2D
  • 旧版subsample参数对应新版的strides
  • 旧版border_mode参数对应新版的padding
  • 卷积核尺寸参数从分开的nb_row, nb_col改为元组形式的kernel_size=(行, 列)

具体修改方案

针对你的conv_block函数,需要做3处关键调整:

  1. 替换卷积层类名,用Conv2D替代Convolution2D(记得同步修改代码顶部的导入语句)
  2. 调整参数传递结构,将原位置参数改为关键字参数,避免参数冲突
  3. 同步替换旧版参数名为新版对应名称

修改后的conv_block函数代码:

def conv_block(x, nb_filter, nb_row, nb_col, padding='same', strides=(1, 1), bias=False):
    x = Conv2D(filters=nb_filter, kernel_size=(nb_row, nb_col), strides=strides, padding=padding, use_bias=bias)(x)

额外说明

你之前只替换subsample为strides却报错,是因为旧版的nb_row, nb_col被新版Keras误识别为strides的位置参数,导致重复赋值。另外旧版的bias参数在新版中对应use_bias,必须一并替换才能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:52:16