Скорее всего, это связано с опечаткой; в то время как вы хотите использовать только что созданные 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% ...