當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。