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

วิธีคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของ Tensor ใน PyTorch

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