pytorchでpretrained modelの最終層だけlrを変更する。
torchvisionで呼び出した最終層だけlrを変えるやり方がわからなかったので調べてみました。 pytorchの公式ドキュメントに記載があるので,そちらを参照して頂いたほうが正しい情報になると思います。
まず適当なmodelを呼び出します。
from torchvision import models model = models.resnet18(pretrained=False)
lrを変えるのは,optimizerの部分で定義します。 公式ドキュメントをフォローしています。
import torch.optim as optim optimizer = optim.SGD([ {'params': model.parameters()}, {'params': model.fc.parameters(), 'lr': 1e-3} ], lr=1e-2, momentum=0.9)
で行けるようです。 あとは学習させるだけです。