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


Python tf.raw_ops.ScatterNdNonAliasingAdd用法及代码示例


使用单个值或切片对input 应用稀疏加法

用法

tf.raw_ops.ScatterNdNonAliasingAdd(
    input, indices, updates, name=None
)

参数

  • input A Tensor.必须是以下类型之一:float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, uint16, complex128, half, uint32, uint64, bool.张量。
  • indices 一个Tensor。必须是以下类型之一:int32int64。张量。必须是以下类型之一:int32int64input 的索引张量。
  • updates 一个Tensor。必须与 input 具有相同的类型。张量。必须与 ref 具有相同的类型。要添加到 input 的更新值的张量。
  • name 操作的名称(可选)。

返回

  • 一个Tensor。具有与 input 相同的类型。

updates 根据索引 indices 。更新是非混叠的:input 仅在没有其他操作将使用它的情况下就地修改。否则,将制作input 的副本。此操作相对于 inputupdates 都有梯度。

input 是排名为 PTensor ,而 indices 是排名为 QTensor

indices 必须是整数张量,包含 input 的索引。它必须是形状 其中 0 < K <= P

indices 的最里面的维度(长度为 K )对应于沿 Kinput 的第 K 维度的元素索引(如果是 K = P )或 (P-K) 维切片(如果是 K < P )。

updates 是等级为 Q-1+P-KTensor,形状:

例如,假设我们要将 4 个分散的元素添加到 rank-1 张量到 8 个元素。在 Python 中,该添加看起来像这样:

input = tf.constant([1, 2, 3, 4, 5, 6, 7, 8])
indices = tf.constant([[4], [3], [1], [7]])
updates = tf.constant([9, 10, 11, 12])
output = tf.scatter_nd_non_aliasing_add(input, indices, updates)
with tf.Session() as sess:
  print(sess.run(output))

结果值 output 如下所示:

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

有关如何更新切片的更多详细信息,请参阅 tf.scatter_nd

相关用法


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