ในการ 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])