方法
torch.as_tensor() 和 torch.from_numpy()
在Pytorch使用过程中不可避免的要用Numpy中的数据结构去处理数据,但是在用cuda进行计算时变量必须转成tensor型。所以tensor和numpy数据类型之间的转换就显得尤为重要了。下面上代码大家一看就懂:
# tensor转成numpy类型
a=torch.ones(5)
b=a.numpy()
print(b)
# numpy转成tensor类型
a=np.ones(5)
b=torch.from_numpy(a)
print(b)
当然这上面的例子仅是简单的应用,如果数据是cup中的还需.cpu()等。除此之外,还涉及到tensor中转换变量是否共享的问题,这就跟python变量的copy一样了,用的不好程序不会报错,但是逻辑会有问题。等我慢慢在这上面加吧。
参考文献
[1]pytorch中numpy与tensor的相互转换
[2]Pytorch之Tensor和Numpy之间的转换
[3]pytorch中tensor张量数据类型的转化方式
[4][报错]RuntimeError: expected scalar type Double but found Float(torch)
[5]Pytorch中的 torch.as_tensor() 和 torch.from_numpy() 的区别
本文介绍了在PyTorch中如何将Tensor转换为Numpy数组,以及反过来将Numpy转换为Tensor。重点讨论了CUDA计算时的数据类型转换,并提到了在转换过程中可能出现的共享内存问题。此外,还提及了在处理CUDA数据时需要使用`.cpu()`等方法。文章以简单代码示例说明,适合初学者理解。
579





