PyTorch回归转移学习预测问题

时间:2020-03-20 10:02:03

标签: computer-vision regression pytorch transfer-learning

我正在尝试将转移学习与VGG16和imagenet权重一起用于回归问题。我将最后一层更改为输出大小为1的线性层(请参见下面的代码)。

但是,我对网络的预测非常奇怪。我的训练值是房地产价格,因此>> 0,而我的网络仅预测值<0。

对此有何想法?

# 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)

我已经检查了数据加载器并为其提供了正确的标签...

谢谢!

0 个答案:

没有答案