ValueError:only one element tensors can be converted to Python scalars 解决方法

错误部分

错误原因

disp_image部分是一个维度为[1,4]的tensors。因此不可将元素逐个读取出来。

解决方案

将tensor转换成numpy, 再将numpy转换为list

具体做法

ndarray = disp_rect.cpu().numpy() #将tensor转换为ndarray
list = ndarray.tolist() #将ndarray转换为list

此时,已经把数据处理成可用状态,但是数据集中的tensor维度不一致,

导致仍然报错,具体来说为tensor有些维度为【1,4】,有些为【4,】也就是总维度为2/1维。因此

解决方案

将2维的部分降为1维

            if ndarray.shape[0] == 1:
                list = ndarray.tolist()
                re_rect = [token for set in list for token in set]

如果第一维为1,则进行降维操作,否则

         else:
                list = ndarray.tolist()

直接转换为list

经过此步骤可以使得tensor都成为【4,】

问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值