부캠 TIL 0819
질문
- BCEWithLogitsLoss랑 BCEloss랑 뭐가 다른거지 강의에서는 전자가 시그모이드를 뒤에 달아준다는데 원래도 자동으로 달아주지 않나..?
super(Add, self).__init__()
super().__init__()
- 위의 두가지의 차이점은 전자는 명시된 클래스의 부모클래스까지 돌고 온다는 것. 명시해주지 않는다면 모든 부모클래스를 돌고 온다는 것이다. 참고
알게된 것
torchvision.transforms.Grayscale(num_output_channels=3)
# grayscale의 1채널 영상을 3채널로 동일한 값으로 확장함
PYTORCH
Transfer learning
model.save
pytorch 모델을 저장하는 방법은 두가지가 있다.
weight만 저장
- 저장
toch.save(model.state_dict(), os.path.join(MODEL_PATH, 'model.pt'))
- 로딩
new_model = model() # 모델정의먼저하고
new_model.load_state_dict(os.path.join(MODEL_PATH, 'model.pt') # weight로드
정의한 모델과 weight의 아키텍처형태가 같아야된다!!
모델, weight 저장
- 저장
torch.save(model, os.path.join(MODEL_PATH, 'model.pt'))
- 로딩
new_model = torch.load(os.path.join(MODEL_PATH, 'model.pt'))
checkpoints
# 현재 모델의 epoch, weight, optimizer, loss 저장
torch.save({'epoch': e,
'model_state_dict': model.state_dict(),
'optimizer_state_dict': optimizer.state_dict(),
'loss': epoch_loss,
},
f"saved/checkpoint_model_{e}_{epoch_loss/len(dataloader)}_{epoch_acc/len(dataloader)}.pt")
checkpoint = torch.load(PATH)
model.load_state_dict(checkpoint['model_state_dict'])
optimizer.load_state_dict(checkpoint['optimizer_state_dict'])
epoch = checkpoint['epoch']
loss = checkpoint['loss']
Transter learning
요런 다양한 모델을 가져다가 조금 변형해서 쓰는것
-
stepping fozen
레이어 하나씩만 trainable하게 하고 나머지 frozen하는 것을 반복 -
모델 불러오기
import torch
from torchvision import models
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
vgg = models.vgg16(pretrained=True).to(device)
- 레이어에는 이름이 붙어있다.
for name, layer in vgg.named_modules():
print(name, layer)
- frozen
vgg = models.vgg16(pretrained=True).to(device)
class MyNewNet(nn.Module):
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)
for param in my_model.parameters():
param.requires_grad = False
for param in my_model.linear_layers.parameters():
param.requires_grad = True
Monitoring tools for PyTorch
Tensorboard
- scaler, graph, historgram, image, mesh
Weight&biases
- mlops툴
- 협업 가능
- 유료
Author And Source
이 문제에 관하여(부캠 TIL 0819), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ann9902/부캠-TIL-0819-a9m3cd05저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)