torch.histogram

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

计算张量值的直方图。

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

如果 bins 是一个整数,则它指定了等宽区间(或称“分箱”)的数量。默认情况下,区间的下限和上限由输入张量中的最小值和最大值确定。可以通过提供 range 参数来指定区间的范围。

如果 bins 是一个一维张量,它定义了箱的边界序列,包括最右边的边界。这个张量至少应包含两个元素,并且这些元素需要按递增顺序排列。

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

  • bins – int 或 1D 张量。如果是 int 类型,表示等宽分箱的数量;如果是张量类型,则表示包含最右边缘的分箱边界序列。

关键字参数
  • range (元组 包含 浮点数) – 定义分桶的范围。

  • weight (Tensor) – 如果提供,weight 需要与输入具有相同的形状。输入中的每个值会为其所在的桶的结果贡献相应的权重。

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

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

返回值

1D 张量,包含直方图的值。bin_edges(Tensor):1D 张量,包含直方图每个桶的边界。

返回类型

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.]))
本页目录