以下代码行在 Keras 中引发了上述错误。model 是一个 Keras 的图模型。
score, acc = model.evaluate({ 'input1': X_test1, 'input2': X_test2, 'output':Y_test}, batch_size=450)
但是当我将其更改为以下代码时,它可以正常运行。
predictions = model.predict({ 'input1': X_test1, 'input2': X_test2}, batch_size=450)['output']
这里的 Y_test 是一个 <type 'numpy.ndarray'>
类型的 <type 'numpy.ndarray'>
,是一个独热编码向量。
Y_test 的示例:
[[1.,0.,0.],[1.,0.,0.],[0.,0.,1.]]
回答:
如您所见:
https://github.com/fchollet/keras/blob/master/keras/engine/training.py
evaluate 方法只返回测试损失(或损失)。因此,将此方法的结果赋值给一对变量会导致错误。