📜  Python PyTorch from_numpy()(1)

📅  最后修改于: 2023-12-03 14:46:03.321000             🧑  作者: Mango

Python PyTorch from_numpy()

介绍

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()函数时,需要注意以下几点:

  • PyTorch张量和NumPy数组之间共享内存,所以它们之间的操作会互相影响。
  • 如果想要将PyTorch张量转换为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张量格式,并且它们之间共享内存。可以通过直接修改张量中的值或者先将张量转换成数组再修改,从而改变共享内存中的值。