我试图在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版,但我认为这不是问题。
有人可以帮助我解决此错误吗?
答案 0 :(得分:6)
Keras功能api模型需要两个位置参数,即inputs
和outputs
。
错误
如果未指定模型的输出,则会抛出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'
如果错误消息本来可以提供更多信息,我认为这将非常有帮助。 inputs
和outputs
参数在这里是“非意外”参数。如果错误消息是
TypeError: _init_subclassed_network() missing expected keyword argument 'outputs'
对于仅指定inputs
参数和
TypeError: _init_subclassed_network() missing expected keyword argument 'inputs'
对于仅指定outputs
参数的情况。