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

Làm thế nào để thực hiện phép chia theo phần tử trên các tenxơ trong PyTorch?

Để thực hiện phép chia theo phần tử trên hai tenxơ trong PyTorch, chúng ta có thể sử dụng torch.div () phương pháp. Nó chia mỗi phần tử của tensor đầu vào đầu tiên cho phần tử tương ứng của tensor thứ hai. Chúng ta cũng có thể chia một tensor cho một vô hướng. Một tenxơ có thể được chia cho một tenxơ có cùng chiều hoặc khác chiều. Kích thước của tensor cuối cùng sẽ giống với kích thước của tensor có chiều cao hơn. Nếu chúng ta chia tensor 1D cho tensor 2D, thì tensor cuối cùng sẽ là tensor 2D.

Các bước

  • Nhập thư viện được yêu cầu. Trong tất cả các ví dụ Python sau, thư viện Python bắt buộc là torch . Đảm bảo rằng bạn đã cài đặt nó.

  • Xác định hai hoặc nhiều bộ căng PyTorch và in chúng. Nếu bạn muốn chia nhỏ một tenxơ theo một đại lượng, hãy xác định một đại lượng vô hướng.

  • Chia một tensor cho một tensor khác hoặc vô hướng bằng cách sử dụng torch.div () và gán giá trị cho một biến mới. Việc phân chia các căng bằng cách sử dụng phương pháp này không tạo ra bất kỳ thay đổi nào trong các căng ban đầu.

  • In căng cuối cùng.

Ví dụ 1

# Python program to perform element-wise division
# import the required library
import torch

# Create a tensor
t = torch.Tensor([2, 3, 5, 9])
print("Original Tensor t:\n", t)

# Divide a tensor by a scalar 4
v = torch.div(t, 4)
print("Element-wise division result:\n", v)

# Same result can also be obtained as below
t1 = torch.Tensor([4])
w = torch.div(t, t1)
print("Element-wise division result:\n", w)

# other way to do above operation
t2 = torch.Tensor([4,4,4,4])
x = torch.div(t, t2)
print("Element-wise division result:\n", x)

Đầu ra

Original Tensor t:
   tensor([2., 3., 5., 9.])
Element-wise division result:
   tensor([0.5000, 0.7500, 1.2500, 2.2500])
Element-wise division result:
   tensor([0.5000, 0.7500, 1.2500, 2.2500])
Element-wise division result:
   tensor([0.5000, 0.7500, 1.2500, 2.2500])

Ví dụ 2

Chương trình Python sau đây chỉ ra cách chia một tensor 2D cho 1Dtensor.

# import the required library
import torch

# Create a 2D tensor
T1 = torch.Tensor([[3,2],[7,5]])

# Create a 1-D tensor
T2 = torch.Tensor([10, 8])
print("T1:\n", T1)
print("T2:\n", T2)

# Divide 2-D tensor by 1-D tensor
v = torch.div(T1, T2)
print("Element-wise division result:\n", v)

Đầu ra

T1:
tensor([[3., 2.],
         [7., 5.]])
T2:
tensor([10., 8.])
Element-wise division result:
tensor([[0.3000, 0.2500],
         [0.7000, 0.6250]])

Ví dụ 3

Chương trình Python sau đây chỉ ra cách chia một tensor 1D cho một 2Dtensor.

# Python program to dive a 1D tensor by a 2D tensor
# import the required library
import torch

# Create a 2D tensor
T1 = torch.Tensor([[8,7],[4,5]])

# Create a 1-D tensor
T2 = torch.Tensor([10, 5])
print("T1:\n", T1)
print("T2:\n", T2)

# Divide 1-D tensor by 2-D tensor
v = torch.div(T2, T1)
print("Division 1D tensor by 2D tensor result:\n", v)

Đầu ra

T1:
tensor([[8., 7.],
         [4., 5.]])
T2:
tensor([10., 5.])
Division 1D tensor by 2D tensor result:
tensor([[1.2500, 0.7143],
         [2.5000, 1.0000]])

Bạn có thể nhận thấy tensor cuối cùng là tensor 2D.

Ví dụ 4

Chương trình Python sau đây cho thấy cách chia một tensor 2D cho một 2Dtensor.

# import necessary library
import torch

# Create two 2-D tensors
T1 = torch.Tensor([[8,7],[3,4]])
T2 = torch.Tensor([[0,3],[4,9]])

# Print the above tensors
print("T1:\n", T1)
print("T2:\n", T2)

# Divide T1 by T2
v = torch.div(T1,T2)
print("Element-wise division result:\n", v)

Đầu ra

T1:
tensor([[8., 7.],
         [3., 4.]])
T2:
tensor([[0., 3.],
         [4., 9.]])
Element-wise division result:
tensor([[ inf, 2.3333],
         [0.7500, 0.4444]])