【问题标题】:invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number0-dim 张量的无效索引。使用 tensor.item() 将 0-dim 张量转换为 Python 数字
【发布时间】:2019-09-10 13:41:59
【问题描述】:

我正在使用 PyTorch 教程来计算每个类的准确率,它抛出了一个使用 tensor.item() 的错误,该错误已经在 class_correct[target] += c[i].item() 中

class_correct = list(0. for i in range(15))
class_total = list(0. for i in range(15))

with torch.no_grad():

    for ii, data in enumerate(test_loader): 

        t_image, target, classess, image_path  = data

        t_image = t_image.to(device)
        target = target.to(device)

        outputs = model(t_image)

        _, predicted = torch.max(outputs, 1)
        c = (predicted == target).squeeze()

        for i in range(4):
            target = target[i]
            class_correct[target] += c[i].item()
            class_total[target] += 1

for i in range(14):
    print('Accuracy of %5s : %2d %%' % (
        classes[i], 100 * class_correct[i] / class_total[i]))  

任何评论将不胜感激。

【问题讨论】:

  • 拜托,你能提供c.shape吗?
  • @Berriel 当我得到 print(c.shape) 时,输出是 torch.Size([])
  • 你现在明白错误了吗?

标签: pytorch


【解决方案1】:

由于c.shape,torch.Size([]) 不在列表中。所以它有错误。 你可以使用c.item()。

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2020-10-31
    • 2019-10-24
    相关资源
    最近更新 更多