2017-12-31 150 views
1

저는 Keras 모델에 적합하게하려고 노력하고 있습니다. 그리고 history 객체와 함수를 평가하여 모델이 얼마나 잘 수행되는지 확인하려고합니다. 놀랍게도 훈련 세트의 정확도와 손실 결과는 기록과 평가가 다릅니다. 유효성 검사 집합에 대한 결과가 동일하기 때문에 내 측면에서 약간의 실수가있는 것처럼 보이지만 아무것도 찾을 수 없습니다. 나는 아래의 처음 4 개 시대에 대한 결과를 주었다. 메트릭 'mse'에 대해 동일한 결과가 나타납니다. 교육 세트가 다르고 테스트 세트가 동일합니다. 아무 생각 없어요? 가중치는 각 배치와 변화로 놀라게 할 아무것도 없다Keras model.fit와 model.evaluate의 정확도가 다른 이유는 무엇입니까?

{'val_loss': [13.354823187591416], 'loss': [2.7036468725265874], 'val_acc': [0.11738484422572477], 'acc': [0.21768202061048531]} 
Training accuracy ['loss', 'acc'] [13.265716915499048, 0.1270430906536911] 
Validation accuracy ['loss', 'acc'] [13.354821096026349, 0.11738484398216939] 

{'val_loss': [11.733116257598105], 'loss': [1.8158155931229045], 'val_acc': [0.26745913783295899], 'acc': [0.34522040671733062]} 
Training accuracy ['loss', 'acc'] [11.772184015560292, 0.26721149086656992] 
Validation accuracy ['loss', 'acc'] [11.733116155570542, 0.26745913818722139] 

{'val_loss': [7.1503656643815061], 'loss': [1.5667824202566349], 'val_acc': [0.26597325444044367], 'acc': [0.44378405117114739]} 
Training accuracy ['loss', 'acc'] [7.0615554528994506, 0.26250619121327617] 
Validation accuracy ['loss', 'acc'] [7.1503659895943672, 0.26597325408618128] 

{'val_loss': [4.2865109046890693], 'loss': [1.4087548087645783], 'val_acc': [0.13893016366866509], 'acc': [0.49232293093422957]} 
Training accuracy ['loss', 'acc'] [4.1341019072350802, 0.14338781575775195] 
Validation accuracy ['loss', 'acc'] [4.2865103747125541, 0.13893016344725112] 

답변

2

는 훈련 세트에 메트릭 훈련 동안 모든 배치를 통해 단지 평균 있습니다.

model.evaluate을 사용하면 모델 무게가 고정되고 계산 된 전체 데이터의 손실/정확도가 계산됩니다. 훈련 세트의 손실/정확도를 얻으려면 model.evaluate을 사용하고 교육 세트를 전달해야합니다 그것에. 히스토리 오브젝트는 트레이닝 세트에서 실제 손실/정확성을 갖지 않습니다.

+0

아, 그 현상을 설명합니다. 당신의 설명에 +1. – Arnold