栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【PyTorch Bug】RuntimeError: Boolean value of Tensor with more than one value is ambiguous

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【PyTorch Bug】RuntimeError: Boolean value of Tensor with more than one value is ambiguous

Case 1

将含有两个及以上的布尔值的张量用在了 if 判断条件里:

a = torch.tensor([True, False])
if a:
    pass

出现这种错误的可能原因之一是想判断 a 不为 None,此时应改为如下语句

if a is not None:

需要注意的是,如果 a 只含一个布尔值,则判断不会出现错误:

a = torch.tensor([True])
if a:
    print(1)
# 1
Case 2

使用交叉熵损失时没有先实例化:

inputs = torch.randn(6, 4)
target = torch.randint(4, (6, ))
loss = nn.CrossEntropyLoss(inputs, target)

应先实例化再计算损失:

criterion = nn.CrossEntropyLoss()
loss = criterion(inputs, target)
Case 3

对含有两个及以上的布尔值张量执行了 or、and、not 这样的操作:

a = torch.tensor([True, False])
b = torch.tensor([False, True])
""" 以下三种操作都会报错 """
print(a or b)
print(a and b)
print(not a)

需要注意的是,如果 a 和 b 都只含一个布尔值,则不会出现错误:

a = torch.tensor([True])
b = torch.tensor([False])
print(a or b)
# tensor([True])
print(a and b)
# tensor([False])
print(not a)
# False
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号