将list转为tensor时报错too many dimensions 'str'
时间: 2023-07-31 13:12:41 浏览: 318
将pytorch转成longtensor的简单方法
这个错误通常是由于列表中包含字符串而不是数字导致的。PyTorch的tensor只支持数字类型,因此如果列表中包含字符串,就会出现这个错误。
要解决这个问题,可以检查列表中是否包含字符串,并将其删除或转换为数字。例如,如果列表中包含字符串,可以使用以下代码将其删除:
```python
my_list = [1, 2, "3", 4, 5, "six"]
my_list = [x for x in my_list if isinstance(x, (int, float))]
my_tensor = torch.tensor(my_list)
```
这将创建一个新列表,其中只包含数字,并将其转换为tensor对象。如果您需要保留字符串,可以将其转换为数字,例如:
```python
my_list = [1, 2, "3", 4, 5, "six"]
my_list = [int(x) if isinstance(x, str) and x.isdigit() else x for x in my_list]
my_list = [x for x in my_list if isinstance(x, (int, float))]
my_tensor = torch.tensor(my_list)
```
这将将所有可以转换为数字的字符串转换为整数,并将它们与其他数字一起转换为tensor对象。
阅读全文