Обновление предварительно обученной модели глубокого обучения с учетом новых точек данных - PullRequest
0 голосов
/ 05 декабря 2018

Рассматривая пример классификации изображений в ImageNet, Как обновить предварительно обученную модель, используя новые точки данных.Я загрузил предварительно обученную модель.У меня есть новая точка данных, которая сильно отличается от распределения исходных данных, на которых модель была ранее обучена.Итак, я хотел бы обновить / откорректировать модель с помощью новой точки данных.Как это сделать?Может ли кто-нибудь помочь мне в этом?Я использую Pytorch 0.4.0 для реализации, работающей на GPU Tesla K40C.

1 Ответ

0 голосов
/ 05 декабря 2018

Если вы не хотите изменять выходные данные классификатора (т. Е. Количество классов), то вы можете просто продолжить обучение модели с новыми образцами изображений, предполагая, что они преобразуются в ту же форму, что и предварительно обученная модель.принимает.

С другой стороны, если вы хотите изменить количество классов в предварительно обученной модели, вы можете заменить последний полностью связанный слой новым и обучить только этот конкретный слой на новых выборках.Вот пример кода для этого случая из заметок о механике PyTorch :

model = torchvision.models.resnet18(pretrained=True)
for param in model.parameters():
    param.requires_grad = False
# Replace the last fully-connected layer
# Parameters of newly constructed modules have requires_grad=True by default
model.fc = nn.Linear(512, 100)

# Optimize only the classifier
optimizer = optim.SGD(model.fc.parameters(), lr=1e-2, momentum=0.9)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...