如何在PyTorch中计算张量的直方图?
使用 torch.histc() 可以计算张量的直方图,它返回表示直方图的张量。它有四个参数: input,bins,min 和 max 。它将元素排序到 min 和 max 之间的等宽箱中。它忽略小于 min 或大于 max 的元素。
步骤
-
导入所需的库。在以下所有 Python 示例中,需要导入 Python 库: torch 和 Matplotlib 。请确保已安装这些库。
-
创建一个张量并打印它。
-
计算 torch.histc(input, bins=100, min=0, max=100) 。返回直方图值的张量。根据您的需要将 bins、min 和 max 设置为适当的值。
-
打印上面计算出的直方图。
-
将直方图可视化为条形图。
示例 1
# 计算张量的直方图的 Python 示例
# 导入所需的库
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.])
示例 2
# 计算张量的直方图的 Python 示例
# 导入所需的库
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('箱子')
plt.ylabel('频率')
plt.show()
输出
原始张量 T:
tensor([2., 3., 1., 2., 3., 4., 3., 2., 3., 4., 3., 4.])

极客教程