[Keras] KeyError : 'acc' 해결하기

연두·2021년 7월 29일
0
post-thumbnail
# 모델 학습 과정 표시
fig, loss_ax = plt.subplots()
acc_ax = loss_ax.twinx()
loss_ax.plot(hist.history['loss'], 'y', label='train loss')
loss_ax.plot(hist.history['val_loss'], 'r', label='val loss')
acc_ax.plot(hist.history['acc'], 'b', label='train acc')
acc_ax.plot(hist.history['val_acc'], 'g', label='val acc')
loss_ax.set_xlabel('epoch')
loss_ax.set_ylabel('loss')
acc_ax.set_ylabel('accuracy')

loss_ax.legend(loc='upper left')
acc_ax.legend(loc='lower left')

plt.show()

모델 학습 과정을 그래프에 표시하는 과정에서
KeyError : 'acc'
라는 에러가 떴다.

'acc''accuracy'로 바꿔보라는 것을 보고 바꿔봤는데도 아래와 같이 또 KeyError,, 😭

해결방법

더 찾아보니 Keras 2.3.x의 최근 변경 사항 때문일 수 있다고 한다.
실제로 Keras 2.3.0 Release note을 보면, Breaking changes에 다음과 같은 안내 문구가 있다.

model.compile()에서 metrics=["accuracy"] 를 지정 하면 히스토리 객체에 'accuracy''val_accuracy' 키가 있다는 것이고, metrics=["acc"]로 지정하면 'acc''val_acc' 키가 있다는 것이다.

따라서 아래 코드와 같이 model.compile() 안에 metrics=["acc"]를 추가했다.

model.compile(loss='mse', optimizer='rmsprop', metrics=["acc"])

0개의 댓글