conv2d() 得到了一个意外的关键字参数“border_mode”

mag*_*ran 1 python theano lstm keras

当我尝试使用 keras-2.1.3 和 theano-1.0.1 https://github.com/marcellacornia/sam/blob/master/attentive_convlstm.py运行此代码时

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)), border_mode='same')
    initial_states = [initial_state for _ in range(len(self.states))]

    return initial_states

Traceback (most recent call last):
  File "main.py", line 63, in <module>
    m = Model(input=[x, x_maps], output=sam_resnet([x, x_maps]))
  File "E:\sam-master\models.py", line 136, in sam_resnet
    nb_cols=3, nb_rows=3)(att_convlstm)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 617, in __call__
    output = self.call(inputs, **kwargs)
  File "E:\sam-master\attentive_convlstm.py", line 143, in call
    initial_states = self.get_initial_states(x)
  File "E:\sam-master\attentive_convlstm.py", line 42, in get_initial_states
    initial_state = K.conv2d(initial_state, K.zeros((self.nb_filters_out, self.nb_filters_in, 1, 1)), border_mode='same')
TypeError: conv2d() got an unexpected keyword argument 'border_mode'
Run Code Online (Sandbox Code Playgroud)

Dan*_*ler 7

好吧,border_mode在 keras 中没有。

padding='valid'padding='same'

始终检查文档以正确使用层和功能。


小智 5

顺便说一句,以防有人仍然遇到此问题,这是与 Keras1.x 向后兼容的问题。“border_mode”曾经作为(至少)Keras1.1.0 中 Convolution2D 类的参数存在,因此仍然存在于许多旧代码中。

在 Keras2 系列(我引用了 2.3.1)中,您将看到几乎整个 Convolution2D API 都发生了变化,因此,如果您使用旧版本的 Keras 移植存储库,我怀疑 border_mode 将是您最关心的问题。