또르르's 개발 Story

[Stage 1 - 이론] Dataset & DataLoader 본문

[P Stage 1] Image Classification/이론

[Stage 1 - 이론] Dataset & DataLoader

또르르21 2021. 3. 30. 15:54

1️⃣ Data Augumentation 라이브러리

 

  • torchvision.transforms

    - RandomCrop : 랜덤으로 crop을 해서 input으로 넣는 방법

    - Flip : 상하 또는 좌우로 반전 / 하지만 flip은 사진을 거꾸로 찍는 사람은 거의 없으므로 역효과가 날 수 있습니다.

 

 

  • Albumentations

    Albumentations 라이브러리를 사용하면 더 빠르고 더 다양한 data agumentation들을 사용할 수 있습니다.

 

 

2️⃣ Generator

 

모델 학습을 할 때 Data Generator와 Model의 batch size를 맞춰주는 것이 중요합니다.

Data Generator가 초당 10 batch 밖에 되지 않으면 Model의 batch 처리 속도가 아무리 빨라도 Max 10 batch/s이며,

Data Generator의 batch 처리 속도가 아무리 빨라도 Model이 초당 20 batch를 처리한다면 Max 20 batch/s입니다.

 

https://www.edwith.org/bcaitech1

 

Goal에 Generator / Model의 batch 처리 속도를 측정을 추가!

 

또한, transform의 순서에 따라 속도 차이도 있으니 주의해야 합니다.

RandomRotation -> Resize는 time이 3.65초 정도 걸리는 것에 반해 Resize -> RandomRotation은 time이 2배 정도 늘어난 것을 알 수 있습니다.

이 이유는 처음에 들어가는 input의 shape이 달라지기 때문에 정보량이 늘어나 더 오랜 시간이 걸립니다.

 

https://www.edwith.org/bcaitech1

 

3️⃣ Datasets (torch.utils.data)

 

기본적인 Dataset의 구조는 다음과 같습니다.

 

https://www.edwith.org/bcaitech1

 

4️⃣ DataLoader

 

Custom으로 제작된 Dataset을 바로 사용할 수 있지만, mini-batch 방식이나 병렬 처리(num_workers) 등에 효율적인 DataLoader를 사용할 수 있습니다.

 

https://www.edwith.org/bcaitech1

 

  • Collate_fn : batch마다 적용하고 싶은 함수를 다르게 주고 싶거나, 취합하는 함수를 넣을 때

  • num_workers : 병렬 처리를 위한 parameter. num worker 수가 많을수록 time이 줄어듭니다.

https://www.edwith.org/bcaitech1

'[P Stage 1] Image Classification > 이론' 카테고리의 다른 글

[Stage 1 - 이론] Ensemble  (0) 2021.04.02
[Stage 1 - 이론] Training & Inference  (0) 2021.04.01
[Stage 1 - 이론] Model  (0) 2021.03.31
Comments