Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách thực hiện cộng từng phần tử (element-wise) trên tensor trong PyTorch

Ta dùng torch.add() để thực hiện phép cộng từng phần tử trên tensor trong PyTorch. Nó cộng các phần tử tương ứng của các tensor. Có thể cộng vô hướng hoặc tensor vào tensor khác. Các tensor cùng hoặc khác số chiều đều được. Số chiều của tensor kết quả bằng số chiều của tensor có số chiều lớn hơn.

Các bước thực hiện

  • Nhập thư viện torch (đã cài đặt).

  • Định nghĩa tensor và in ra. Nếu cộng vô hướng, định nghĩa giá trị đó.

  • Cộng tensor bằng torch.add(), gán kết quả cho biến mới. Phép cộng không thay đổi tensor gốc.

  • In tensor kết quả.

Ví dụ 1: Cộng vô hướng vào tensor

Chương trình sau cộng một vô hướng vào tensor theo ba cách.

# Chương trình thực hiện cộng từng phần tử
import torch

# Tạo tensor
t = torch.Tensor([1, 2, 3, 2])
print("Tensor gốc t:\n", t)

# Cộng vô hướng
v = torch.add(t, 10)
print("Kết quả cộng từng phần tử:\n", v)

# Cách 2: tensor chứa giá trị 10
t1 = torch.Tensor([10])
w = torch.add(t, t1)
print("Kết quả cộng từng phần tử:\n", w)

# Cách 3: tensor cùng kích thước toàn giá trị 10
t2 = torch.Tensor([10, 10, 10, 10])
x = torch.add(t, t2)
print("Kết quả cộng từng phần tử:\n", x)

Kết quả

Original Tensor t: tensor([1., 2., 3., 2.])
Element-wise addition result: tensor([11., 12., 13., 12.])
Element-wise addition result: tensor([11., 12., 13., 12.])
Element-wise addition result: tensor([11., 12., 13., 12.])

Ví dụ 2: Cộng tensor 1D và 2D

import torch

# Tạo tensor 2D
T1 = torch.Tensor([[1, 2], [4, 5]])
# Tạo tensor 1D
T2 = torch.Tensor([10])  # hoặc T2 = torch.Tensor([10, 10])

print("T1:\n", T1)
print("T2:\n", T2)

# Cộng tensor 1D vào tensor 2D
v = torch.add(T1, T2)
print("Kết quả cộng từng phần tử:\n", v)

Kết quả

T1: tensor([[1., 2.], [4., 5.]])
T2: tensor([10.])
Element-wise addition result: tensor([[11., 12.], [14., 15.]])

Ví dụ 3: Cộng hai tensor 2D

import torch

# Tạo hai tensor 2D
T1 = torch.Tensor([[1, 2], [3, 4]])
T2 = torch.Tensor([[0, 3], [4, 1]])

print("T1:\n", T1)
print("T2:\n", T2)

# Cộng hai tensor 2D
v = torch.add(T1, T2)
print("Kết quả cộng từng phần tử:\n", v)

Kết quả

T1: tensor([[1., 2.], [3., 4.]])
T2: tensor([[0., 3.], [4., 1.]])
Element-wise addition result: tensor([[1., 5.], [7., 5.]])