当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.sparse.segment_sum用法及代码示例


沿张量的稀疏段计算总和。

用法

tf.sparse.segment_sum(
    data, indices, segment_ids, num_segments=None, name=None
)

参数

  • data 一个Tensor,其中包含将在输出中组装的数据。
  • indices 一维 Tensor 索引为 data 。与 segment_ids 具有相同的等级。
  • segment_ids 一维 Tensor 索引到输出 Tensor 。值应该排序并且可以重复。
  • num_segments 一个可选的 int32 标量。指示输出 Tensor 的大小。
  • name 操作的名称(可选)。

返回

  • 形状的 tensor 作为数据,除了尺寸为 k 的维度 0,通过 num_segments 指定的段数或为 segments_ids 中的最后一个元素推断。

阅读分段部分以了解分段的说明。

tf.math.segment_sum 类似,但 segment_ids 的排名可以小于 data 的第一个维度,选择维度 0 的子集,由 indices 指定。 segment_ids 允许缺少 id,在这种情况下,这些索引处的输出将为零。在这些情况下,num_segments 用于确定输出的大小。

例如:

c = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]])

# Select two rows, one segment.
tf.sparse.segment_sum(c, tf.constant([0, 1]), tf.constant([0, 0]))
# => [[0 0 0 0]]

# Select two rows, two segment.
tf.sparse.segment_sum(c, tf.constant([0, 1]), tf.constant([0, 1]))
# => [[ 1  2  3  4]
#     [-1 -2 -3 -4]]

# With missing segment ids.
tf.sparse.segment_sum(c, tf.constant([0, 1]), tf.constant([0, 2]),
                      num_segments=4)
# => [[ 1  2  3  4]
#     [ 0  0  0  0]
#     [-1 -2 -3 -4]
#     [ 0  0  0  0]]

# Select all rows, two segments.
tf.sparse.segment_sum(c, tf.constant([0, 1, 2]), tf.constant([0, 0, 1]))
# => [[0 0 0 0]
#     [5 6 7 8]]

# Which is equivalent to:
tf.math.segment_sum(c, tf.constant([0, 0, 1]))

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.sparse.segment_sum。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。