해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다.
1. 목표
- Dataloader 완성
- transform.compose로 다양하게 시각화 해보기
- 빠르게 제출해보기
2. 진행 내용
1) Dataloader 완성
- Dataloader는 기본적으로, __init__, __getitem__, __len__가 정의가 되어야 합니다.
- __init__에서는 필요한 속성을 정의하고, 이미지 리스트를 담는 작업을 실시했습니다. 이미지 리스트는 glob로 받았습니다.
- __getitem__에서는 1개의 이미지와 라벨을 리턴해줬습니다. 이미지를 로드할 때는 PIL 라이브러리와 cv2를 사용할 수 있는데, cv2를 사용했을 때, array로 이미지를 읽기 때문에 ndarray로 변환이 필요한 것 같습니다.
- __len__에서 파일리스트의 길이를 반환해주도록 했습니다.
- 추가적으로 라벨을 구하기 위해서 _get_label이라는 함수를 포함했습니다. 라벨이 폴더명과 파일명을 기준으로 나눠지기 때문에, 그 부분을 체크해서 label를 리턴해주도록 했습니다.
2) transform.compose로 다양하게 시각화 해보기
- 진행하지 못했습니다.
3) 빠르게 제출해보기
- dataset을 8:2로 split하고 추가적인 처리없이 VGG11로 3에폭 학습한 것을 제출했습니다. 결과는 acc : 43.3%, F1-score : 0.24 나왔습니다.
- 추후 진행은 transform.compose 추가, dataset 클래스별로 나눠서 비슷하게 augmentation 작업진행, train.py 만들어보기. 모델은 EfficientNet 적용해보기.
3. 회고
생각보다 Dataloader가 오래걸리기는 했으나, 각각의 역할에 대해 좀 더 자세하게 알아볼 수 있었던 것 같습니다. 오늘은 VS code로 ssh로 연결하는 것을 시도해볼 예정입니다. 내일은 Data를 클래스별로 모아서 augmentation도 진행해보려고 합니다.