2016-09-02 10 views
0

참고 : 이것은 duplicate question이지만 답변을 찾고있는 것이 아닙니다. 오히려, 나 자신을 찾는 것이 더 낫다.Keras : 유효성 검사 손실을 기록하는 방법

에포크에서 모델의 손실, 교육 정확도, 테스트 손실 및 테스트 정확도를 어떻게 기록합니까? 나는 각 시대에 대한 검증 손실을 보여주는 그래프를 플로팅하고 싶다.

fit() 또는 model.history에서 호출 할 수있는 callback 객체는 그와 관련이 있지만 소스 및 docstring을 검사하는 것은 나에게 맞는 코드라고 알고 있습니다. 예를 들어, Numpy는 대개 매우 간단한 구현 예로서 매우 작은 유스 케이스를 제공합니다. 그리고 이것에 대한 답은 단지 한 줄짜리에 불과하다는 것을 압니다. 왜냐하면 이것은 실제로 입력 문제이기 때문입니다.

답변

4

https://keras.io/models/sequential/#fit에 설명 된대로 model.fit을 호출하면 callbacks.History 개체를 반환합니다. 당신은 그것에서 손실 및 기타 통계를 얻을 수 있습니다 :

... 
train_history = model.fit(X_train, Y_train, 
        batch_size=batch_size, nb_epoch=nb_epoch, 
        verbose=1, validation_data=(X_test, Y_test)) 
loss = train_history.history['loss'] 
val_loss = train_history.history['val_loss'] 
plt.plot(loss) 
plt.plot(val_loss) 
plt.legend(['loss', 'val_loss']) 
plt.show() 
+0

그것은 [문서]에서 언급 한 (https://keras.io/models/sequential/#fit)와 [자주 묻는 질문] (https : //로 keras.io/getting-started/faq/#how-can-i-record-the-training-validation-loss-accuracy-at-each-epoch) – sietschie

+0

@sietschie 당신이 옳습니다. 이것은 문서에 있습니다. –

+0

그러나 "실시간"플롯을 수행하는 방법에 대한 힌트가 없으며 공정하게 미리 정의 된 수의 에포크로 멈추는 것이 많은 사람들이 원하는 것과 정확히 같지 않습니까? – norok2

관련 문제