Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách tính trung bình và độ lệch chuẩn của tensor trong PyTorch?

Tensor PyTorch giống mảng numpy, khác ở chỗ tensor dùng GPU để tăng tốc tính toán. Trung bình của tensor tính bằng torch.mean(). Trả về giá trị trung bình của tất cả phần tử trong tensor đầu vào. Có thể tính trung bình theo hàng, cột bằng axis hoặc dim.

Độ lệch chuẩn tính bằng torch.std(). Trả về độ lệch chuẩn của tất cả phần tử. Giống mean, có thể tính theo hàng, cột.

Các bước

  • Nhập thư viện torch. Đảm bảo đã cài.

  • Định nghĩa tensor PyTorch và in ra.

  • Tính trung bình: torch.mean(input, axis). input là tensor, axis (hoặc dim) là danh sách chiều. Gán vào biến mới.

  • Tính độ lệch chuẩn: torch.std(input, axis). input là tensor, axis là danh sách chiều. Gán vào biến mới.

  • In trung bình và độ lệch chuẩn.

Ví dụ 1

Tính trung bình và độ lệch chuẩn tensor 1D.

import torch

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)

Kết quả

T: tensor([ 2.4530,  4.4320,  0.7540, -6.5540])
Mean: tensor(0.2713)
Standard deviation: tensor(4.7920)

Ví dụ 2

Tính trung bình và độ lệch chuẩn tensor 2D theo cả hai chiều.

import torch

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)

# Cột
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)

# Hàng
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)

Kết quả

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