将Pytorch张量转换为Numpy数组,只需要使用.numpy()
方法即可。
具体步骤如下:
- 导入所需的包
import torch
import numpy as np
- 创建一个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]])
- 将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)
- 如果需要修改Numpy数组的值,就可以对其进行操作
y[0][0] = 100
- 之后再次查看原Pytorch张量,发现其值也被修改了
print(x)
输出:
tensor([[100.0000, 0.9253, -0.3291],
[ 0.3683, 1.0456, -0.3503],
[ 0.5832, -1.4896, 0.4121]])
另外一个示例:
- 创建一个Numpy数组
a = np.array([[1, 2], [3, 4]])
- 将其转换为Pytorch张量
b = torch.from_numpy(a)
print(b)
输出:
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
- 修改原Numpy数组的值
a[0][0] = 100
- 如果再次查看Pytorch张量的值,发现其值也被修改了
print(b)
输出:
tensor([[100, 2],
[ 3, 4]], dtype=torch.int32)