-
epoch / batch / iteration1) Tech 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
반응형'1) Tech' 카테고리의 다른 글
DNN의 특징 (Heuristic, 발견법) (0) 2020.03.08 CNN을 이미치 처리에 쓰는 이유 (affine layer, FC layer, MLP) (1) 2020.03.08 CNN이 다루는 문제들 (Classification, Localization, Segmentation) (0) 2020.02.25 Data set의 분류 (Training / Validation / Test) (0) 2020.02.24 [linux] 파일 이동(file move), 파일 옮기기 (0) 2020.01.31