ValueError:only one element tensors can be converted to Python scalars
2021/11/22 20:12:01
本文主要是介绍ValueError:only one element tensors can be converted to Python scalars,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
把list转换成pytorch的tensor对象时,出现以下错误
ValueError:only one element tensors can be converted to Python scalars
具体如下,torch.as_tensor()
和torch.tensor()
都转不了。
>>> t1 = torch.tensor([0., 1.]) >>> t2 = torch.tensor([2., 3.]) >>> tensor_list = [t1, t2] >>> torch.as_tensor(tensor_list) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: only one element tensors can be converted to Python scalars >>> torch.tensor(tensor_list) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: only one element tensors can be converted to Python scalars
准确地说,torch.tensor()
不能把包含tensor的list转成tensor,纯list就可以转tensor,不信看下面代码,我也不知道是为什么。
>>> t1 = [0., 1.] >>> t2 = [2., 3.] >>> tensor_list = [t1, t2] >>> torch.tensor(tensor_list) tensor([[0., 1.], [2., 3.]])
解决办法
torch.stack()
>>> t1 = torch.tensor([0., 1.]) >>> t2 = torch.tensor([2., 3.]) >>> tensor_list = [t1, t2] >>> torch.stack(tensor_list) tensor([[0., 1.], [2., 3.]])
同类错误
如果list里面的tensor是int类型的,用torch.as_tensor()
和torch.tensor()
转tensor会报以下错误,同样用torch.stack()
可以解决。
TypeError: only integer tensors of a single element can be converted to an index
这篇关于ValueError:only one element tensors can be converted to Python scalars的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础
- 2024-09-2610 种方法写出更好的 Python 代码
- 2024-09-25Python编程基础详解
- 2024-09-25Python编程入门教程
- 2024-09-25从零开始使用Python构建LLaMA 3
- 2024-09-23Python中理解和使用树形结构的简单教程
- 2024-09-23Python 编程基础入门
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战