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

Keras-2.1.3+Theano-1.0.1运行SAM代码时conv2d报border_mode参数异常

解决方案

别担心,这个问题很常见,是Keras版本迭代带来的参数名变更导致的:

Keras 2.x版本(包括你用的2.1.3)已经将卷积操作的边界填充参数从旧版的border_mode更名为padding,而你运行的代码是针对Keras 1.x编写的,所以出现了参数不识别的错误。

只需要修改一行代码就能解决:
将K.conv2d调用中的border_mode='same'替换为padding='same',修改后的完整代码如下:

def get_initial_states(self, x):
    initial_state = K.sum(x, axis=1)
    initial_state = K.conv2d(initial_state, K.zeros((self.nb_filters_out, self.nb_filters_in, 1, 1)), padding='same')
    initial_states = [initial_state for _ in range(len(self.states))]
    return initial_states

额外适配提示

如果后续还遇到类似的参数不兼容问题,可以留意这些Keras 1.x到2.x的常见API变更:

  • 维度顺序参数:dim_ordering → data_format
  • 滤波器数量参数:nb_filters → filters
  • 卷积核尺寸参数:nb_rows/nb_cols → kernel_size(部分层)

这些变更都是为了让API更统一直观,你可以根据所用Keras版本的官方文档调整对应参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:29:25