📅  最后修改于: 2023-12-03 14:46:03.321000             🧑  作者: Mango
PyTorch是一个开源的Python机器学习库,它提供了一种灵活的深度学习框架。torch.from_numpy()
函数是PyTorch中的一个函数,它可以将NumPy数组转换为PyTorch的张量格式。这个函数通常用于PyTorch中和NumPy交互的场景中。
下面是torch.from_numpy()
的使用方法:
import torch
import numpy as np
a = np.array([1, 2, 3])
t = torch.from_numpy(a)
print(a)
print(t)
输出结果如下:
[1 2 3]
tensor([1, 2, 3])
从结果中可以看到,torch.from_numpy()
函数将NumPy数组转换成了PyTorch的张量格式。
使用torch.from_numpy()
函数时,需要注意以下几点:
numpy()
函数。例如:a = t.numpy()
下面是一个示例程序,演示了在PyTorch和NumPy之间进行转换。
import torch
import numpy as np
# 生成NumPy数组
a = np.array([[1, 2, 3], [4, 5, 6]])
# 将数组转换成张量
t = torch.from_numpy(a)
# 张量形状
print(t.shape)
# 修改张量中的值
t[0][1] = -1
# 查看张量和数组的值
print(a)
print(t)
# 将张量转换成数组
a2 = t.numpy()
# 修改数组中的值
a2[1][2] = -2
# 查看张量和数组的值
print(a)
print(t)
print(a2)
输出结果如下:
(2, 3)
[[ 1 -1 3]
[ 4 5 6]]
tensor([[ 1, -1, 3],
[ 4, 5, 6]], dtype=torch.int32)
[[ 1 -1 3]
[ 4 5 6]]
tensor([[ 1, -1, 3],
[ 4, 5, -2]], dtype=torch.int32)
[[ 1 -1 3]
[ 4 5 -2]]
从结果中可以看到,torch.from_numpy()
函数将NumPy数组转换成了PyTorch张量格式,并且它们之间共享内存。可以通过直接修改张量中的值或者先将张量转换成数组再修改,从而改变共享内存中的值。