pytorch np.ndarray转tensor失败


报错信息:TypeError: can't convert np.ndarray of type numpy.int32. The only supported types are: float64, float32, float16, int64, int32, int16, int8, uint8, and bool.

众所周知,在torch中,与numpy数组互相转换的API是torch.from_numpy() 或者.numpy()

但有时候,二者直接转换会遇到报错(下图第87行)

 

解决方法很简单,想到很难。 既先转为list,然后在转tensor:


labels = list(labels)

myLabel = torch.LongTensor(labels)

myLabel

Out[98]: tensor([0, 0, 0,  ..., 7, 7, 7])

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用PyTorch中的torch.from_numpy()函数将numpy.ndarray换为tensor。例如: import numpy as np import torch # 创建一个numpy数组 arr = np.array([[1, 2], [3, 4]]) # 将numpy数组换为tensor tensor = torch.from_numpy(arr) print(tensor) 输出结果为: tensor([[1, 2], [3, 4]], dtype=torch.int32) ### 回答2: PyTorch在深度学习领域中表现出色,它提供了许多操作工具来处理张量,这些工具便于用户在模型中进行矩阵处理。 对于numpy.ndarray变量,可以将其换为PyTorch中的tensor类型。将numpy.ndarray换为tensor是一个简单而方便的过程,可以通过一行代码轻松完成。 下面是将numpy.ndarray变量换为tensor的方法: ```Python import torch #创建一个numpy.ndarray np_array = np.array([[1,2,3],[4,5,6]]) #将numpy.ndarray换为tensor tensor_array = torch.from_numpy(np_array) print("numpy.ndarray变量为:\n", np_array) print("tensor变量为:\n", tensor_array) ``` 这里需要导入PyTorch库,并使用`torch.from_numpy`函数将numpy数据类型换为torch.Tensor类型。从数据输出来看,这个换是正确的。 这个换可以用于将numpy中读取的任意张量换为PyTorch中的张量,以便在深度神经网络中进行使用。 总之,numpy.ndarray换为tensor是一个简单且非常有用的过程,对于深度学习实践者来说,掌握这种换方法是非常重要的。 大多数现代深度学习框架(包括PyTorch)都可以通过这种方式与numpy数据进行通信,因此,使用PyTorch深度学习框架时,numpy.ndarray换为tensor将成为日常工作的众多任务之一。 ### 回答3: PyTorch是一个流行的深度学习框架,它基于Torch实现,并提供了许多更高级的API来简化神经网络的搭建和训练。PyTorch中的tensor是非常重要的概念,其对于神经网络计算非常关键。 如果在PyTorch中已经使用了一些numpy数组,并且想要将它们换为张量,可以使用`torch.from_numpy()`方法很方便地完成。具体来说,可以将numpy array换为张量,然后可以使用仅适用于张量的其他方法。 需要注意的是,在将numpy数组换为张量时,张量和数组共享相同的内存位置。如果更改张量或数组中的一个对象,则也会更改另一个对象。 以下是将numpy数组换为张量的示例代码: ``` import numpy as np import torch # 创建一个numpy数组 numpy_array = np.array([1, 2, 3]) print('numpy_array:', numpy_array) # 将numpy数组换为张量 tensor = torch.from_numpy(numpy_array) print('tensor:', tensor) ``` 输出如下: ``` numpy_array: [1 2 3] tensor: tensor([1, 2, 3]) ``` 在这个例子中,`numpy_array`换为PyTorch的张量`tensor`。我们可以看到,它们之间共享相同的数值。 另外,张量除了可以从numpy数组换而来,还有很多其他的方法,例如从Python字面量、从列表、从元组、从其他张量和从CSV文件等等也可以将数据换为张量。通常来说,不同数据类型之间的换都非常流畅,并不需要使用一些特殊的技术和思路,而只需要利用PyTorch提供的API即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值