dgl.ops.segment_reduce
- dgl.ops.segment_reduce(seglen, value, reducer='sum')[source]
分段归约算子。
它按段沿第一个维度聚合值张量。第一个参数
seglen
存储每个段的长度。其总和必须等于value
张量的第一个维度。允许零长度的段。- 参数:
seglen (Tensor) – 段长度。
value (Tensor) – 要聚合的值。
reducer (str, optional) – 聚合方法。可以是 'sum'(求和)、'max'(最大值)、'min'(最小值)或 'mean'(平均值)。
- 返回:
聚合后的张量,形状为
(len(seglen), value.shape[1:])
。- 返回类型:
张量
示例
>>> import dgl >>> import torch as th >>> val = th.ones(10, 3) >>> seg = th.tensor([1, 0, 5, 4]) # 4 segments >>> dgl.segment_reduce(seg, val) tensor([[1., 1., 1.], [0., 0., 0.], [5., 5., 5.], [4., 4., 4.]])