sample 이 깔끔히 stack 안 될 때
default collate 함수가 각 sample 의 모든 field 를 tensor 로 stack. 모든 sample 이 같은 shape 일 때 작동 — image batch, fixed-feature regression. variable-length sequence, per-item metadata 운반, 또는 custom batch 원할 때 깨짐.
Custom collate
collate 함수가 List[Sample] 받고 batch 반환. 가장 흔한 variant: variable-length sequence 를 batch 에서 가장 긴 거로 pad.
IterableDataset — streaming data
disk 에 fit 하기엔 너무 큰 dataset (거대 text corpus, network-streamed data, online sensor feed) 위, Dataset 대신 IterableDataset 구현. __iter__(self) 만 정의; PyTorch 가 너 iterator 에서 batch iterate.
multi-worker IterableDataset 의 catch: 수동 split 안 하면 각 worker 가 full iterator 받음. __iter__ 안에 torch.utils.data.get_worker_info() 로 worker id 별 stream slice.