__init__ 메서드
데이터의 위치나 파일명과 같은 초기화 작업을 위해 동작. 일반적으로 CSV파일이나 XML파일과 같은 데이터를 불러옴. 이렇게 함으로서 모든 데이터를 메모리에 로드하지 않고 효율적으로 사용할 수 있다. 여기에 이미지를 처리할 transforms들을 Compose해서 정의해둠
__len__ 메서드
Dataset의 최대 요소 수를 반환하는데 사용. 해당 메서드를 통해서 현재 불러오는 데이터의 인덱스가 적절한 범위 안에 있는지 확인할 수 있다
__getitem__ 메서드
데이터셋의 idx번째 데이터를 반환하는데 사용. 일반적으로 원본 데이터를 가져와서 전처리하고 데이터 증강하는 부분이 진행됨
모델 학습을 위해 데이터를 미니 배치(mini batch)단위로 제공해주는 역할을 함.
DataLoader(dataset, # Dataset 인스턴스가 들어감
batch_size=1, # 배치 사이즈를 설정, 추출할 데이터 수
shuffle=False, # 데이터를 섞어서 사용하겠는지를 설정
sampler=None, # sampler는 index를 컨트롤
batch_sampler=None, # 위와 비슷하므로 생략
num_workers=0, # 데이터를 불러올때 사용하는 서브 프로세스 개수
collate_fn=None, # map-style 데이터셋에서 sample list를 batch 단위로 바꾸기 위해 필요한 기능
pin_memory=False, # Tensor를 CUDA 고정 메모리에 할당
drop_last=False, # 마지막 batch를 사용 여부
timeout=0, # data를 불러오는데 제한시간
worker_init_fn=None # 어떤 worker를 불러올 것인가를 리스트로 전달
)
dataloader_custom = DataLoader(dataset_custom)
출처 - 부스트캠프 AI tech 교육자료
[부스트캠프 AI Tech] Week 2 - Day 4