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

Làm thế nào để bóp và mở một tensor trong PyTorch?

Để ép một tensor, chúng tôi sử dụng torch.squeeze () phương pháp. Nó trả về một tensor mới với tất cả các kích thước của tensor đầu vào nhưng loại bỏ kích thước 1. Ví dụ:nếu hình dạng của tensor đầu vào là (M ☓ 1 ☓ N ☓ 1 ☓ P), thì tensor được ép sẽ có hình dạng ( M ☓ M ☓ P).

Để loại bỏ một tensor, chúng tôi sử dụng torch.unsqueeze () phương pháp. Nó trả về một kích thước tensor mới có kích thước 1 được chèn vào vị trí cụ thể.

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ó.

  • Tạo một tensor và in nó.

  • Tính toán torch.squeeze (đầu vào) . Nó ép (loại bỏ) kích thước 1 và trả về một tensor với tất cả các kích thước khác của đầu vào tensor.

  • Tính toán torch.unsqueeze (đầu vào, điều chỉnh độ sáng) . Nó chèn một thứ nguyên mới có kích thước 1 ở độ mờ nhất định và trả về tensor.

  • In bộ căng có ép và / hoặc không ép.

Ví dụ 1

# Python program to squeeze and unsqueeze a tensor
# import necessary library
import torch

# Create a tensor of all one
T = torch.ones(2,1,2) # size 2x1x2
print("Original Tensor T:\n", T )
print("Size of T:", T.size())

# Squeeze the dimension of the tensor
squeezed_T = torch.squeeze(T) # now size 2x2
print("Squeezed_T\n:", squeezed_T )
print("Size of Squeezed_T:", squeezed_T.size())

Đầu ra

Original Tensor T:
tensor([[[1., 1.]],
         [[1., 1.]]])
Size of T: torch.Size([2, 1, 2])
Squeezed_T
: tensor([[1., 1.],
         [1., 1.]])
Size of Squeezed_T: torch.Size([2, 2])

Ví dụ 2

# Python program to squeeze and unsqueeze a tensor
# import necessary library
import torch

# create a tensor
T = torch.Tensor([1,2,3]) # size 3
print("Original Tensor T:\n", T )
print("Size of T:", T.size())

# Squeeze the tensor in dimension o or column dim
unsqueezed_T = torch.unsqueeze(T, dim = 0) # now size 1x3
print("Unsqueezed T\n:", unsqueezed_T )
print("Size of UnSqueezed T:", unsqueezed_T.size())

# Squeeze the tensor in dimension 1 or row dim
unsqueezed_T = torch.unsqueeze(T, dim = 1) # now size 3x1
print("Unsqueezed T\n:", unsqueezed_T )
print("Size of Unsqueezed T:", unsqueezed_T.size())

Đầu ra

Original Tensor T:
   tensor([1., 2., 3.])
Size of T: torch.Size([3])
Unsqueezed T
: tensor([[1., 2., 3.]])
Size of UnSqueezed T: torch.Size([1, 3])
Unsqueezed T
: tensor([[1.],
         [2.],
         [3.]])
Size of Unsqueezed T: torch.Size([3, 1])