Python 使用Keras函数API的多输入

Python 使用Keras函数API的多输入,python,neural-network,keras,Python,Neural Network,Keras,Keras似乎缺少关于函数API的文档,但我可能完全弄错了 我有多个独立的输入,我想预测每个输入的输出。以下是我目前的代码: hour = Input(shape=(1,1), name='hour') hour_output = LSTM(1, name='hour_output')(hour) port = Input(shape=(1,1), name='port') port_output = LSTM(1, name='port_output')(port) model

Keras似乎缺少关于函数API的文档,但我可能完全弄错了

我有多个独立的输入,我想预测每个输入的输出。以下是我目前的代码:

 hour = Input(shape=(1,1), name='hour')
 hour_output = LSTM(1, name='hour_output')(hour)

 port = Input(shape=(1,1), name='port')
 port_output = LSTM(1, name='port_output')(port)

 model = Model(inputs=[hour, port], outputs = [hour_output, port_output])

 model.compile(loss="mean_squared_error", optimizer="adam", metrics=['accuracy'])
 model.fit(trainX, trainY, epochs=10 batch_size=1, verbose=2, shuffle=False)
我为此得到的错误信息:

ValueError:没有为“小时输出”提供数据。需要输入每个键的数据:[“小时输出”、“端口输出”]

我也很难找到正确的输入,所以我最终使用了具有示例结构的字典:
{'hour':数组([[0]],[[1]],[[3]])}
。我也不喜欢那样(用dict)


请注意,我有更多的输入要使用,这是有意义的,但现在我只是想让模型工作

在model.fit中,您需要提供长度为2的输入列表,因为您在模型中定义了两个输入

train\u hour
train\u port
中拆分训练数据,然后调用
fit
如下:

model.fit([train_X_hour, train_X_port], [train_Y_hour, train_Y_port] epochs=10, batch_size=1, verbose=2, shuffle=False)

根据文档输入可以是:
Numpy数组的训练数据,或者如果模型有多个输入,则可以是Numpy数组列表。如果模型中的所有输入都已命名,您还可以传递一个字典,将输入名称映射到Numpy数组。
意味着您的方法与我的字典相同。但是,我试过了,它确实没有改变。但是,是的,我想这回答了我关于不使用字典的另一个问题/抱怨:)嗯,你说你不喜欢字典选项,所以我给了你另一个选项。你必须使用其中一个-也许我不太明白你在问什么?是的,很好,谢谢。这里的主要问题是关于运行培训,我仍然无法传递错误。你的意思是,即使将输入作为列表传递,它也会向你抛出该值错误?