PyTorch tensor คล้ายกับ numpy array ความแตกต่างคือ tensor ใช้ GPU เพื่อเร่งการคำนวณตัวเลข mean ของ tensor คำนวณโดยใช้เมธอด torch.mean() มันคืนค่าค่าเฉลี่ยขององค์ประกอบทั้งหมดใน tensor อินพุต เราสามารถคำนวณค่าเฉลี่ยแบบแถวและคอลัมน์ได้ด้วยการให้ axis หรือ dim ที่เหมาะสม
ค่าเบี่ยงเบนมาตรฐานของ tensor คำนวณโดยใช้ torch.std() มันคืนค่าค่าเบี่ยงเบนมาตรฐานขององค์ประกอบทั้งหมดใน tensor เหมือน mean เราสามารถคำนวณ standard deviation แบบแถวหรือคอลัมน์ได้เช่นกัน
ขั้นตอน
นำเข้าไลบรารีที่จำเป็น ในตัวอย่าง Python ทั้งหมดต่อไปนี้ ไลบรารี Python ที่จำเป็นคือ torch ตรวจสอบให้แน่ใจว่าคุณติดตั้งแล้ว
กำหนด PyTorch tensor และพิมพ์มัน
คำนวณค่าเฉลี่ยโดยใช้ torch.mean(input, axis) ที่นี่ input คือ tensor ที่ควรคำนวณค่าเฉลี่ย และ axis (หรือ dim) คือรายการมิติ กำหนดค่าเฉลี่ยที่คำนวณได้ให้ตัวแปรใหม่
คำนวณค่าเบี่ยงเบนมาตรฐานโดยใช้ torch.std(input, axis) ที่นี่ input คือ tensor และ axis (หรือ dim) คือรายการมิติ กำหนดค่าเบี่ยงเบนมาตรฐานที่คำนวณได้ให้ตัวแปรใหม่
พิมพ์ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานที่คำนวณได้ข้างต้น
ตัวอย่างที่ 1
โปรแกรม Python ต่อไปนี้แสดงวิธีคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของ 1D tensor
# โปรแกรม Python คำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของ 1D tensor
# นำเข้าไลบรารี
import torch
# สร้าง tensor
T = torch.Tensor([2.453, 4.432, 0.754, -6.554])
print("T:", T)
# คำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐาน
mean = torch.mean(T)
std = torch.std(T)
# พิมพ์ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานที่คำนวณได้
print("Mean:", mean)
print("Standard deviation:", std)
ผลลัพธ์
T: tensor([ 2.4530, 4.4320, 0.7540, -6.5540]) Mean: tensor(0.2713) Standard deviation: tensor(4.7920)
ตัวอย่างที่ 2
โปรแกรม Python ต่อไปนี้แสดงวิธีคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของ 2D tensor ในทั้งสองมิติ คือ แบบแถวและแบบคอลัมน์
# นำเข้าไลบรารีที่จำเป็น
import torch
# สร้าง 2D tensor 3x4
T = torch.Tensor([[2, 4, 7, -6],
[7, 33, -62, 23],
[2, -6, -77, 54]])
print("T:\n", T)
# คำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐาน
mean = torch.mean(T)
std = torch.std(T)
print("Mean:", mean)
print("Standard deviation:", std)
# คำนวณค่าเฉลี่ยและ std แบบคอลัมน์
mean = torch.mean(T, axis=0)
std = torch.std(T, axis=0)
print("Column-wise Mean:\n", mean)
print("Column-wise Standard deviation:\n", std)
# คำนวณค่าเฉลี่ยและ std แบบแถว
mean = torch.mean(T, axis=1)
std = torch.std(T, axis=1)
print("Row-wise Mean:\n", mean)
print("Row-wise Standard deviation:\n", std)
ผลลัพธ์
T:
tensor([[ 2., 4., 7., -6.],
[ 7., 33., -62., 23.],
[ 2., -6., -77., 54.]])
Mean: tensor(-1.5833)
Standard deviation: tensor(36.2703)
Column-wise Mean:
tensor([ 3.6667, 10.3333, -44.0000, 23.6667])
Column-wise Standard deviation:
tensor([ 2.8868, 20.2567, 44.7996, 30.0056])
Row-wise Mean:
tensor([ 1.7500, 0.2500, -6.7500])
Row-wise Standard deviation:
tensor([ 5.5603, 42.8593, 53.8602])