无法预测使用pytorch [MNIST]

时间:2019-03-21 14:03:27

标签: machine-learning deep-learning pytorch prediction mnist

这里的火炬手,试图学习。

链接到我的笔记本: https://gist.github.com/jagadeesh-kotra/412f371632278a4d9f6cb31a33dfcfeb

我的验证精度为95%。

我使用以下内容进行预测:

m.eval()

testset_predictions = []
for batch_id,image in enumerate(test_dataloader):
    image = torch.autograd.Variable(image[0])
    output = m(image)
    _, predictated = torch.max(output.data,1)
    for prediction in predicted:
        testset_predictions.append(prediction.item())

len(testset_predictions)

问题是当我将结果提交给kaggle竞赛时,我只能获得10%的准确性,这与随机预测一样好。我无法弄清楚我在做什么错。

请帮助:)

1 个答案:

答案 0 :(得分:3)

很可能是由于错字所致;当您要使用新创建的predictated结果时,实际上是在使用predicted

_, predictated = torch.max(output.data,1)
    for prediction in predicted:

其中的predicted来自链接代码的前面,它包含来自 validation 集合的预测,而不是来自 test 集合的预测:

#validation

# ...

for batch_idx, (data, target) in enumerate(val_dataloader):

    data, target = Variable(data), Variable(target)

    output = m.forward(data)

    _, predicted = torch.max(output.data,1)

因此,您甚至都没有收到错误消息,因为predicted确实存在-这实际上不是您想要使用的内容...您最终为验证集而不是测试提交了结果一个(这两个样本都包含10,000个样本当然无济于事),因此,您预期获得的随机猜测准确性约为10%...