본문 바로가기

부스트캠프 AI Tech/Pytorch

Model Control

Model.save

  • architecture, parameter 저장
    model.state_dict() # 모델의 parameter 출력
    torch.save(model.state_dict(),PATH) # 같은 형태의 모델의 parameter 저장
    torch.load_state_dict(PATH) # 같은 형태의 모델에서 parameter 로드
    
    torch.save(model, PATH) # architecture와 parameter 모두 저장
    torch.load(PATH) # architecture와 parameter 모두 로드​

Checkpoints

  • 학습의 중간 결과 저장, early stopping
  • epoch, loss, mertric 값을 지속적으로 저장
    torch.save({
    	'epoch': e
        'model_state_dict' : model.state_dict()
        'optimizer_state_dict' : optimizer.state_dict()
        'loss' : epoch_loss},
        PATH)​

Transfer learning

  • 일반적으로 학습 데이터가 많을수록 성능이 좋음
  • backbone architecture가 잘 학습된 모델에서 fine tuning하여 학습
  • Freezing - pretrained model을 활용 시 일부분을 frozen

Monitoring tools

  • Tensorboard, weight & bias (wandb)
  • Tensorboard - computational graph, metric, output 시각화
    • scalar : metric(accuracy, loss, precision, recall 등) epoch 단위로 출력
    • graph : computational graph
    • histogram : weight, bias 등의 분포
    • image : 예측 값과 실제 값 비교
    • mesh: 3D 데이터 표현

"logs" 폴더 시각화

Weight and Bias

  • ML 학습을 위한 tool(부분 유료)
  • 협업, version control, reporting 등 활용

Multi-GPU 학습

  • GPU, Node(system, computer)
  • 모델 나누기, 데이터 나누기
  • 모델 나누기 - 병목, 파이프라인 설계 고난이도
  • 데이터 나누기 - 데이터를 나눠 할당 후 결과의 평균0.
    • DataParallel - GPU 사용 불균형, batch 사이즈 감소
    • DistributedDataParallel - 개별적으로 연산의 평균

'부스트캠프 AI Tech > Pytorch' 카테고리의 다른 글

Trouble shooting  (0) 2022.01.27
Hyperparameter Tuning  (0) 2022.01.27
Pytorch - Project template  (0) 2022.01.24
Pytorch - basic  (0) 2022.01.24