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 데이터 표현
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 |