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

Làm thế nào để thực hiện phép nhân khôn ngoan nguyên tố trên tenxơ trong PyTorch?

torch.mul () phương pháp được sử dụng để thực hiện phép nhân khôn ngoan nguyên tố trên tenxơ trong PyTorch. Nó nhân các phần tử tương ứng của các tenxơ. Chúng ta có thể nhân hai hoặc nhiều tenxơ. Chúng ta cũng có thể nhân vô hướng và tensor. Các độ căng có kích thước giống nhau hoặc khác nhau cũng có thể được nhân lên. 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. Phép nhân khôn ngoan phần tử trên các tenxơ còn được gọi là tích Hadamard.

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 đa số một đại lượng vô hướng, hãy xác định nó.

  • Nhân hai hoặc nhiều tensor bằng cách sử dụng torch.mul () và gán giá trị cho một biến mới. Bạn cũng có thể nhân một đại lượng vô hướng và một tensor. Nhân 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

Chương trình sau đây cho thấy cách nhân một vô hướng với một tensor. Kết quả tương tự cũng có thể nhận được bằng cách sử dụng tensor thay vì vô hướng.

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

# Create a tensor
t = torch.Tensor([2.05, 2.03, 3.8, 2.29])
print("Original Tensor t:\n", t)

# Multiply a scalar value to a tensor
v = torch.mul(t, 7)
print("Element-wise multiplication result:\n", v)

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

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

Đầu ra

Original Tensor t:
   tensor([2.0500, 2.0300, 3.8000, 2.2900])
Element-wise multiplication result:
   tensor([14.3500, 14.2100, 26.6000, 16.0300])
Element-wise multiplication result:
   tensor([14.3500, 14.2100, 26.6000, 16.0300])
Element-wise multiplication result:
   tensor([14.3500, 14.2100, 26.6000, 16.0300])

Ví dụ 2

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

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)

# Multiply 1-D tensor with 2-D tensor
v = torch.mul(T1, T2) # v = torch.mul(T2,T1)
print("Element-wise multiplication result:\n", v)

Đầu ra

T1:
tensor([[3., 2.],
         [7., 5.]])
T2:
tensor([10., 8.])
Element-wise multiplication result:
tensor([[30., 16.],
         [70., 40.]])

Ví dụ 3

Chương trình Python sau đây chỉ ra cách nhân hai tensor 2D.

import torch

# create two 2-D tensors
T1 = torch.Tensor([[8,7],[3,4]])
T2 = torch.Tensor([[0,3],[4,9]])
print("T1:\n", T1)
print("T2:\n", T2)

# Multiply above two 2-D tensors
v = torch.mul(T1,T2)
print("Element-wise subtraction result:\n", v)

Đầu ra

T1:
tensor([[8., 7.],
         [3., 4.]])
T2:
tensor([[0., 3.],
         [4., 9.]])
Element-wise subtraction result:
tensor([[ 0., 21.],
         [12., 36.]])