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


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


将稀疏的 updates 应用于给定的单个值或切片

用法

tf.raw_ops.ResourceScatterNdUpdate(
    ref, indices, updates, use_locking=True, name=None
)

参数

  • ref Tensor 类型为 resource 。资源句柄。必须来自 VarHandleOp。
  • indices 一个Tensor。必须是以下类型之一:int32 , int64。张量。必须是以下类型之一:int32、int64。参考的索引张量。
  • updates 一个Tensor。张量。必须与 ref 具有相同的类型。要添加到 ref 的更新值的张量。
  • use_locking 可选的 bool 。默认为 True 。一个可选的布尔值。默认为真。如果为 True,则分配将受锁保护;否则行为是未定义的,但可能表现出较少的争用。
  • name 操作的名称(可选)。

返回

  • 创建的操作。

变量根据 indices

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])
    update = tf.scatter_nd_update(ref, indices, updates)
    with tf.Session() as sess:
      print sess.run(update)

对 ref 的更新结果如下所示:

[1, 11, 3, 10, 9, 6, 7, 12]

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

相关用法


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