PyTorch регрессионная задача обучения прогнозирования передачи - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь использовать трансферное обучение с весами VGG16 и imag enet для решения проблемы регрессии. Я изменяю последний слой для линейного слоя с выходным размером 1 (см. Код ниже).

Тем не менее, прогноз моей сети очень странный. Мои значения тренировок являются ценами на недвижимость, поэтому >> 0 и моя сеть прогнозирует только значения <0. </p>

Есть мысли по этому поводу?

# Need to change dataloader to bring class model
model = models.vgg16_bn(pretrained=True)
criterion = nn.MSELoss() #nn.CrossEntropyLoss() #nn.MSELoss()
optimizer = optim.Adam(model.parameters())

# Freeze training for all layers
for param in model.features.parameters():
    param.require_grad = False

# Newly created modules have require_grad=True by default
num_features = model.classifier[6].in_features
features = list(model.classifier.children())[:-1] # Remove last layer
features.extend([nn.Linear(num_features, 1)]) # Number of output necessary
model.classifier = nn.Sequential(*features) # Replace the model classifier

if use_gpu:
    model.cuda()
num_epochs = 20
dir_ = 'Weigths/'
vgg16 = train_model(model, criterion, optimizer, num_epochs=num_epochs, classification=False)

Я проверил загрузчик данных и его подачу правильный ярлык ...

Спасибо!

...