python - 使用多个输入训练 Keras 模型

标签 python machine-learning keras deep-learning

我想使用 keras 训练具有 3 个不同输入的模型。训练数据 - x_trainleft_trainright_train 的形状为 (10000,83,12)。这是部分代码。

from keras.layers import Dense, Input, LSTM
...
x = Input(shape = (83,12), dtype = "float32")
left = Input(shape = (83,12), dtype = "float32")
right = Input(shape = (83,12), dtype = "float32")
...
model = Model(inputs = [x, left, right], outputs = output)
model.compile(optimizer = "adadelta", loss = "categorical_crossentropy", metrics = ["accuracy"])
model.fit([x_train, left_train, right_train], y_train, validation_data=(x_test, y_test), epochs=20, batch_size=128)
...

我在训练时遇到以下错误:

ValueError                       Traceback (most recent call last)
<ipython-input-17-261d36872e91> in <module>()
     51 
     52 
---> 53 model.fit([x_train, left, right], y_train, validation_data= 
(x_test, y_test), epochs=20, batch_size=128)
     54 
     55 scores = model.evaluate(x_test, y_test)
     ...
     ValueError: Error when checking model input: the list of 
Numpy arrays that you are passing to your model is not the size the 
model expected. Expected to see 3 array(s), but instead got the 
following list of 1 arrays: [array(...

在调用 fit 方法时,我确实传递了 3 个输入的列表。有什么问题吗?

最佳答案

validation_datamodel.evaluate 也需要是多输入的。在您的情况下,您只提供一个数组 (x_test, y_test)x_test ,它类似于 ([x_test, left_test, right_test], y_测试)。本质上,验证数据需要具有与训练数据相同数量的输入/输出。

关于python - 使用多个输入训练 Keras 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330586/

相关文章:

Python 在数据框中用 True 和 False 替换 1.0 和 0.0

machine-learning - 我应该应用哪些人工神经网络概念?

c++ - 如何在 OpenCV 和 C++ 中为图像分类配置 CvSVM

python - ImageData 生成器中的 validation_split 返回 0 个图像

python - 卷积神经网络中的不平衡类

python - 使用 pythonanywhere 的 Python 脚本出现 XML 解析错误(但不在本地计算机上)

python - Tkinter动态 "iframe"不会滚动

python - 使用 Python 正则表达式中的排列捕获重复子模式

algorithm - 哪种类型的机器学习算法更适合根据以前的访问预测船舶的下一个目的地?

python - Keras LSTM 层中的 4D 输入