Я следил за учебным пособием по переносу муравьев и пчел из официальных документов PyTorch (http://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html). Я пытаюсь настроить модель VGG19, изменив последний слой, чтобы предсказать один из двух классов. Я могу изменить последний слой fc, используя следующий код.
Но я получаю сообщение об ошибке при выполнении функции train_model. Ошибка «несоответствие размера в /opt/conda/conda-bld/pytorch_1513368888240/work/torch/lib/THC/generic/THCTensorMathBlas.cu:243». Есть идеи, в чем проблема?
model_conv = torchvision.models.vgg19(pretrained=True)
for param in model_conv.parameters():
param.requires_grad = False
model_conv = nn.Sequential(*list(model_conv.classifier.children())[:-1] +
[nn.Linear(in_features=4096, out_features=2)])
if use_gpu:
model_conv = model_conv.cuda()
criterion = nn.CrossEntropyLoss()
optimizer_conv = optim.SGD(model_conv._modules['6'].parameters(), lr=0.001, momentum=0.9)
exp_lr_scheduler = lr_scheduler.StepLR(optimizer_conv, step_size=7, gamma=0.1)
model_conv = train_model(model_conv, criterion, optimizer_conv, exp_lr_scheduler, num_epochs=25)