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

จะคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของเทนเซอร์ใน PyTorch ได้อย่างไร


เทนเซอร์ PyTorch เปรียบเสมือนอาร์เรย์จำนวนมาก ข้อแตกต่างเพียงอย่างเดียวคือเทนเซอร์ใช้ GPU เพื่อเร่งการคำนวณตัวเลข ค่าเฉลี่ย ของเทนเซอร์คำนวณโดยใช้ torch.mean() กระบวนการ. ส่งกลับค่ากลางขององค์ประกอบทั้งหมดในเทนเซอร์อินพุต เรายังคำนวณค่าเฉลี่ยแบบแถวและคอลัมน์ได้ โดยให้แกนหรือค่าสลัวที่เหมาะสม

ค่าเบี่ยงเบนมาตรฐานของเทนเซอร์คำนวณโดยใช้ torch.std() . ส่งกลับค่าเบี่ยงเบนมาตรฐานขององค์ประกอบทั้งหมดในเทนเซอร์ ชอบ ค่าเฉลี่ย นอกจากนี้เรายังสามารถคำนวณ ค่าเบี่ยงเบนมาตรฐาน , แบบแถวหรือแบบคอลัมน์

ขั้นตอน

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

  • กำหนดเทนเซอร์ PyTorch และพิมพ์ออกมา

  • คำนวณค่าเฉลี่ยโดยใช้ torch.mean(อินพุต, แกน) . ในที่นี้ อินพุตคือเทนเซอร์ที่ควรคำนวณค่าเฉลี่ยและแกน (หรือ สลัว ) คือรายการมิติข้อมูล กำหนดค่าเฉลี่ยที่คำนวณได้ให้กับตัวแปรใหม่

  • คำนวณค่าเบี่ยงเบนมาตรฐานโดยใช้ torch.std(input, axis) . ที่นี่ อินพุตคือ เทนเซอร์ และ แกน (หรือ ติ่มซำ ) คือรายการมิติข้อมูล กำหนดค่าเบี่ยงเบนมาตรฐานที่คำนวณแล้วให้กับตัวแปรใหม่

  • พิมพ์ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานที่คำนวณไว้ข้างต้น .

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

โปรแกรม Python ต่อไปนี้จะแสดงวิธีคำนวณค่าเฉลี่ยและความเบี่ยงเบนมาตรฐานของเมตริกซ์ 1 มิติ

# Python program to compute mean and standard
# deviation of a 1D tensor
# import the library
import torch

# Create a tensor
T = torch.Tensor([2.453, 4.432, 0.754, -6.554])
print("T:", T)

# Compute the mean and standard deviation
mean = torch.mean(T)
std = torch.std(T)

# Print the computed mean and standard deviation
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 ต่อไปนี้แสดงวิธีคำนวณค่าเฉลี่ยและความเบี่ยงเบนมาตรฐานของเมตริกซ์ 2 มิติในทั้งสองมิติ กล่าวคือ แบบแถวและคอลัมน์

# import necessary library
import torch

# create a 3x4 2D tensor
T = torch.Tensor([[2,4,7,-6],
[7,33,-62,23],
[2,-6,-77,54]])
print("T:\n", T)

# compute the mean and standard deviation
mean = torch.mean(T)
std = torch.std(T)
print("Mean:", mean)
print("Standard deviation:", std)

# Compute column-wise mean and 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)

# Compute row-wise mean and 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])