tensorflow 학습 기록하기

노력을 즐기는 사람·2020년 8월 18일
0

논문을 작성하기 위해 기웃거리던 중 기록이 가장 중요하다는 것을 알았다. 데이터의 형태, 모델의 구성, 학습의 결과 등 논문을 구성하는 요소는 많지만 이런 것들을 잘 기록을 해야한다. 그래서 이번에는 학습의 결과를 기록하는 방법에 대해서 알아보려고 한다.

keras history

keras.callbacks.History() 에 구현이 되어있다. model.fit() 함수는 항상 history를 리턴한다. fit 함수가 리턴한 history의 멤버 history는 딕셔너리 형태이다.

딕셔너리의 key는 fit함수의 매개변수에 따라서 정해지는듯하다.

history with matplot

딕셔너리의 value가 리스트 형식이기 때문에 matplot으로 시각화할 수 있다.

import matplotlib.pyplot as plt

fig, loss_ax = plt.subplots()
acc_ax = loss_ax.twinx()

loss_ax.plot(history.history['loss'], 'y', label='train loss')
loss_ax.plot(history.history['val_loss'], 'r', label='val loss')
loss_ax.set_xlabel('epoch')
loss_ax.set_ylabel('loss')
loss_ax.legend(loc='upper left')

acc_ax.plot(history.history['accuracy'], 'b', label='train accuracy')
acc_ax.plot(history.history['val_accuracy'], 'g', label='val accuracy')
acc_ax.set_ylabel('accuracy')
acc_ax.legend(loc='upper left')

plt.show()

이런식으로 시각화할 수 있다. 굳이 matplot이 아니더라도 여러 라이브러리로 시각화 할 수 있어보인다. 나중에 필요한 형태의 그래프가 생기면 그때 원하는 형태의 그래프를 그리도록 하자

tensor board

TensorBoard가 다른 시각화 라이브러리들과 다른점은 실시간으로 학습상태를 확인할 수 있다는 것이다. 시각화 라이브러리는 학습이 끝난 후 리턴되는 history로 시각화를 하지만 TensorBoard는 실시간으로 그래프를 그려준다.

사용법은 공식문서에 잘 나와있다. 어쩌면 tensorboard 하나만으로도 논문에 필요한 재료들을 모두 모을 수 있을 것 같다.

profile
노력하는 자는 즐기는 자를 이길 수 없다

0개의 댓글