티스토리 뷰
데이터 분석이나 머신러닝에서 결과를 시각적으로 확인하는 것은 매우 유용합니다.
matplotlib를 이용하여 keras를 이용한 학습 결과를 그래프로 확인해보겠습니다.
keras에서 model.fit 을 이용하여 학습하면 history 속성을 통해 학습결과를 제공합니다.
기본적으로 loss, acc, val_loss, val_acc 4가지 항목을 제공해줍니다.
위에서 얻어진 데이터를 그대로 가져와서 간단하게 그래프로 만들어보겠습니다.
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.rcParams["figure.figsize"] = (14, 9)
history = {'loss': [0.6621850869171322, 0.10505671877289811, 0.061623894130345434, 0.04349591266035956, 0.03689768679376963, 0.03216209222923014, 0.027957415434477297, 0.02611819637788388, 0.023386988417286377, 0.021494483297760023],
'acc': [0.76808333, 0.9704375, 0.9835625, 0.9878542, 0.98995835, 0.99091667, 0.99291664, 0.9932708, 0.99429166, 0.99464583],
'val_loss': [0.23390186043580374, 0.0501614968109255, 0.06609677345879997, 0.04070061724481396, 0.039028068189590155, 0.03976498368000224, 0.03130533290253819, 0.045133131691797945, 0.04908174880024672, 0.08758814916406588],
'val_acc': [0.9295833, 0.9860833, 0.98075, 0.98908335, 0.99058336, 0.98983335, 0.99233335, 0.991, 0.99016666, 0.98658335]}
fig, axs = plt.subplots(1, 2)
loss_ax = axs[0]
loss_ax.plot(history['loss'], 'y', label='train loss')
loss_ax.plot(history['val_loss'], 'r', label='val loss')
acc_ax = axs[1]
acc_ax.plot(history['acc'], 'b', label='train acc')
acc_ax.plot(history['val_acc'], 'g', label='val acc')
loss_ax.set_xlabel('epoch')
acc_ax.set_xlabel('epoch')
loss_ax.set_ylabel('loss')
acc_ax.set_ylabel('accuracy')
loss_ax.legend(loc='upper right')
acc_ax.legend(loc='lower right')
plt.show()
먼저 matplotlib 라이브러리의 pyplot을 가져옵니다. 일반적으로 plt라는 별칭을 많이 사용합니다.
plt.rcParams를 통해 전역 설정을 할 수 있습니다. 폰트는 "맑은 고딕"와 글씨 크기는 16, 그래프의 창 크기는 (14, 9)로 설정했습니다.
참고로 기본 default 폰트는 한글을 제공하지 않아서 그래프에 한글 라벨 등을 넣을 시에 깨짐 현상이 생길 수 있습니다.
fig, axs = plt.subplots(1,2) 는 1행 2열의 서브플롯을 갖는 figure를 생성합니다. 인자는 생략가능합니다.
(1,2)의 인자를 입력했기 때문에 axs는 2개의 플롯을 갖는 리스트의 형태로 반환됩니다.
첫 번째 그래프 (axs_[0])를 loss_ax에 할당합니다.
그리고 plot 명령어를 통해 그래프를 그립니다. 먼저 history의 loss항목을 이용해 그래프를 그리고 선 색은 yellow('y')로 지정하겠습니다. 그리고 label을 표시해줍니다.
set_xlabel, sex_ylabel을 통해 축의 라벨을 설정해주고, legend로 범례를 추가할 수 있습니다.
마지막으로 plt.show 명령어를 통해 figure를 보여줍니다.
실행결과:
다음과 같이 그래프를 볼 수 있습니다.
아래의 링크에서 더 자세한 활용방법을 확인하실 수 있습니다.
'Programming Languages > Python' 카테고리의 다른 글
파이썬 print 줄바꿈 없이 출력하기 (0) | 2022.02.08 |
---|---|
명령 프롬프트에서 파이썬 버전 확인 (0) | 2022.01.27 |
Tensorboard 사용 방법 (0) | 2020.09.11 |
AttributeError: 'tuple' object has no attribute 'layer' 오류 (0) | 2020.09.10 |
import OS , 디렉토리 관련 자주 쓰는 매서드 (0) | 2020.09.09 |