阅读(1905) (10)

tf.scatter_update函数:将稀疏更新应用于变量引用

2018-01-10 09:53:47 更新

tf.scatter_update 函数

scatter_update(
    ref,
    indices,
    updates,
    use_locking=True,
    name=None
)

请参阅指南:变量>稀疏变量更新

将稀疏更新应用于变量引用.

此操作计算如下:

# Scalar indices
ref[indices, ...] = updates[...]

# Vector indices (for each i)
ref[indices[i], ...] = updates[i, ...]

# High rank indices (for each i, ..., j)
ref[indices[i, ..., j], ...] = updates[i, ..., j, ...]

此操作在更新完成后输出 ref.这样可以更容易地链接到需要使用重置值的操作.

如果 ref 中的值要更新多次,由于indices中有重复的条目,则每个值的更新发生的顺序是未定义的.

需要:updates.shape = indices.shape + ref.shape[1:].

TensorFlow函数

函数参数

  • ref:一个可变的Tensor;应该来自一个Variable节点.
  • indices:一个Tensor;必须是以下类型之一:int32,int64;进入ref的第一维度的一个索引的张量.
  • updates:一个Tensor.必须与ref具有相同的类型.存储在ref中的更新值的张量.
  • use_locking:可选bool,默认为True;如果为True,则赋值将受锁定的保护;否则行为是不确定的,但可能表现出较少的争用.
  • name:操作的名称(可选).

函数返回值

和ref一样;作为在更新完成后想要使用更新值的操作的便利返回.