评价此页

torch.histogram#

torch.histogram(input, bins, *, range=None, weight=None, density=False, out=None)#

计算张量中值的直方图。

bins 可以是整数或一维张量。

如果 bins 是一个整数,它指定了等宽的 bin 的数量。默认情况下,bin 的范围的下限和上限由输入张量的最小值和最大值确定。可以通过提供 range 参数来指定 bin 的范围。

如果 bins 是一个一维张量,它指定了 bin 边缘的序列,包括最右侧的边缘。它应该至少包含 2 个元素,并且其元素应该递增。

参数
  • input (Tensor) – 输入张量。

  • bins – 整数或一维张量。如果为整数,则定义等宽 bin 的数量。如果为张量,则定义 bin 边缘的序列,包括最右侧的边缘。

关键字参数
  • range (元组 of 浮点数) – 定义 bin 的范围。

  • weight (张量) – 如果提供,weight 的形状应与 input 相同。input 中的每个值都会将其关联的权重计入其 bin 的结果。

  • density (布尔值) – 如果为 False,结果将包含每个 bin 中的计数(或总权重)。如果为 True,结果是 bin 范围内概率密度函数的取值,并进行归一化,使得在 bin 范围内进行积分后结果为 1。

  • out (张量, 可选) – 输出张量。(元组, 可选): 包含两个输出张量的结果元组 (hist, bin_edges)。

返回

包含直方图值的 1D 张量。bin_edges(Tensor): 包含直方图 bin 边缘的 1D 张量。

返回类型

hist (张量)

示例

>>> torch.histogram(torch.tensor([1., 2, 1]), bins=4, range=(0., 3.), weight=torch.tensor([1., 2., 4.]))
(tensor([ 0.,  5.,  2.,  0.]), tensor([0., 0.75, 1.5, 2.25, 3.]))
>>> torch.histogram(torch.tensor([1., 2, 1]), bins=4, range=(0., 3.), weight=torch.tensor([1., 2., 4.]), density=True)
(tensor([ 0.,  0.9524,  0.3810,  0.]), tensor([0., 0.75, 1.5, 2.25, 3.]))