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


Python tf.compat.v1.scatter_nd_add用法及代碼示例


對變量中的單個值或切片應用稀疏加法。

用法

tf.compat.v1.scatter_nd_add(
    ref, indices, updates, use_locking=False, name=None
)

參數

  • ref 一個可變的 Tensor 。必須是以下類型之一:float32 , float64 , int32 , uint8 , int16 , int8 , complex64 , int64 , qint8 , quint8 , qint32 , bfloat16 , uint16 , complex128 , half , uint32 , uint64。一個可變張量。應該來自變量節點。
  • indices 一個Tensor。必須是以下類型之一:int32 , int64。參考的索引張量。
  • updates 一個Tensor。必須與 ref 具有相同的類型。要添加到 ref 的更新值的張量。
  • use_locking 可選的 bool 。默認為 False 。如果為 True,則分配將受鎖保護;否則行為是未定義的,但可能表現出較少的爭用。
  • name 操作的名稱(可選)。

返回

  • 一個可變的 Tensor 。具有與 ref 相同的類型。

ref 是排名為 PTensor ,而 indices 是排名為 QTensor

indices 必須是整數張量,包含 ref 的索引。它必須是形狀 [d_0, ..., d_{Q-2}, K] 其中 0 < K <= P

indices 的最內維(長度為 K )對應於沿 refK 第維的元素(如果是 K = P )或切片(如果是 K < P )的索引。

updates 是等級為 Q-1+P-KTensor,形狀:

[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]]

例如,假設我們要將 4 個分散的元素添加到 rank-1 張量到 8 個元素。在 Python 中,該添加看起來像這樣:

ref = tf.Variable([1, 2, 3, 4, 5, 6, 7, 8])
indices = tf.constant([[4], [3], [1], [7]])
updates = tf.constant([9, 10, 11, 12])
add = tf.compat.v1.scatter_nd_add(ref, indices, updates)
with tf.compat.v1.Session() as sess:
  print sess.run(add)

對 ref 的更新結果如下所示:

[1, 13, 3, 14, 14, 6, 7, 20]

有關如何更新切片的更多詳細信息,請參閱tf.scatter_nd

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.scatter_nd_add。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。