簡単な例を使用して 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): いくつかの検証データに対するモデルのパフォーマンスを示します。 Return : データの損失スコア。 引数: 上記の fit メソッドと同じ意味。verbose は、バイナリ フラグとして使用されます (進行状況バーまたは何もない)。
の定義から、次の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,)
ここで何が欠けていますか?