pytorch 踩坑: only one element tensors can be converted to Python scalars

错误原因:
有一个列表是A,其元素是多个tensor,这时会如题报错。解决方案是,将A的元素先转化为ndarray,再变换为tensor。具体操作如下:

  • 如果是在gpu上,由于在gpu中不能转换为array
A = torch.tensor( [item.cpu().detach().numpy() for item in A] )
  • 如果是在cpu上:
A = torch.tensor([item.detach().numpy() for item in A])

特别需要提的一点是

如果A是多层嵌套的tensor,比如

A = [
	[tensor, tensor].
	[tensor, tensor],
]

那么还是需要具体把每一个tensor都转化为array才可以,否则数据类型会显示为np._object,而非可以转化为tensorint,float等数据类型。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值