如何将NumPy ndarray转换为PyTorch Tensor,反之亦然?

如何将NumPy ndarray转换为PyTorch Tensor,反之亦然?

PyTorch张量就像 numpy.ndarray , 两者之间的区别在于张量利用GPU加速数字计算。我们使用函数 torch.from_numpy()numpy.ndarray 转换为PyTorch张量。而张量则使用 .numpy() 方法将其转换为 numpy.ndarray

步骤

  • 导入所需库。这里需要导入torch和 numpy

  • 创建一个 numpy.ndarray 或PyTorch张量。

  • 使用 torch.from_numpy() 函数将 numpy.ndarray 转换为PyTorch张量或使用 .numpy() 方法将PyTorch张量转换为 numpy.ndarray

  • 最后,打印转换后的张量或 numpy.ndarray

示例1

以下Python程序将 numpy.ndarray 转换为PyTorch张量。

# 导入所需库
import torch
import numpy as np

# 创建一个numpy.ndarray "a"
a = np.array([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("a:\n", a)

print("a的类型:\n", type(a))
# 将numpy.ndarray转换为张量
t = torch.from_numpy(a)
print("t:\n", t)
print("转换后的类型:\n", type(t))

输出

运行上述代码时,将产生以下输出:

a:
[[1 2 3]
[2 1 3]
[2 3 5]
[5 6 4]]
a的类型:

t:
tensor([[1, 2, 3],
         [2, 1, 3],
         [2, 3, 5],
         [5, 6, 4]], dtype=torch.int32)
转换后的类型:

示例2

以下Python程序将PyTorch张量转换为 numpy.ndarray

# 导入所需库
import torch
import numpy

# 创建张量 "t"
t = torch.Tensor([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("t:\n", t)
print("t的类型:\n", type(t))

# 将张量转换为numpy.ndarray
a = t.numpy()
print("a:\n", a)
print("转换后的类型:\n", type(a))

输出

运行上述代码时,将产生以下输出:

t:
tensor([[1., 2., 3.],
         [2., 1., 3.],
         [2., 3., 5.],
         [5., 6., 4.]])
t的类型:

a:
[[1. 2. 3.]
[2. 1. 3.]
[2. 3. 5.]
[5. 6. 4.]]
转换后的类型:

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程