如何将Pytorch张量转换为Numpy数组

  • Post category:Python

将Pytorch张量转换为Numpy数组,只需要使用.numpy()方法即可。

具体步骤如下:

  1. 导入所需的包
import torch
import numpy as np
  1. 创建一个Pytorch张量
x = torch.randn(3, 3)
print(x)

输出:

tensor([[-0.9649,  0.9253, -0.3291],
        [ 0.3683,  1.0456, -0.3503],
        [ 0.5832, -1.4896,  0.4121]])
  1. 将Pytorch张量转换为Numpy数组
y = x.numpy()
print(y)

输出:

array([[-0.9649125 ,  0.9253375 , -0.32914215],
       [ 0.36829275,  1.0456101 , -0.3502716 ],
       [ 0.58321786, -1.4895526 ,  0.41207305]], dtype=float32)
  1. 如果需要修改Numpy数组的值,就可以对其进行操作
y[0][0] = 100
  1. 之后再次查看原Pytorch张量,发现其值也被修改了
print(x)

输出:

tensor([[100.0000,   0.9253,  -0.3291],
        [  0.3683,   1.0456,  -0.3503],
        [  0.5832,  -1.4896,   0.4121]])

另外一个示例:

  1. 创建一个Numpy数组
a = np.array([[1, 2], [3, 4]])
  1. 将其转换为Pytorch张量
b = torch.from_numpy(a)
print(b)

输出:

tensor([[1, 2],
        [3, 4]], dtype=torch.int32)
  1. 修改原Numpy数组的值
a[0][0] = 100
  1. 如果再次查看Pytorch张量的值,发现其值也被修改了
print(b)

输出:

tensor([[100,   2],
        [  3,   4]], dtype=torch.int32)