ในการดำเนินการหารแบบองค์ประกอบต่อองค์ประกอบบน tensor สองอันใน PyTorch เราสามารถใช้เมธอด torch.div() มันหารแต่ละองค์ประกอบของ tensor อินพุตแรกด้วยองค์ประกอบที่ตรงกันของ tensor ที่สอง เราสามารถหาร tensor ด้วยสเกลาร์ได้เช่นกัน Tensor สามารถหารด้วย tensor ที่มีมิติเท่าหรือต่างกันได้ มิติของ tensor สุดท้ายจะเท่ากับมิติของ tensor มิติสูงกว่า หากเราหาร 1D tensor ด้วย 2D tensor tensor สุดท้ายจะเป็น 2D tensor
ขั้นตอน
นำเข้าไลบรารีที่จำเป็น ในตัวอย่าง Python ทั้งหมดต่อไปนี้ ไลบรารี Python ที่จำเป็นคือ torch ตรวจสอบให้แน่ใจว่าคุณติดตั้งแล้ว
กำหนด PyTorch tensor สองอันหรือมากกว่าและพิมพ์มัน หากคุณต้องการหาร tensor ด้วยสเกลาร์ ให้กำหนดสเกลาร์
หาร tensor ด้วย tensor อื่นหรือสเกลาร์โดยใช้ torch.div() และกำหนดค่าให้ตัวแปรใหม่ การหาร tensor ด้วยเมธอดนี้ไม่ทำให้เกิดการเปลี่ยนแปลงใน tensor ต้นฉบับ
พิมพ์ tensor สุดท้าย
ตัวอย่างที่ 1
# โปรแกรม Python ดำเนินการหารแบบองค์ประกอบต่อองค์ประกอบ
# นำเข้าไลบรารีที่จำเป็น
import torch
# สร้าง tensor
t = torch.Tensor([2, 3, 5, 9])
print("Original Tensor t:\n", t)
# หาร tensor ด้วยสเกลาร์ 4
v = torch.div(t, 4)
print("Element-wise division result:\n", v)
# ผลลัพธ์เดียวกันสามารถได้จากด้านล่าง
t1 = torch.Tensor([4])
w = torch.div(t, t1)
print("Element-wise division result:\n", w)
# อีกวิธีทำการดำเนินการข้างต้น
t2 = torch.Tensor([4, 4, 4, 4])
x = torch.div(t, t2)
print("Element-wise division result:\n", x)
ผลลัพธ์
Original Tensor t: tensor([2., 3., 5., 9.]) Element-wise division result: tensor([0.5000, 0.7500, 1.2500, 2.2500]) Element-wise division result: tensor([0.5000, 0.7500, 1.2500, 2.2500]) Element-wise division result: tensor([0.5000, 0.7500, 1.2500, 2.2500])
ตัวอย่างที่ 2
โปรแกรม Python ต่อไปนี้แสดงวิธีหาร 2D tensor ด้วย 1D tensor
# นำเข้าไลบรารีที่จำเป็น
import torch
# สร้าง 2D tensor
T1 = torch.Tensor([[3, 2], [7, 5]])
# สร้าง 1-D tensor
T2 = torch.Tensor([10, 8])
print("T1:\n", T1)
print("T2:\n", T2)
# หาร 2-D tensor ด้วย 1-D tensor
v = torch.div(T1, T2)
print("Element-wise division result:\n", v)
ผลลัพธ์
T1:
tensor([[3., 2.],
[7., 5.]])
T2:
tensor([10., 8.])
Element-wise division result:
tensor([[0.3000, 0.2500],
[0.7000, 0.6250]])
ตัวอย่างที่ 3
โปรแกรม Python ต่อไปนี้แสดงวิธีหาร 1D tensor ด้วย 2D tensor
# โปรแกรม Python หาร 1D tensor ด้วย 2D tensor
# นำเข้าไลบรารีที่จำเป็น
import torch
# สร้าง 2D tensor
T1 = torch.Tensor([[8, 7], [4, 5]])
# สร้าง 1-D tensor
T2 = torch.Tensor([10, 5])
print("T1:\n", T1)
print("T2:\n", T2)
# หาร 1-D tensor ด้วย 2-D tensor
v = torch.div(T2, T1)
print("Division 1D tensor by 2D tensor result:\n", v)
ผลลัพธ์
T1:
tensor([[8., 7.],
[4., 5.]])
T2:
tensor([10., 5.])
Division 1D tensor by 2D tensor result:
tensor([[1.2500, 0.7143],
[2.5000, 1.0000]])
คุณสามารถสังเกตได้ว่า tensor สุดท้ายเป็น 2D tensor
ตัวอย่างที่ 4
โปรแกรม Python ต่อไปนี้แสดงวิธีหาร 2D tensor ด้วย 2D tensor
# นำเข้าไลบรารีที่จำเป็น
import torch
# สร้าง 2-D tensor สองอัน
T1 = torch.Tensor([[8, 7], [3, 4]])
T2 = torch.Tensor([[0, 3], [4, 9]])
# พิมพ์ tensor ข้างต้น
print("T1:\n", T1)
print("T2:\n", T2)
# หาร T1 ด้วย T2
v = torch.div(T1, T2)
print("Element-wise division result:\n", v)
ผลลัพธ์
T1:
tensor([[8., 7.],
[3., 4.]])
T2:
tensor([[0., 3.],
[4., 9.]])
Element-wise division result:
tensor([[inf, 2.3333],
[0.7500, 0.4444]])