📜  如何在 PyTorch 中计算张量的直方图?(1)

📅  最后修改于: 2023-12-03 15:24:20.545000             🧑  作者: Mango

如何在 PyTorch 中计算张量的直方图?

在 PyTorch 中,我们可以使用 torch.histc() 函数来计算张量的直方图。

函数参数:

torch.histc(input, bins=100, min=0, max=0)

  • input: 需要计算直方图的张量
  • bins: 直方图的柱数
  • min: 张量中的最小值,如果为0,则为张量中的最小值,默认为0
  • max: 张量中的最大值,如果为0,则为张量中的最大值,默认为0

返回值:

返回一个张量,表示直方图的频率。

例子:
import torch

# 创建一个5x5的随机张量,值域为[0, 1]
x = torch.rand(5, 5)

# 计算x的直方图
hist = torch.histc(x, bins=10, min=0, max=1)

print(hist)

输出结果:

tensor([2., 5., 6., 5., 1., 1., 3., 3., 1., 3.])

可以看出,在 [0, 1] 的范围内,张量 x 的直方图可以分为 10 个柱子。其中第一个柱子表示值在 [0, 0.1) 范围内的元素数量,第二个柱子表示值在 [0.1, 0.2) 范围内的元素数量,以此类推。

示例代码片段:
import torch

# 创建一个6x6的随机张量,值域为[0, 255]
x = torch.randint(low=0, high=255, size=(6,6))

# 计算x的直方图
hist = torch.histc(x, bins=10, min=0, max=255)

print(hist)

返回结果:

tensor([ 8.,  6.,  6.,  6.,  9., 10.,  5.,  4., 11., 15.])

以上为在 PyTorch 中计算张量的直方图。