所以我目前正试图了解多输入的keras模型所期望的格式,不明白如何输入几个。
from tensorflow.keras.models import Model
import tensorflow.keras
import tensorflow as tf
first_input = Input(2)
second_input = Input(2)
concat_layer= Concatenate()([first_input, second_input ])
hidden= Dense(2, activation="relu")(concat_layer)
output = Dense(1, activation="sigmoid")(hidden)
model = Model(inputs=[first_input, second_input], outputs=output)
model.summary()
model.compile(loss='mean_squared_error', metrics=['mean_squared_error'], optimizer='adam')
# I managed to get the format for prediction and single training data correct
# this works
inp = [np.array([[0,2]]), np.array([[0,2]])]
model.predict(inp)
model.fit(inp,np.array([42]), epochs=3, )
# I don´t get why this isn´t working
# this doesn´t work
model.fit(np.array([inp,inp]),np.array([42, 43]), epochs=3, )´
在阅读了fit函数的keras文档后,我真的不明白为什么我的版本不能工作。
x : 训练数据的向量、矩阵或数组(如果模型有多个输入,则为列表)。如果模型中的所有输入都是命名的,你也可以传递一个将输入名称映射到数据的列表。如果从框架原生的张量(例如TensorFlow数据张量)中输入,x可以是NULL(默认)。
因为我简直是在给它一个列表的阵列。
最后一行代码导致以下错误。
ValueError: Layer model expects 2 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, 2, 1, 2) dtype=int64>]
希望得到任何帮助。