목차
1. 강의정리
1-1. PyTorch - chap6. 모델 불러오기
1-2. PyTorch - chap7. Monitoring Tools for PyTorch
2. 피어세션 정리
3. 데일리 회고
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
📜 강의 정리
* 부스트캠프 PyTorch 강의를 맡아주신 최성철 교수님의 강의를 정리한 것 입니다.
[PyTorch] Chapter6. 모델 불러오기
🌈 모델 저장 방법과 저장한 모델 불러오는 방법을 알 수 있다.
주로 CV는 CNN, NLP는 BERT 기본 모델을 불러와서 학습을 진행한다.
학습한 결과를 남에게 공유하고 싶다면 내 모델을 저장해야 한다.
1. 모델 저장 & 불러오기
- model.save() : 모델 형태(architecture)와 파라미터를 저장
- model.state_dict() : 모델의 파라미터 표시
- 저장방법 1. torch.save(model.state_dict(), os.path.join(MODEL_PATH, "model.pt")) : 파라미터만 저장 ✔
- 저장방법 2. torch.save(model, os.path.join(MODEL_PATH, "model.pt")) : 모델도 저장
- 방법 1을 불러올 때는 new_model = TheModelClass()로 모델을 불러온 다음, new_model.load_state_dict(torch.load(os.path.join(MODEL_PATH, "model.pt"))) 파라미터 불러오기
- 방법 2를 불러올 때는 model = torch.load(os.path.join(MODEL_PATH, "model.pt")) 모델에 바로 로드
+) checkpoint : 학습 중간 결과 저장
torch.save({
'epoch': e,
'model_state_dict': model.state_dict(),
'optimizer_state_dict': optimizer.state_dict(),
'loss': epoch_loss,
},
f"saved/checkpoint_model_{e}_{epoch_loss/len(dataloader)}_{epoch_acc/len(dataloader)}.pt")
2. Transfer Learning : 남이 학습시킨 모델 불러오기
- Freezing 기법 : layer의 일부분만 내가 학습시키고 나머지는 pretrained 상태로 사용
- 마지막 layer에 Linear layer를 추가하거나, 마지막 layer의 output_dim 개수를 수정해서 내 클래스 개수로 맞추기
[PyTorch] Chapter7. Monitoring Tools for PyTorch
1. Tensorboard
- 1. Tensorboard 기록 디렉토리 생성 : os.makedirs(logs_base_dir, exist_ok=True)
- 2. 기록생성 객체 SummaryWriter 생성
- from torch.utils.tensorboard import SummaryWriter
- writer = SummaryWriter(logs_base_dir)
- 3. 기록
- writer.add_scalar('Loss/train', np.random.random(), n_iter) : Loss 카테고리에 train 값(scalar) 기록, n_iter는 x축 값
- wirter.flush() : disk에 쓰기
- 4. Tensorboard 수행
- %load_ext tensorboard : jupyter, colab 상에서 tensorboard 수행
- %tensorboard --logdir {logs_base_dir} : 파일 위치 지정
2. weight & biases (wandb)
- 머신러닝 실험관리 도구
- 협업, code versioning, 실험 결과 기록 제공
- 사용법
- 1. 설정 : config={" epochs":EPOCHS,"batch_size":BATCH_ SIZE,"learning_rate":LEARNING_RATE}
- 2. 실행 : wandb.init(project="my-test-project(프로젝트명)",config=config)
- 3. 기록 : wandb.log({'accuracy' : train_acc, 'loss' : train_loss})
- tensorboard도 좋지만, wandb가 사용하기 편해보였다. 하이퍼파라미터 별로 성능 비교하기도 쉬워보인다!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/023.gif)
🙋♀️피어세션
1. TMI TALK 💬
2. 멘토님 질의응답
노션에 질문한 것에 대해 멘토님께서 답변을 해주심
- 면접 관련 질문에 대한 방향에 대해 알려주시고, 기세가 중요하다고 강조하셨음.
- Further Question에 대한 질문에 대해 답변을 해주시고, 출제자의 의도를 설명해주심.
3. 유용한 팁 - Week 3
🟢 블로그 작성
- 브런치, 미디움, 티스토리 등의 특징과 차이
- 광고 수입
🟢 해외취업(유학)
- 유럽권 유학에 대한 팁 알려주심
- 해외취업에 있어서는 그 지역의 대학원 나오는 것이 매우 유리
🟢 직장없이 경력 쌓기
- 나보다 못하는 사람들을 위한 무료 강의로 시작
- 공통적인 질문으로 강의를 탄탄하게 발전시키기
🙋♀️ 마스터클래스(최성철 교수님)
🌈앞으로의 머신러닝
- 코딩, 엔지니어링, 컴퓨터를 어느 정도 잘 다뤄야한다.
- 성능을 올리기 위한 모델 싸움은 정리중(기존 모델 사용)
- 이제는 데이터다!
- ML code는 매우 작은 부분이다! Shell script, 네트워크, 클라우드 등 기본적으로 알아야 한다.
- 추가로 알아야할 것 : MLOPs 도구들, 당연히 DB, Cloud(AWS, GCP, Azure), Spark(+Hadoop), Linux+Docker+쿠버네티스, 스케줄링 도구(쿠브플로우, MLFlow, AirFlow)
- 하나의 시스템으로서 ML/DL 개발. 자동화하고, 데이터와 연계, 실험 결과를 기반으로 설득, 시스템화 필요
- ML은 이제 시작. 끝물 아니다. 데이터 제조업의 경우(현대차, 중공업 등) 데이터화 되어 있지 않은 곳
- AI Engineer, AI 기획자의 요소들이 필요 - 아직 AI화 되지 않은 영역의 AI화(데이터를 어떻게 먹일 것인가)
+) Q&A
- 프로젝트 템플릿 코드, 허깅페이스, 파이토치 제공 코드 등을 클론코딩해보면 좋을 듯
- CS지식, 특히 리눅스와 데이터베이스는 기본. 이것 모르면 협업 힘들다. 그 다음은 클라우드, 도커 순
- AI 대학원 가면 인적 네트워크와 부족한 부분 채울 공부 시간이 있는 점이 좋다. 기왕이면 좋은 대학원
- 학사 출신 ml 엔지니어 추천 경험 : Kaggle 등의 컴피티션에서 의미있는 결과를 내고 github에 report 써서 결과 공유
💌 데일리 회고
앞으로 무엇을 하고 싶은지 고민해봤다. 대학교 들어가기 전에는 교환학생 가려는 꿈도 있었고, 해외에서 살고 싶다는 생각도 있어서 오늘 멘토링 시간에 멘토님께서 해외취업, 유학에 대해 얘기해주셨는데 솔깃했다. 4학년이 되어서는 취업 생각만 하고 나머지 가능성에 대해서는 닫아놨던 것 같다.
마스터 클래스 시간에는 공부해야 할 것들을 마스터님이 알려주셔서 공부에 끝이 없음을 다시 한 번 깨달았다. 공부 열심히 하면서 어떻게 살고 싶은지도 생각해봐야겠다.
'TIL > Boostcamp AI tech' 카테고리의 다른 글
[Boostcamp]Week4-Day15. P stage start :: seoftware (0) | 2021.08.23 |
---|---|
[Boostcamp]Week3-Day14. Pytorch 활용 - Multi GPU, Hyperparameter tuning :: seoftware (0) | 2021.08.20 |
[Boostcamp]Week3-Day12. Pytorch 구조 학습 :: seoftware (0) | 2021.08.18 |
[Boostcamp] week3-Day11. Pytorch 기본 :: seoftware (0) | 2021.08.17 |
[Boostcamp] Week2-Day10. Generative Models :: seoftware (0) | 2021.08.13 |
댓글