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

วิธี Squeeze และ Unsqueeze Tensor ใน PyTorch

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

ในการ unsqueeze tensor เราใช้เมธอด torch.unsqueeze() มันคืนค่ามิติ tensor ใหม่ขนาด 1 ที่แทรกที่ตำแหน่งเฉพาะ

ขั้นตอน

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

  • สร้าง tensor และพิมพ์มัน

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

  • คำนวณ torch.unsqueeze(input, dim) มันแทรกมิติใหม่ขนาด 1 ที่ dim ที่กำหนดและคืนค่า tensor

  • พิมพ์ tensor ที่ squeeze และ/หรือ unsqueeze

ตัวอย่างที่ 1

# โปรแกรม Python squeeze และ unsqueeze tensor
# นำเข้าไลบรารีที่จำเป็น
import torch

# สร้าง tensor ทั้งหมดเป็น 1
T = torch.ones(2, 1, 2)  # ขนาด 2x1x2
print("Original Tensor T:\n", T)
print("Size of T:", T.size())

# Squeeze มิติของ tensor
squeezed_T = torch.squeeze(T)  # ตอนนี้ขนาด 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 squeeze และ unsqueeze tensor
# นำเข้าไลบรารีที่จำเป็น
import torch

# สร้าง tensor
T = torch.Tensor([1, 2, 3])  # ขนาด 3
print("Original Tensor T:\n", T)
print("Size of T:", T.size())

# Squeeze tensor ในมิติ 0 หรือคอลัมน์ dim
unsqueezed_T = torch.unsqueeze(T, dim=0)  # ตอนนี้ขนาด 1x3
print("Unsqueezed T\n:", unsqueezed_T)
print("Size of UnSqueezed T:", unsqueezed_T.size())

# Squeeze tensor ในมิติ 1 หรือแถว dim
unsqueezed_T = torch.unsqueeze(T, dim=1)  # ตอนนี้ขนาด 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])