본문 바로가기
Computer Science(CS)/ML,DL

Map-style dataset vs Iterable-style dataset

by Yeoreumssi 2023. 4. 9.
728x90
반응형

Pytorch에서 Dataset은 데이터를 추상화한 클래스로서, 모델의 학습 및 평가에 사용됩니다. Dataset 클래스의 두 가지 종류인 map-style dataset과 Iterable-style dataset에 대해 정리하였습니다.

 

1. Map-style dataset

  • map-style dataset은 데이터를 인덱스로 매핑하는 인덱스 접근 방식(index-based access)을 사용
  • 특히 이미지, 텍스트 등 각 데이터가 개별적으로 저장되어 있고, 인덱스를 사용하여 빠르게 액세스 할 수 있는 경우에 유용함
    • ex) 이미지 데이터셋에서 각 이미지는 파일로 저장되어 있고, 파일 경로를 사용하여 인덱스를 지정하는 것
  • map-style dataset 클래스는 __len____getitem__ 메소드를 구현해야 함
    • __len__은 데이터셋의 전체 크기를 반환
    • __getitem__은 주어진 인덱스에 해당하는 데이터를 반환

 

2. Iterable-style dataset

  • 메모리에 모든 데이터를 미리 로드하지 않고 필요할 때마다 데이터를 가져오는 방법
  • 데이터셋의 랜덤 읽기가 어렵거나 불가능할 경우에 적합한 데이터셋에 유용
    • 주로 메모리에 학습 데이터셋을 전부 올릴 수 없는 경우나 처리할 데이터가 대규모이거나 실시간으로 생성될 경우에 사용함
  • Iterable-style은 next를 통해서 접근 → sampler나 shuffle을 사용하기 어렵다
  • Iterable-style 클래스는 __iter__ 메소드(반복 가능한 객체)를 구현해야 함
    • 파이썬의 경우에는, 제너레이터함수나 yield문을 사용하여 수행함
반응형

댓글