评价此页

torch.histogram#

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

计算张量中值的直方图。

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

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

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

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

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

关键字参数
  • range (tuple of float) – 定义 bin 的范围。

  • weight (Tensor) – 如果提供,weight 应该与 input 具有相同的形状。 input 中的每个值都贡献其相关的权重给其 bin 的结果。

  • density (bool) – 如果为 False,结果将包含每个 bin 中的计数(或总权重)。如果为 True,结果是 bin 上概率密度函数的值,归一化使得在 bin 范围上的积分等于 1。

  • out (Tensor, optional) – 输出张量。(tuple, optional): 两个输出张量(hist, bin_edges)的结果元组。

返回

包含直方图值的-维张量。bin_edges(Tensor): 包含直方图 bin 边缘的一维张量。

返回类型

hist (Tensor)

示例

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