배치와 데이터 로더

문자 1,045통을 한 번에 몇 통씩, 어떤 순서로 넣을까요?

한 묶음

한 번에 8줄 × 120칸짜리 표를 넣습니다

여러 통을 묶어 한꺼번에 계산하면 빠릅니다. 이 묶음을 배치라고 하고, 여기서는 한 배치가 문자 여덟 통입니다.

한 줄이 문자 한 통, 한 칸이 토큰 번호 하나입니다. 훈련 세트 맨 앞 여덟 통의 실제 길이로 그렸습니다.

정답

정답도 같은 순서로 여덟 개가 따라옵니다

줄마다 정답이 하나씩 붙습니다. 0은 정상, 1은 스팸입니다.

앞 그림과 같은 여덟 통의 실제 정답입니다.

사전 훈련과 다른 점

정답의 모양이 달라졌습니다

사전 훈련의 정답은 칸마다 하나씩, 다음에 올 토큰이었습니다. 분류의 정답은 문자 한 통에 숫자 하나입니다.

꺼내는 프로그램

섞어서 여덟 통씩 내주는 것이 데이터 로더입니다

데이터 로더는 문자의 순서를 섞고, 여덟 통씩 묶어 차례로 내줍니다. 훈련 세트에서는 묶음이 130개 나옵니다.

훈련 세트는 한 바퀴를 다 돌 때마다 순서를 새로 섞습니다.

묶음의 수

130묶음, 19묶음, 38묶음

1,045통을 여덟 통씩 묶으면 130묶음이 되고 5통이 남습니다. 훈련할 때는 묶음 크기가 늘 같아야 고르게 배우므로 이 모자란 묶음을 버립니다. 검증과 테스트는 점수만 재면 되니, 한 통도 빼지 않으려고 남은 문자도 한 묶음으로 칩니다.

코드로는

코드에서는 설정 세 개로 적습니다

훈련용 데이터 로더를 만들 때 적는 값입니다. batch size는 묶음 크기, shuffle은 섞기, drop last는 마지막 것을 버리기라는 뜻이고 True는 '그렇게 한다'입니다.

검증과 테스트용은 섞지 않고, drop_last를 '하지 않는다'는 뜻의 False로 둡니다.

다음 편

데이터는 끝났습니다. 이제 모델을 준비합니다

7편백지 대신 배운 모델로 10강 목록