Pytorch - 4. 모델 불러오기

Ui Jin·2022년 10월 24일
0

Pytorch

목록 보기
4/4

저장

저장방법

  • 모델의 파라미터만 저장
    • torch.save(model.state_dict(), [PATH])
  • 모델의 형태와 파라미터를 저장
    • torch.save(model, [PATH])

불러오기 방법

  • 같은 모델의 형태가 존재할 때, 모델의 파라미터만 불러오기
    • model.load_state_dict(torch.load([PATH]))
  • 모델의 형태와 파라미터를 모두 불러오기
    • model = torch.load([PATH])

Transfer Learning

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

  • 일반적으로 대용량 데이터 셋을 가지고 미리 학습한 모델을 사용한다.
  • 일반적으로 모델의 일부 Layer를 Frozen시킨 후 재학습을 통해 현재 데이터에 대해 학습을 시킨다.

1. 모델에 Layer 추가하기

model."Layer 이름" = torch.nn.Linear(1000, 1)

2. 모델의 Layer 변경하기

  1. 모델의 형태 알기

  2. Layer이름을 활용해 Layer에 접근, 변경하기

    • model.features._moduels['12'] = torch.flatten()
    • model의 feature층의 12번째 모듈(Conv2d)을 flatten으로 변경한다.

3. 모델의 Layer Frozen시키기

1) 모든 Layer Frozen상태 변경

for param in model.parameters():
	param.requires_grad = False

2) 일부 Layer Frozen상태 변경

  • Layer변경부분과 마찬가지로 먼저 모델의 형태 확인


  • Layer의 이름을 통해 Layer에 접근, 변경하기
for param in model.features.parameters():
	param.requires_grad = False
profile
github로 이전 중... (https://uijinee.github.io/)

0개의 댓글