我正在尝试使用简单的示例来学习 Keras GraphNN 。我有一个包含 784 个特征的简单示例数据集,我想运行这个示例:
# graph model with one input and two outputs
graph = Graph()
graph.add_input(name='input', input_shape=(784,))
graph.add_node(Dense(input_dim=784, output_dim=13), name='dense1', input='input')
graph.add_node(Dense(input_dim=13, output_dim=1), name='dense2', input='input')
graph.add_node(Dense(input_dim=13, output_dim=1), name='dense3', input='dense1')
graph.add_output(name='output1', input='dense2')
graph.add_output(name='output2', input='dense3')
graph.compile('rmsprop', {'output1': 'mse', 'output2': 'mse'})
graph.fit({'input': X_train, 'output1': y_train, 'output2': y_train}, nb_epoch=30)
### here is where I am facing difficulty
score = graph.evaluate({'input': X_test, 'output1': y_test, 'output2': y_test}, batch_size=16, verbose=1)
print 'score: ', score
该文档提到graph.evaluate()
:
evaluate (data, batch_size=128, verbose=1):显示模型在一些验证数据上的性能。 返回:数据的损失分数。 参数:与上述 fit 方法的含义相同。详细用作二进制标志(进度条或无)。
从定义中graph.fit()
我们知道:
参数: data :dictionary 将输入名称映射到输出名称到适当的 numpy 数组。所有数组应包含相同数量的样本。
虽然我的适合方法运行完美,但我IndexError: index 1 is out of bounds for size 1
继续evaluate
我的输入形状是:
Xtrain: (32738, 784)
Xtest: (16125, 784)
ytest: (16125,)
ytrain: (32738,)
我在这里想念什么?