
133
4
장
파이토치 데이터셋
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=32, shuffle=True)
이것이 코드로 구현된
ETL
패턴입니다!
코드는 (
T
에 해당하는)
train
_
transform
을 정의하는 것으로 시작하지만, 실제 작동 코드는
# 데이터셋 로드
주석 아래에서 시작됩니다. 여기를 자세히 살펴보면
ImageFolder
를 사용
해 디스크에 저장된 데이터를 추출하고 있습니다.
그다음 데이터가 추출될 때 앞서 정의한 변환이 적용됩니다.
그리고
# 데이터 로더
주석 다음에 정의한
train
_
loader
와
val
_
loader
를 사용해 데이터를
로드합니다. 엄밀히 말하면, 실제 로딩은 훈련 루프를 실행해 데이터 로더에서 데이터를 가져
올 때까지 일어나지 않습니다.
이런 프로세스를 사용하면 데이터 파이프라인이 데이터나 모델 구조의 변화에 덜 민감하도록
만들 수 있습니다. 이런 방식으로 데이터를 추출하는 구조는 메모리에 들어갈 만큼 작은 데이
터이거나 한 대의 머신에 담을 수 없는 큰 데이터이거나 데이터의 크기와는 상관없이 동일합니
다. 변환을 위한
API
도 일관성이 있기 때문에 데이터 소스와는 ...