본문 바로가기
업무 TIP/인공지능

파이썬에서 train losses, train accuracy, test accuracy 보여주기

by 플라시스 2022. 10. 25.
728x90
반응형

(내가 몰라서 정리한 글)

 

파이썬에서 figure() 함수는 matplotlib에서 그래프 그리는 것으로 이해함

 

import matplotlib.pyplot as plt

 

1) train losses

plt.figure()
plt.ylabel("Loss")
plt.xlabel("Training Steps")
plt.ylim([0,2])
plt.plot(fc_without_relu_batch_stats.batch_losses)

 

첫번째는 loss(손실율)구하는건데, x,y축 각각 Traning Steps와 Loss에 대한 그래프임

손실율이 낮을수록 좋은 알고리즘이라고 한다.

 

2) train accuracy

plt.figure()
plt.ylabel("Training Accuracy")
plt.xlabel("Training Steps")
plt.ylim([0,1])
plt.plot(fc_without_relu_batch_stats.batch_acc)

 

두번째는 학습정확도를 구하는건데, x,y축 각각  Training steps와 Traning Accuracy에 대한 그래프임

당연히 높을수록 좋다

 

3) test accuracy

plt.figure()
plt.ylabel("Test Accuracy")
plt.xlabel("Epochs")
plt.ylim([0,1])
plt.plot(fc_without_relu_batch_stats.epoch_val_acc)

 

세번째는 테스트 정확도를 구하는건데, x,y축 각각 Epochs와 Test Accuracy에 대한 그래프임

높을수록 좋다.

 


추가적으로

 

Epochs는 일반적으로 모든 훈련 데이터에 대한 한 번의 반복을 의미한다. (데이터 한바퀴 뺑뺑 돈것)

Training steps는 1개의 batch (batch mini 라고도 표현)로 부터 loss를 계산한 뒤 weight와 bias를 1회 업데이트 한 것을 1step이라고 한다. (말그대로 학습한 스텝이라고 보면 될 것 같다, 각 스텝별로 손실과 정확도를 계산)

 

재미있는 요약으로는 

 

n = num of samples (학습할 데이터양) 1회 운동 당 벤치 프레스 목표 개수 (40개)

e = epochs: 몇 번 반복할 것인가? 1회

b = batch size: 1세트 당 회수. 8개

s = steps: 몇 세트로 나누어 할 것인가. 5 세트

 

가 있었다.

 

추가적으로 itration이라고 하는 epoch 값을 나누어 실행하는 개념도 있다.

 

굳이 이렇게 데이터를 나눠가며 학습시키는 이유는 머신러닝에서 최적화(optimizer)를 하기 위해서이다.

머신러닝을 할 때 너무 많은 컴퓨팅파워를 요구하기 때문에 최적으로 학습하는 방법을 찾으려고 데이터를 몇번에 나눠서 하는 것임.

 

 

 

 

 

728x90
반응형