[Boostcamp AI Tech] Pytorch 6~7강

이성범·2022년 1월 26일
0

Boostcamp AI Tech

목록 보기
14/49

Model Load & Monitoring tools for PyTorch

이번 강에서는 Transfer Learning과 모델의 학습 과정을 그래프를 사용하여 좀 더 효과적으로 확인할 수 있는 Monitoring tool에 대하여 학습을 진행했다. 매번 print 문이나 matplotlib을 통해서 모델의 학습 과정을 확인했었는데, 이번에 Monitoring tool에 대하여 알게 되었고 앞으로 모델의 학습 과정을 조금더 효과적으로 나타낼 수 있을 것 같다.

00. 학습 내용

  • Pytorch의 Model Save와 Transfer Learning에 대하여 학습
  • PyTorch의 Monitoring tools에 대하여 학습

01. Model Load

  • 우리는 우리가 학습 시킨 딥러닝 모델을 공유하고 싶을 때, 에폭마다 모델의 학습 결과를 저장시키고 싶을 때, colab과 같이 런타임 항상 유지되지 않는 상황에서 모델 결과를 저장시켜야 할 때 등 딥러닝 Model의 학습 결과를 저장시켜야 할 필요성을 느낄 것이다.
  • Pytorch 에서는 torch.save() 함수를 통해서 모델을 저장시킬 수 있다.
    • torch.save()는 학습의 결과를 저장하기 위한 함수
    • 모델 architecture와 parameter를 저장하기 위한 함수
    • 모델 학습 중간 과정의 저장을 통해 최선의 모델을 선택할 수 있음
    • 만들어진 모델을 공유하여 학습 재연성을 향상시킬 수 있음
    • torch.load()를 통해서 save된 학습 과정 및 모델 등을 불러올 수 있음
  • 현실의 문제를 다룰 때, 정제된 충분한 데이터를 수집하는 일은 어렵다. 이에 적은 데이터로 좋은 모델을 만드는 방법론이 다양하게 개발되었는데, 그 중 하나가 바로 Transfer Learning 이다.
    • Transfer Learning은 다른 데이터셋 으로 만든 모델을 현재 데이터에 적용하는 것
    • 일반적으로 대용량 데이터셋으로 만들어진 모델의 성능이 좋음
    • 현재의 딥러닝에서 가장 일반적인 학습 기법
    • backbone architecture가 잘 학습된 모델에서 일부분만 변경하여 학습을 진행
    • pretrained Model을 활용시 모델의 일부 parameter을 frozen 시키거나, 단계적으로 unfrozen 시키며 모델을 학습시켜 나감

02. Monitoring tools for PyTorch

  • 일반적인 딥러닝 모델의 학습 시간은 매우 길며, 이를 기록하는 것은 매우 중요하다.
  • 딥러닝의 학습 과정을 기록하는 대표적인 도구가 바로 Tensorboard와 weight & bias(wandb) 이다.
  • Tensorboard
    • TesorFlow의 프로젝트로 만들어진 시각화 도구
    • 학습 그래프, metric, 학습 결과의 시각화 지원
    • PyTorch도 연결하여 사용가능 DL 시각화의 핵심 도구
    • scalar : metric 등 상수 값의 연속(epoch)을 표시
    • graph : 모델의 computational graph 표시
    • histogram : weight 등 값의 분포를 표현
    • image : 예측 값과 실제 값을 비교 표시
    • mesh : 3d 형태의 데이터를 표현하는 도구
  • weight & bias
    • ML Ops의 대표적인 툴로 저변 확대 중
    • 머신러닝 실험을 원할히 지원하기 위한 상용도구
    • 협업, code versioning, 실험 결과 기록 등 제공

Example

  • 다음 코드를 통해서 Transfer Learning을 통한 모델 학습, 학습 과정을 TensorBoard에 시각화 하는 실습을 진행할 수 있다.
  • 연습코드
profile
Machine Learning Engineer at Konan Technology

0개의 댓글