borch

배우기 · 7

데이터

진짜 학습은 배치로 읽고, 섞고, 검증용을 떼어 둔다. 이름은 torch 의 것이다 — TensorDataset·DataLoader·randomSplitdata 아래 있고, 그 자리가 torch.utils.data 다.

데이터셋과 로더

TensorDataset 은 첫 축이 같은 텐서들을 받아 한 줄씩 돌려준다. DataLoader 가 그것을 배치로 묶고, 순회할 수 있다 — for (const [x, y] of loader) 가 파이썬과 같은 모양으로 읽힌다.

섞기, 그리고 마지막 짧은 배치

shuffle 은 에폭마다 순서를 바꾼다. dropLast 는 남는 것을 어떻게 할지 정한다 — 남기면 마지막 배치가 작아지고, 모델 어딘가가 배치 크기를 고정으로 가정하는 순간 그것이 문제가 된다.

떼어 두기

randomSplit 은 같은 데이터를 가리키는 뷰를 준다 — 복사가 아니다. 학습에 쓴 줄로 잰 수를 보고하는 것이 틀리면서 맞다고 느끼는 가장 흔한 길이다.

이미지

visiontorchvision.transforms 자리이고 변환만 있다 — 사전학습 가중치는 여기 없고 앞으로도 없다. Normalize 는 채널별 평균과 표준편차를 받고, Compose 가 순서대로 잇는다.

늘리기는 가정이 아니라 실측이다. CIFAR ResNet-18 벤치에서 이 저장소는 늘리기를 켠 64.6% 와 끈 59.3% 를 **둘 다** 적는다. 두 번째 수가 자매 구현보다 낮기 때문에 더더욱 적는다. 조건 없이 인용된 수는 수가 아니다.