결론을 먼저 말하자면 "Customizing" 하려고이다.
딥러닝 모델을 학습시킬때 데이터셋을 가져와야 하는데 한번에 모든 데이터를 가져오면 메모리가 터져버리는 일이 생긴다.
그래서 batch를 나눠서 모델이 입력을 해주는데 어떤 데이터를 가져오고, 어떤 형태로 가져오고, 한 번에 얼마나 가져올지 customzing 하기 위해 torch에 dataset과 dataloader를 사용한다.
Dataset
Dataset class는 전체 dataset을 구성하는 단계이다. input으로 전체 x와 y를 텐서로 넣어준다.
- __init__(self): 여기서 필요한 변수들을 선언한다.
- __len__(self) : x와 y의 데이터의 길이는 같으니까 편의상 len(y)를 통해 데이터의 크기를 리턴한다.
- __getitem__(self, index) : index번째 data를 return 하도록 코드를 짜야한다.
Dataloader
dataloader class는 batch기반의 딥러닝 학습을 위해 mini batch를 만들어주는 역할이다. dataloader를 통해 dataset의 전체 데이터가 batch size로 slice된다. 앞서 만들었던 dataset을 input으로 넣어주면 여러 옵션(데이터 묶기, 섞기, 병렬처리)을 통해 batch를 만들어준다. 서버에서 돌릴때는 num_worker를 조절해서 load속도를 조절할 수 있지만, PC에서는 default로 설정해야 오류가 안난다.
'DataScience > Python' 카테고리의 다른 글
confusion matrix 식 (0) | 2022.05.17 |
---|---|
[pandas] pd.merge() (0) | 2022.02.21 |
pandas pivot 참고자료 (0) | 2022.02.07 |
Random forest parameters (0) | 2021.12.15 |
Decision tree parameters (1) | 2021.12.15 |
댓글