在这里努力学习。
链接到我的笔记本: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%,这和随机预测一样好,我不知道我做错了什么。
(请帮助:)
发布于 2019-03-21 14:09:08
很可能是由于错误;当您想要使用新创建的predictated结果时,实际上使用的是predicted。
_, predictated = torch.max(output.data,1)
for prediction in predicted:哪个predicted来自前面链接的代码,它包含来自验证集的预测,而不是您的测试集:
#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%的随机猜测精度。
https://stackoverflow.com/questions/55282224
复制相似问题