为什么在Keras中尝试构建具有多个输入的体系结构时会出错?

时间:2018-12-02 13:09:53

标签: python tensorflow keras

我试图在Keras中构建具有多个输入的体系结构。如1中所述,我使用了类似的代码,如下所示:

model_merged = Model(inputs=[model_parts1, model_parts2,
                             model_parts3, model_parts4])

但是出现以下错误:

TypeError: _init_subclassed_network() got an unexpected keyword argument 'inputs'

我在网上搜索过,有人提到Keras应该更新到2.0.0版本;尽管我安装了2.2.2版,但我认为这不是问题。

有人可以帮助我解决此错误吗?

1 个答案:

答案 0 :(得分:6)

Keras功能api模型需要两个位置参数,即inputsoutputs。 错误

  

TypeError:_init_subclassed_network()获得了意外的关键字   参数“输入”

如果未指定模型的输出,则会抛出

input1 = keras.layers.Input(shape=(8,))
input2 = keras.layers.Input(shape=(8,))
h1 = keras.layers.Concatenate()([input1, input2])
model = keras.models.Model(inputs=[input1, input2])

这会引发以下错误

TypeError: _init_subclassed_network() got an unexpected keyword argument 'inputs'

但是,如果指定了输出,则可以正常工作

model = keras.models.Model(inputs=[input1, input2], outputs=h1)

如果在没有outputs参数的情况下传递inputs参数,则会引发类似的异常。

model = keras.models.Model(outputs=h1)
TypeError: _init_subclassed_network() got an unexpected keyword argument 'outputs'

如果错误消息本来可以提供更多信息,我认为这将非常有帮助。 inputsoutputs参数在这里是“非意外”参数。如果错误消息是

,则将提供更多信息。
TypeError: _init_subclassed_network() missing expected keyword argument 'outputs'

对于仅指定inputs参数和

的前一种情况
TypeError: _init_subclassed_network() missing expected keyword argument 'inputs'

对于仅指定outputs参数的情况。