torch.utils.data.DataLoader

J·2021년 6월 22일
0

pytorch

목록 보기
18/23

공식설명은 아래와 같다.

Data loader. Combines a dataset and a sampler, and provides an iterable over the given dataset.

The DataLoader supports both map-style and iterable-style datasets with single- or multi-process loading, customizing loading order and optional automatic batching (collation) and memory pinning.

DataLoader는 dataset과 sampler를 결합하고, 주어진 dataset에 대해 iterable을 제공한다.
DataLoader는 map-style, iterable style dataset을 모두 지원한다. DataLoader는 single, multi process loading, customizing loading order 그리고 optional automatic batching(collation) and memory pinning 기능을 가지고 있다.

argument

  • dataset (Dataset) - 데이터를 load할 dataset

  • batch size (int, optional) - batch당 몇개의 sample을 load할건지

  • shuffle (bool, optional) - True로 하면 매 epoch마다 데이터를 다시 섞는다.

  • sampler (Sampler or Iterable, optional) - dataset으로부터 sample을 추출하는 strategy를 정의한다. __len__이 정의된 Iterable일 수 있다. 만약 명시된다면, shuffle argument는 명시되지 않아야한다.

  • batch_sampler (Sampler or Iterable, optional) - sampler같이 index의 batch를 반환한다. batch_size, shuffle, sampler, drop_last와 함께 사용될 수 없다.

  • num_workers (int, optional) - data load를 위해 사용할 subprocess의 개수. num_workers가 0일 때 데이터는 main process에서 load된다. (default : 0)

  • collate_fn (callable, optional) - tensor의 minibatch를 만들기 위해 sample들의 list를 merge한다. map-style dataset로부터 batch loading을 할 때 사용된다.

  • pin_memory (bool, optional) - True일 때 tensor를 반환하기 전에 data loader가 tensor를 고정된 CUDA memory에 복사한다. 데이터 구성요소들이 custom type일 때, collate_fn은 custom type이 batch를 반환한다.

  • drop_last (bool, optional) - dataset size가 batch size에 나누어지지 않을 때 True로 설정하면 마지막 불완전한 batch를 누락시킨다. 이 값이 False이고, dataset size가 batch size에 나누어 떨어지지 않을 때, 마지막 batch는 batch size보다 작아진다. (default : False)

  • timeout (numeric, optional) - 이 값이 positive일 때 worker들이 batch를 수집할 때의 timeout value가 됩니다. 제한시간을 나타내는 값이기 때문에 non-negative여야합니다. (default : 0)

  • worker_init_fn (callable, optional) - 이 값이 None이 아닐 때 seeding 이후, data loading전에 worker id([0, num_workers-1])를 input으로 해서 각 worker subprocess에서 호출된다.

  • generator (torch.Generator, optional) - 이 값이 None이 아닐 때 이 RNG(Random Number Generator)는 random index를 생성하기 위한 Random Sampler와 worker에 필요한 base seed를 만드는 multiprocessing에 사용된다.

  • prefetch_factor(int, optional, keyword-only arg) - 각 worker에서 미리 load해두는 sample의 개수. 해당 값이 2라면 2 * num_workers 만큼의 sample들이 모든 worker들에 걸쳐 prefetch된다.

  • persistent_workers (bool, optional) - True일 때, data loader는 dataset이 한번 사용된 후에 worker process를 종료하지 않는다. 이로 인해 Dataset instances를 alive 상태로 유지할 수 있습니다.

Reference

  1. https://pytorch.org/docs/stable/data.html?highlight=torch%20utils%20data#map-style-datasets
profile
I'm interested in processing video&images with deeplearning and solving problem in our lives.

0개의 댓글