Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để chuyển đổi một ndarray NumPy thành một PyTorch Tensor và ngược lại?

Một tensor PyTorch giống như numpy.ndarray . Sự khác biệt giữa hai điều này là một tensor sử dụng GPU để tăng tốc tính toán số. Chúng tôi chuyển đổi một numpy.ndarray sang bộ căng PyTorch bằng cách sử dụng hàm torch.from_numpy () . Và một tensor được chuyển đổi thành numpy.ndarray bằng cách sử dụng .numpy () phương pháp.

Các bước

  • Nhập các thư viện cần thiết. Ở đây, các thư viện bắt buộc là đèn pin và numpy .

  • Tạo numpy.ndarray hoặc tensor PyTorch.

  • Chuyển đổi numpy.ndarray sang bộ căng PyTorch bằng cách sử dụng torch.from_numpy () chức năng hoặc chuyển đổi tensor PyTorch thành numpy.ndarray bằng cách sử dụng .numpy () phương pháp.

  • Cuối cùng, in tensor đã chuyển đổi hoặc numpy.ndarray .

Ví dụ 1

Chương trình Python sau chuyển đổi numpy.ndarray sang tensor PyTorch.

# import the libraries
import torch
import numpy as np

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

print("Type of a :\n", type(a))
# Convert the numpy.ndarray to tensor
t = torch.from_numpy(a)
print("t:\n", t)
print("Type after conversion:\n", type(t))

Đầu ra

Khi bạn chạy đoạn mã trên, nó sẽ tạo ra kết quả sau

a:
[[1 2 3]
[2 1 3]
[2 3 5]
[5 6 4]]
Type of a :
<class 'numpy.ndarray'>
t:
tensor([[1, 2, 3],
         [2, 1, 3],
         [2, 3, 5],
         [5, 6, 4]], dtype=torch.int32)
Type after conversion:
<class 'torch.Tensor'>

Ví dụ 2

Chương trình Python sau chuyển đổi tensor PyTorch thành numpy.ndarray .

# import the libraries
import torch
import numpy

# Create a tensor "t"
t = torch.Tensor([[1,2,3],[2,1,3],[2,3,5],[5,6,4]])
print("t:\n", t)
print("Type of t :\n", type(t))

# Convert the tensor to numpy.ndarray
a = t.numpy()
print("a:\n", a)
print("Type after conversion:\n", type(a))

Đầu ra

Khi bạn chạy đoạn mã trên, nó sẽ tạo ra kết quả sau

t:
tensor([[1., 2., 3.],
         [2., 1., 3.],
         [2., 3., 5.],
         [5., 6., 4.]])
Type of t :
<class 'torch.Tensor'>
a:
[[1. 2. 3.]
[2. 1. 3.]
[2. 3. 5.]
[5. 6. 4.]]
Type after conversion:
<class 'numpy.ndarray'>