네이버 Boostcamp AI tech 4기

P-stage baseline code

애둥 2022. 10. 28. 00:16

오늘 baseline code 버전2를 받았다. (오늘 맞나? 이제 하루하루의 경계도 가물가물) 
평소에 프로젝트 구조도 잘 보지 않았고, 작성해보지도 않아서 이해하고 사용해보는 데 생각보다 오래걸렸다. 

폴더 내 구조는 간단하게 이러했다. 

├─ dataset.py
├─ inference.py
├─ loss.py
├─ model.py
├─ requirements.txt
└─ train.py

이 중, 실행파일은 inference.py, train.py 뿐이었고, 
나머지 dataset.py, loss.py, model.py 는 모듈의 역할을 하는 파일이었다. 
requirements.txt는 필요한 라이브러리들과 버전이 담겨져있는 파일이었고. 

1. 처음에 필요 패키지를 먼저 받고, 

pip install -r requirements.txt

2. trian.py을 통해 학습시킨다. 

python train.py --각종옵션들

받은 파일에서는 이런식으로 환경변수를 줘서 Train Img Directory 및 Model 저장 경로를 전달하라고 했지만, default값도 설정이 되어있었고, argparse 옵션으로도 줄 수가 있었다. 나는 argparse 옵션이 가독성이 더 좋아서 argparse만 사용했다. 

학습 시 입렵 가능한 옵션은 몹시 많았다. 그 중 추려보자면,
--epochs (학습 epoch), --augmentation (이미지 augmentation 어떤 것 사용할지 선택, dataset.py에서), --model (모델 클래스 선택 model.py에서), --optimizer (torch.optim에서 불러올 수 있는 것 중), --lr (학습률), --criterion (손실함수 선택, loss.py에서, 추가로 필요하면 loss에서 편집), --data_dir, --model_dir 등이 있었다. 

그리고, train.py 파일에는 tensorboard에서 볼 수 있게 log를 남겨주는 기능이 있었다. 텐서보드에서 보려면, 아래아래 명령어를 입력해 주면 된다. 훈련을 여러번 시켜봤을 때, 정말 좋은 기능이었다!

tensorboard --logdir=<저장된log경로>

 

3. 예측

python inference.py --각종옵션들

입력 가능한 옵션들 중 필요해 보이는 건 --model (모델 클래스 선택 model.py에서), --model_dir(불러올 모델이 있는 directory 경로), --output_dir (추론결과를 저장할 위치) 가 있었다. 

4. 평가

python evaluation.py

사실 지금 블로그 글 쓰면서 알았는데, 이런 것도 있었다. 모델 평가는 한번도 안해봤다. 
근데, 보니까 evaluation.py라는 파일이 제공된 baseline code에는 없다! 스스로 작성해서 사용하라는 건가보다ㅎ
언제하지..ㅎ

 

잘 짜여진 코드를 보고 감명깊은 부분이 많았는데, 하나하나 다 정리할 수가 없었다. 
처음부터 복잡한 프로젝트 폴더를 보면 해볼 엄두도 안났는데, 비교적 간단한 구조라 나에게 공부하기 좋은 샘플이었다.ㅎ
그리고, 좋은 코드를 찾는 방법도 몰라서 다른 코드를 보면서 공부해본 적도 없었는데, 확실히 혼자서 쌓아나가는 것보다 빠르고 효과적이다. 얼른 다음 단계로 넘어가야지