丁天牛 2021-07-05 18:01 采纳率: 100%
浏览 178
已采纳

具有多个值的张量的布尔值是不明确的

        for i, data in enumerate(divide.train_loader, 0):
            inputs, train_labels = data    #
            inputs, labels = Variable(inputs), Variable(train_labels)
            optimizer.zero_grad()
            outputs = Net(inputs)
            _, train_predicted = torch.max(outputs.data, 1)
            #train_correct += (train_predicted == labels.data).sum()
            if train_predicted == labels.data:
                train_correct += 1
Traceback (most recent call last):
  File "C:/Users/牛牛/Desktop/机器学习/dataset_kaggledogvscat/train.py", line 23, in <module>
    if train_predicted == labels.data:
RuntimeError: Boolean value of Tensor with more than one value is ambiguous

为什么train_correct += (train_predicted == labels.data).sum()就可以呢?这句话的意思就是如果train_predicted与labels.data相等的话,train_correct就加一么

  • 写回答

1条回答 默认 最新

  • python收藏家 2021-07-05 18:21
    关注

    建议打印看看这两个输出的值,看看数据和类型什么的,这样比较容易理解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?