如何将NumPy ndarray转换为PyTorch Tensor,以及反之
PyTorch tensor类似于 numpy.ndarray . 这两者之间的区别在于tensor使用GPU加速数字计算。我们使用函数 torch.from_numpy() 将 numpy.ndarray 转换为PyTorch tensor。而要将tensor转换为 numpy.ndarray ,可以使用 .numpy() 方法。
步骤
- 导入所需的库。在这里,所需的库是torch和 numpy 。
-
创建一个 numpy.ndarray 或PyTorch tensor。
-
使用 torch.from_numpy() 函数将 numpy.ndarray 转换为PyTorch tensor,或者使用 .numpy() 方法将PyTorch tensor转换为 numpy.ndarray 。
-
最后,打印转换后的tensor或 numpy.ndarray 。
示例1
以下Python程序将一个 numpy.ndarray 转换为PyTorch tensor。
# import the libraries
import torch
import numpy as np
# Create a numpy.ndarray "a"
a = np.array([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("a:\n", a)
print("Type of a :\n", type(a))
# Convert the numpy.ndarray to tensor
t = torch.from_numpy(a)
print("t:\n", t)
print("Type after conversion:\n", type(t))
输出
当您运行上述代码时,将产生以下输出
a:
[[1 2 3]
[2 1 3]
[2 3 5]
[5 6 4]]
Type of a :
<class 'numpy.ndarray'>
t:
tensor([[1, 2, 3],
[2, 1, 3],
[2, 3, 5],
[5, 6, 4]], dtype=torch.int32)
Type after conversion:
<class 'torch.Tensor'>
示例2
以下Python程序将一个PyTorch张量转换为一个 numpy.ndarray 。
# import the libraries
import torch
import numpy
# Create a tensor "t"
t = torch.Tensor([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("t:\n", t)
print("Type of t :\n", type(t))
# Convert the tensor to numpy.ndarray
a = t.numpy()
print("a:\n", a)
print("Type after conversion:\n", type(a))
输出
当您运行以上代码时,它将产生以下输出
t:
tensor([[1., 2., 3.],
[2., 1., 3.],
[2., 3., 5.],
[5., 6., 4.]])
Type of t :
<class 'torch.Tensor'>
a:
[[1. 2. 3.]
[2. 1. 3.]
[2. 3. 5.]
[5. 6. 4.]]
Type after conversion:
<class 'numpy.ndarray'>