HealthyAI

PyTorch) Model 본문

AI/PyTorch

PyTorch) Model

BiteApple 2023. 3. 18. 14:19
반응형

Model

model.save()

  • 학습의 결과를 저장하기 위한 함수

  • 모델 형태(architecture)와 파라미터를 저장

  • 모델 학습 중간 과정의 저장을 통해 최선의 결과모델을 선택

  • 만들어진 모델을 외부 연구자와 공유하여 학습 재연성 향상

checkpoints

  • 학습의 중간 결과를 저장, 최선의 결과를 선택

  • earlystopping 기법 사용시 이전 학습의 결과물을 저장

  • loss와 metric 값을 지속적으로 확인 저장 한다

  • 일반적으로 epoch, loss, metric을 함게 저장하여 확인

  • colab에서 지속적인 학습을 위해 필요

transfer learning

  • 다른 데이터셋으로 만든 모델을 현재 데이터에 적용

  • 일반적으로 대용량 데이터셋으로 만든 모델의 성능이 좋다

  • 현재의 DL 에서는 가장 일반적인 학습 기법

  • backbone architecture 가 잘 학습된 모델에서 일부분만 변경하여 학습을 수행

  • TorchVision은 다양한 기본 모델 제공

  • NLP - HuggingFace가 사실상 표준

  • freezing

    • pretrained model을 사용할 때 모델의 일부분을 frozen 시킨다.
    • 일부분은 파라미터의 업데이트가 진행되지 않게 학습을 시킨다.
    # 모델에 마지막 linear layer 추가
    def __init__(self):
            super(MyNewNet, self).__init__()
            self.vgg19 = models.vgg19(pretrained = True)
            self.linear_layers = nn.Linear(1000,1)
    
    def forward(self, x):
            x = self.vgg19(x)
            return self.linear_layers(x)
    
    # 마지막 레이어를 제외하고 frozen
    for param in my_model.parameters():
            param.requires_grad = False
    for param in my_model.linear_layers.parameters():
            param.requires_grad = True

pretrained model

  • 되도록 원래 모델을 변경 하지 않도록 하기 위해 새로 선언 해준다.
반응형

'AI > PyTorch' 카테고리의 다른 글

PyTorch) Dataset & DataLoader  (0) 2023.03.18
PyTorch) Project  (0) 2023.03.18
PyTorch) AutoGrad, Optimizer  (0) 2023.03.18
PyTorch) PyTorch Basic  (0) 2023.03.18
밑바닥 부터 시작하는 딥러닝) ch3. 신경망  (0) 2023.02.01