1) Tech

epoch / batch / iteration

Tech_holic 2020. 2. 28. 00:11
반응형

DNN을 연구하다보면 많은 단어들이 생소할것입니다.

DNN training 실제 코드를 돌려보면 epoch / batch / iteration 와 같은 단어들이 자주 보입니다.

저는 보다 이해하기 쉬운 저만의 언어로 표현하는게 중요하다고 생각하여 이렇게 작성합니다.

 

 

1. epoch

= CNN기준, training set(수만~수백만개)의 모든 image data가  한 번씩

training(forward propagation + Backpropagation)을 진행한 상태

 

2. batch size 

= DNN training에서 gradient를 계산할때, 매 iteration마다 training set에서 가져오는

일부 image data의 양

 

3. iteration

= GPU memory(GDDR)의 한계로 인해 한 번의 epoch에 모든 training set을 가져오기 힘들기 때문에

data를 쪼개서 n번에 걸쳐서 가져옴

 

 

ex) 전체 training set의 크기가 50000개의 이미지로 이루어졌다면,

 

- 1epoch : 50000개의 image 전부가 임의의 CNN model의 training하는데 한번씩 사용됨

 

- batch size는 USER가 설정함, 

 

- training set의 크기가 50000개, epoch가 10이고, batch size가 256일 경우,

iteration = 10*50000 / 256 = 약 1953 

 

- training set의 크기가 50000개, epoch가 5이고, batch size가 128일 경우, 

iteration = 5*50000 / 128 = 약 781

 

반응형