② datasets.ImageFolder는 데이터로더가 데이터를 불러올 대상(혹은 경로)과 방법(transform)(혹은 전처리)을 정의하며, 사용하는 파라미터는 다음과 같습니다.
ⓐ 첫 번째 파라미터: 불러올 데이터가 위치한 경로
ⓑ transform: 이미지 데이터에 대한 전처리
③ 데이터로더는 데이터를 불러오는 부분으로 앞에서 정의한 ImageFolder(train_dataset)을 데이터로더에 할당하는데, 이때 한 번에 불러올 데이터양을 결정하는 batch_size를 지정합니다. 또한, 추가적으로 데이터를 무작위로 섞을(shuffle) 것인지도 설정합니다. 데이터로더에서 사용하는 파라미터는 다음과 같습니다.
ⓐ 첫 번째 파라미터: 데이터셋을 지정합니다.
ⓑ batch_size: 한 번에 불러올 데이터양을 결정하는 배치 크기를 설정합니다.
ⓒ num_workers: 데이터를 불러올 때 하위 프로세스를 몇 개 사용할지 설정하는데, 이때 너무 많은 하위 프로세스를 설정하게 되면 오류가 발생하거나 메모리 부족 현상이 발생할 수 있습니다.
ⓓ shuffle: 데이터를 무작위로 섞을지를 지정합니다. shuffle=True로 설정하면 데이터를 무작위로 섞어서 랜덤으로 불러옵니다.
다음은 train_dataset에 포함된 데이터의 개수를 출력한 결과입니다.
385
개와 고양이 이미지 데이터는 https://www.kaggle.com/c/dogs-vs-cats/data에서 내려받았지만, 전체 이미지를 사용할 경우 CPU에 과부하가 발생하여 일부 이미지만 사용했습니다.