Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

PyTorch에서 텐서의 히스토그램을 계산하는 방법 – torch.histc() 완벽 정리

PyTorch에서 텐서의 히스토그램은 torch.histc() 함수를 사용하여 계산할 수 있습니다. 이 함수는 히스토그램 결과를 텐서 형태로 반환하며, input, bins, min, max 총 네 가지 매개변수를 받습니다. 함수는 minmax 사이의 범위를 동일한 폭을 가진 구간(bin)으로 나누고, 각 구간에 속하는 요소들의 개수를 세어 히스토그램을 만듭니다. 이때 min보다 작거나 max보다 큰 요소들은 자동으로 제외됩니다.

히스토그램 계산 절차

  • 필요한 라이브러리를 임포트합니다. 아래의 모든 파이썬 예제에서는 torchMatplotlib 라이브러리가 필요하므로, 미리 설치되어 있는지 확인하세요.

  • 텐서를 생성하고 화면에 출력합니다.

  • torch.histc(input, bins=100, min=0, max=100) 형태로 함수를 호출하여 히스토그램을 계산합니다. 이때 반환값은 히스토그램 값을 담은 텐서입니다. bins, min, max 값은 분석 목적에 맞게 적절히 조정하면 됩니다.

  • 계산된 히스토그램을 출력하여 확인합니다.

  • 막대 그래프(bar chart) 형태로 히스토그램을 시각화합니다.

예제 1: 텐서의 히스토그램 계산하기

# 텐서의 히스토그램을 계산하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch
import matplotlib.pyplot as plt

# 텐서 생성
T = torch.Tensor([2,3,1,2,3,4,3,2,3,4,3,4])
print("원본 텐서 T:\n", T)

# 위에서 생성한 텐서의 히스토그램 계산
hist = torch.histc(T, bins = 5, min = 0, max = 4)
print("텐서 T의 히스토그램:\n", hist)

실행 결과

원본 텐서 T:
    tensor([2., 3., 1., 2., 3., 4., 3., 2., 3., 4., 3., 4.])
텐서 T의 히스토그램:
    tensor([0., 1., 3., 5., 3.])

위 실행 결과를 보면, 범위 0~4를 5개의 구간으로 나누었을 때 각 구간에 해당하는 값의 개수가 순서대로 [0, 1, 3, 5, 3]으로 집계된 것을 확인할 수 있습니다.

예제 2: 히스토그램을 막대 그래프로 시각화하기

# 텐서의 히스토그램을 계산하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch
import matplotlib.pyplot as plt

# 텐서 생성
T = torch.Tensor([2,3,1,2,3,4,3,2,3,4,3,4])
print("원본 텐서 T:\n", T)

# 위에서 생성한 텐서의 히스토그램 계산
hist = torch.histc(T, bins = 5, min = 0, max = 4)

# 계산된 히스토그램을 막대 그래프로 시각화
bins = 5
x = range(bins)
plt.bar(x, hist, align='center')
plt.xlabel('Bins')
plt.ylabel('Frequency')
plt.show()

실행 결과

원본 텐서 T:
    tensor([2., 3., 1., 2., 3., 4., 3., 2., 3., 4., 3., 4.])

PyTorch에서 텐서의 히스토그램을 계산하는 방법 – torch.histc() 완벽 정리

이처럼 torch.histc()Matplotlib를 함께 사용하면, 텐서 데이터의 값 분포를 손쉽게 계산하고 직관적인 그래프로 확인할 수 있습니다. 데이터 전처리나 통계 분석 과정에서 값의 분포를 빠르게 파악할 때 유용하게 활용할 수 있습니다.