AttributeError:在输入层串联期间,“模型”对象没有属性“ _name”

时间:2019-04-09 15:35:46

标签: python tensorflow keras deep-learning

我不明白哪里出了问题。我需要两组输入,因此我将它们划分为每个输入一个名称(用于服务目的),然后将它们连接起来以将它们链接到下一层。

layer_input1  = tf.keras.Input(shape=(None, 1), name='layer1')
layer_input2  = tf.keras.Input(shape=(None, 1), name='layer2')

layer_input = tf.keras.layers.concatenate([layer_input1, layer_input2], name='inputs')
fc_1 = tf.keras.layers.Dense(2,
                             activation='relu')(layer_input)
fc_1 = tf.keras.layers.Dropout(0.5)(fc_1)
fc_2 = tf.keras.layers.Dense(10,
                             activation='relu')(fc_1)
output_layer = tf.keras.layers.Dense(1,
                             activation='relu', name='predictions')(fc_2)
model = tf.keras.Model(inputs=layer_input, outputs=output_layer)

AttributeError                            Traceback (most recent call last)
<ipython-input-430-b567199137e0> in <module>()
     10 output_layer = tf.keras.layers.Dense(1,
     11                              activation='relu', name='predictions')(fc_2)
---> 12 model = tf.keras.Model(inputs=layer_input, outputs=output_layer)

AttributeError: 'Model' object has no attribute '_name'

1 个答案:

答案 0 :(得分:1)

只需将您的输入图层设置为模型输入即可。

model = tf.keras.Model(inputs=[layer_input1, layer_input2], outputs=output_layer)

请注意,串联是一个操作,而不是Layer对象。但是,即使将其包装为带有Lambda的图层,它也不会拥有keras.layers.Input

的某些属性