더북(TheBook)

참고용으로 모델의 파라미터 값들을 확인해 보겠습니다.

코드 5-18 모델의 파라미터 값 확인

for name, param in resnet18.named_parameters(): ------ model.named_parameters()는 모델에 접근하여 파라미터 값들을 가져올 때 사용
    if param.requires_grad:
        print(name, param.data)

다음은 파라미터 값들을 가져온 결과입니다. 다음 결과와 같이 파라미터는 weightbias가 사용되고 있습니다.

fc.weight tensor([[ 0.0290, -0.0368, -0.0243, ...,  0.0268,  0.0337,  0.0388],
                  [ 0.0173, -0.0082,  0.0215, ..., -0.0272, -0.0227, -0.0236]])
fc.bias tensor([-0.0427, -0.0383])

이제 모델 학습 준비를 위해 모델의 객체를 생성하고 손실 함수를 정의합니다.

코드 5-19 모델 객체 생성 및 손실 함수 정의

model = models.resnet18(pretrained=True) ------ 모델의 객체 생성

for param in model.parameters(): ------ 모델의 합성곱층 가중치 고정
    param.requires_grad = False

model.fc = torch.nn.Linear(512, 2)
for param in model.fc.parameters(): ------ 완전연결층은 학습
    param.requires_grad = True

optimizer = torch.optim.Adam(model.fc.parameters())
cost = torch.nn.CrossEntropyLoss() ------ 손실 함수 정의
print(model)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.