【发布时间】:2020-09-21 18:37:31
【问题描述】:
我想使用 Keras 进行二元分类。以下是我的代码:
input1 = tf.keras.Input(batch_size=batch_size, shape=(len1,))
output1 = tf.keras.layers.Dense(units=1, kernel_initializer='glorot_uniform')(input1)
input2 = tf.keras.Input(batch_size=batch_size, shape=(len2,))
output2 = tf.keras.layers.Dense(units=1, kernel_initializer='glorot_uniform')(input2)
inputs = [input1, input2]
outputs = [output1, output2]
logits = tf.keras.layers.Add()(outputs)
model = tf.keras.Model(inputs=inputs, outputs=logits)
model.compile(optimizer=tf.keras.optimizers.Adagrad(learning_rate=0.001),
loss=tf.keras.losses.BinaryCrossentropy(from_logits=True))
这会给我错误ValueError: No data provided for "add". Need data for each key in: ['add']
我试过logits = tf.keras.layers.add(outputs),这会报同样的错误。
但是如果在logits = tf.keras.layers.Add()(outputs)之后我使用:
probs = tf.keras.layers.Softmax()(logits)
model = tf.keras.Model(inputs=inputs, outputs=probs)
model.compile(optimizer=tf.keras.optimizers.Adagrad(learning_rate=0.001),
loss=tf.keras.losses.BinaryCrossentropy())
它会起作用的。我正在使用张量流 2.0
这里发生了什么?
【问题讨论】:
-
对我来说没问题。版本 2.2.0
标签: python tensorflow machine-learning keras deep-learning