Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะบีบและคลายเทนเซอร์ใน PyTorch ได้อย่างไร?


ในการบีบเทนเซอร์ เราใช้ torch.squeeze() กระบวนการ. มันคืนค่าเทนเซอร์ใหม่พร้อมมิติทั้งหมดของเทนเซอร์อินพุต แต่ลบขนาด 1 ตัวอย่างเช่น หากรูปร่างของเทนเซอร์อินพุตคือ (M ☓ 1 ☓ N ☓ 1 ☓ P) เทนเซอร์ที่บีบจะมีรูปร่าง ( เอ็ม ☓ เอ็ม ☓ พี).

ในการคลายเทนเซอร์ เราใช้ torch.unsqueeze() กระบวนการ. ส่งคืนมิติเทนเซอร์ขนาด 1 ใหม่ที่ตำแหน่งเฉพาะ

ขั้นตอน

  • นำเข้าไลบรารีที่จำเป็น ในตัวอย่าง Python ทั้งหมดต่อไปนี้ ไลบรารี Python ที่จำเป็นคือ ไฟฉาย . ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งแล้ว

  • สร้างเทนเซอร์แล้วพิมพ์ออกมา

  • คำนวณ torch.squeeze(อินพุต) . มันบีบ (ลบ) ขนาด 1 และส่งคืนเทนเซอร์พร้อมมิติอื่น ๆ ทั้งหมดของ อินพุต เทนเซอร์

  • คำนวณ torch.unsqueeze(อินพุต, สลัว) . มันแทรกมิติใหม่ของขนาด 1 ที่สลัวที่กำหนดและส่งกลับเทนเซอร์

  • พิมพ์เทนเซอร์แบบบีบและ/หรือแบบไม่บีบ

ตัวอย่างที่ 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())

ผลลัพธ์

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])

ตัวอย่างที่ 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())

ผลลัพธ์

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])