7
私はこの単純なニューラルネットワークの出力をプロットしたい:Keras - プロットトレーニング、検証およびテストセットの精度
:model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(x_test, y_test, nb_epoch=10, validation_split=0.2, shuffle=True)
model.test_on_batch(x_test, y_test)
model.metrics_names
私はトレーニングと検証の精度と損失をプロットしています
print(history.history.keys())
# "Accuracy"
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
# "Loss"
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
今度は、model.test_on_batch(x_test, y_test)
からテストセットの精度を追加したいが、model.metrics_names
から同じ値を得る。'acc'はトレーニングデータの精度をプロットするために利用されますplt.plot(history.history['acc'])
。テストセットの精度をどのようにプロットすることができますか?
すみません、私はNNを訓練するために設定し、常に利用してきた訓練は、それが監督をされています。私は機械学習の新人で、 'model.fit(...)'の結果について少し混乱しています。_loss_、_acc_、_val__loss_、_val__acc_を取得しています。しかし、どこでテストの損失の価値を見つけることができますか? – Simone
@ Simoneテストセット上でmodel.evaluateを使用して、テストセット上の損失とメトリックを取得できます。ちょうどあなたが正しい変数を使用するようにしてください。 –
私は_model.evaluete_を使用しましたが、_accuracy_と_loss_を取得しましたが、トレーニングで取得した_accuracy_と_accuracy_をテストで得られたものと区別できないため、プロットできません。 – Simone