다른 데이터셋으로 만든 모델을 현재 데이터에 적용
일반적으로 대용량 데이터셋으로 만들어진 모델의 성능이 높다.
현재의 DL에서는 가장 일반적인 학습 기법
backbone architecture가 잘 학습된 모델에서 일부분만 변경하여 학습을 수행하는 방식
TorchVision에서 다양한 모델을 제공한다.
NLP는 HuggingFace가 사실상 표준이 되었다.
pretrained model을 활용할 때 모델의 일부분을 frozen 시킨다.
이를 통해 backpropagation을 전체가 아닌 일부에만 수행한다.
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)
# Defining the forward pass
def forward(self, x):
x = self.vgg19(x)
return self.linear_layers(x)
for param in my_model.parameters():
param.requires_grad = False # Freezing
for param in my_model.linear_layers.parameters():
param.requires_grad = True