torch.histogramdd¶
- torch.histogramdd(input, bins, *, range=None, weight=None, density=False, out=None) -> (Tensor, Tensor[])¶
计算张量中值的多维直方图。
解释输入张量的元素,其最内层维度的大小为N,作为一组N维点的集合。将每个点映射到一组N维的箱子中,并返回每个箱子中的点数(或总权重)。
input
必须是一个至少有2维的张量。 如果输入的形状是(M, N),它的每一行M定义了N维空间中的一个点。 如果输入有三维或更多维,除了最后一维之外的所有维度都会被展平。每个维度都独立地与其自身的严格递增的箱边缘序列相关联。箱边缘可以通过传递一个一维张量序列来显式指定。或者,可以通过传递一个整数序列来自动构建箱边缘,该序列指定了每个维度中等宽箱的数量。
- For each N-dimensional point in input:
- Each of its coordinates is binned independently among the bin edges
对应于其维度
- Binning results are combined to identify the N-dimensional bin (if any)
点落入的区域
如果点落入一个区间,该区间的计数(或总权重)将增加
未落入任何区间的点不会对输出产生贡献
bins
可以是一个包含 N 个一维张量的序列,一个包含 N 个整数的序列,或者一个单独的整数。如果
bins
是一个包含 N 个一维张量的序列,它明确指定了 N 个序列的边界。每个一维张量应包含一个严格递增的序列,且至少有一个元素。一个包含 K 个边界值的序列定义了 K-1 个区间,明确指定了所有区间的左右边界。每个区间在其左边界上是排他的。只有最右边的区间在其右边界上是包含的。如果
bins
是一个包含 N 个整数的序列,它指定每个维度中相等宽度箱的数量。默认情况下,每个维度中最左边和最右边的箱边缘由输入张量在相应维度中的最小和最大元素决定。可以使用range
参数手动指定每个维度中最左边和最右边的箱边缘。如果
bins
是一个整数,它指定所有维度中等宽的箱数。注意
另请参阅
torch.histogram()
,它专门计算一维直方图。 虽然torch.histogramdd()
从input
的形状推断其箱子和分箱值的维度,但torch.histogram()
接受并展平任何形状的input
。- Parameters
输入 (张量) – 输入张量。
bins – 张量[], 整数[], 或 整数. 如果 张量[], 定义了每个维度的等宽箱数。 如果 整数, 定义了所有维度的等宽箱数。
- Keyword Arguments
- Returns
N维张量,包含直方图的值。 bin_edges(Tensor[]): N个1维张量的序列,包含箱边缘。
- Return type
hist (张量)
- Example::
>>> torch.histogramdd(torch.tensor([[0., 1.], [1., 0.], [2., 0.], [2., 2.]]), bins=[3, 3], ... weight=torch.tensor([1., 2., 4., 8.])) torch.return_types.histogramdd( hist=tensor([[0., 1., 0.], [2., 0., 0.], [4., 0., 8.]]), bin_edges=(tensor([0.0000, 0.6667, 1.3333, 2.0000]), tensor([0.0000, 0.6667, 1.3333, 2.0000])))
>>> torch.histogramdd(torch.tensor([[0., 0.], [1., 1.], [2., 2.]]), bins=[2, 2], ... 范围=[0., 1., 0., 1.], 密度=True) torch.return_types.histogramdd( hist=tensor([[2., 0.], [0., 2.]]), bin_edges=(tensor([0.0000, 0.5000, 1.0000]), tensor([0.0000, 0.5000, 1.0000])))