시험공부빅데이터분석
← 보드Dataset과 DataLoader · 5/8

배치 개수와 마지막 배치 크기 계산 ★★★

샘플 시험 4번의 핵심이에요. 규칙은 두 가지뿐이에요.

배치 개수 공식

drop_last=False(기본)이면 배치 수 = 올림(sample 수 ÷ batch_size)이고, 마지막 배치는 남은 만큼(나머지)만 들어요. 나머지가 없으면 마지막도 꽉 차요.

drop_last=True이면 배치 수 = 내림이고 모자란 마지막 배치는 버려요.

예를 들어 10 ÷ 4 = 2.5이니까 올림하면 3개예요. 4개 + 4개 + (10 − 8 = 2개)로 나뉘어요. 교수님 노트북과 제가 실행한 결과를 표로 모았어요.

sample 수batch_sizedrop_last배치 수각 배치 크기
103False4[3, 3, 3, 1]
104False3[4, 4, 2]
106False2[6, 4]
104True2[4, 4] (마지막 2개 버림)
9020False5[20, 20, 20, 20, 10]
9020True4[20, 20, 20, 20]
100020False5020이 50번
10032False4[32, 32, 32, 4]
0123 4567 89 drop_last=True 이면 모자란 마지막 배치는 버려져요 배치 1배치 2버려짐 배치 수 = 2, 마지막으로 나오는 배치는 4~7번 sample

마지막 배치를 구하는 요령은 이래요. 반복문이 끝난 뒤의 batch_x, batch_y는 마지막으로 꺼낸 배치예요. 파이썬에서 for 문 변수는 반복이 끝나도 마지막 값이 남아 있기 때문이에요. drop_last=False이면 마지막 배치는 맨 끝 sample들이고, drop_last=True이면 버려진 것을 뺀 마지막 꽉 찬 배치예요.

외우기 팁

배치 수는 "올림"이에요(drop_last를 안 쓰면). 10 ÷ 4 = 2.5 → 3. 90 ÷ 20 = 4.5 → 5. 마지막 크기는 나머지예요. 10을 4로 나눈 나머지 2, 90을 20으로 나눈 나머지 10이에요. 나머지가 0이면 마지막도 꽉 차요.

이렇게 고르세요 (풀이 요령)

① 배치 수는 올림(drop_last=True면 내림)으로 계산해요. ② 배치 크기 목록은 batch_size를 반복하다가 마지막에 나머지를 적어요. ③ 마지막 배치 값은 맨 뒤 sample을 직접 계산해요. 그리고 문제 코드에서 shuffle=False인지도 확인하세요. True이면 마지막 배치에 어떤 sample이 들어갈지 매번 달라져서 값을 하나로 정할 수 없어요.

잠깐 확인 — sample 100개, batch_size 32, drop_last=False이면 배치 수와 마지막 배치 크기는?

배치 수는 올림(100 ÷ 32 = 3.125) = 4이고, 마지막 크기는 100 − 32×3 = 4예요. [32, 32, 32, 4]예요.

다음 카드 → shuffle — 매 epoch마다 섞기 ★★

자료: 7주차 · Week05_Dataset_DataLoader_Train_Validation(part1) · 7주차 녹취(빅데이터07)