Pytorch - с использованием предварительно обученной модели, обучение классификаторам - PullRequest
0 голосов
/ 05 мая 2020

Я бы хотел использовать предварительно обученную модель и обучить только часть классификатора, не меняя веса в основной части сети.

Я импортировал модель, изменил выходной слой чтобы соответствовать количеству классов, которые у меня есть в моих данных, и создать экземпляр оптимизатора:

model = torch.hub.load('pytorch/vision:v0.6.0', 'mobilenet_v2', pretrained=True, force_reload=True)

model.classifier[1] = nn.Linear(1280, 50, True)

optimizer = torch.optim.Adam(model.classifier.parameters(), lr=0.05)

Затем в обучающей части я просто делаю (как всегда):

optimizer.zero_grad()
loss.backward()
optimizer.step()

Таким образом , я тренирую только часть классификатора сети или он все еще каким-то образом корректирует веса всей сети, и я что-то упускаю?

...