model 자체 코딩보다는 모델을 어떻게 다룰 것인지.
e.g., vgg로 binary classification을 하고 싶다면, torchvision에서 pre-trained vgg를 load하고 vgg 끝에 linaer layer를 추가한다.
선택과제에서 제시된 과제였다. transfer learning의 대표적인 예시였다.
즉, source task에서 학습된 지식을 target task로 전이하는 것이 목적이다.
parameter update, backpropagation을 전체에 대해서 적용하지 않고, pre-trained model의 일부 레이어에서만 적용한다.
즉, pre-trained된 parameters 일부를 유지하면서 나의 데이터셋에 맞게 튜닝하는 것이 목적.
학습 step별로 frozen하는 layer를 바꿔준다.
pytorch 모델의 확장며들이다. 둘 다 사용 가능하지만, pth는 이미 python에서 사용중인 확장자라고 한다. 따라서 pt를 권장한다.
Binary Classification을 할 때, Loss를 계산해주는 criterion으로 사용한다. 이러면 모델의 마지막에 sigmoid가 없어도 sigmoid를 달아준다.