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


Python tf.compat.v1.assign用法及代码示例


通过将value 分配给它来更新ref

用法

tf.compat.v1.assign(
    ref, value, validate_shape=None, use_locking=None, name=None
)

参数

  • ref 一个可变的 Tensor 。应该来自 Variable 节点。可能未初始化。
  • value 一个Tensor。必须具有与 ref 相同的形状和 dtype。要分配给变量的值。
  • validate_shape 可选的 bool 。默认为 True 。如果为真,该操作将验证 'value' 的形状是否与分配给的张量的形状相匹配。如果为假,'ref' 将采用 'value' 的形状。
  • use_locking 可选的 bool 。默认为 True 。如果为 True,则分配将受锁保护;否则行为是未定义的,但可能表现出较少的争用。
  • name 操作的名称(可选)。

返回

  • Tensor 将在分配完成后保存 ref 的新值。

迁移到 TF2

警告:这个 API 是为 TensorFlow v1 设计的。继续阅读有关如何从该 API 迁移到本机 TensorFlow v2 等效项的详细信息。见TensorFlow v1 到 TensorFlow v2 迁移指南有关如何迁移其余代码的说明。

tf.compat.v1.assign 主要与即刻执行和 tf.function 兼容。但是,参数'validate_shape' 将被忽略。为避免形状验证,请在构造变量时将 'shape' 设置为 tf.TensorShape(None):

import tensorflow as tf
a = tf.Variable([1], shape=tf.TensorShape(None))
tf.compat.v1.assign(a, [2,3])

要切换到原生 TF2 风格,可以使用 tf.Variable 的 'assign' 方法:

如何映射参数

TF1 参数名称 TF2 参数名称 注意
ref self assign() 方法中
value value assign() 方法中
validate_shape 不支持 在构造函数中指定 shape 以复制行为
use_locking use_locking assign() 方法中
name name assign() 方法中
- read_value 设置为 True 以复制行为(True 是默认值)

此操作输出一个张量,该张量在分配值后保存 ref 的新值。这使得链接需要使用重置值的操作更容易。

使用示例之前和之后

前:

with tf.Graph().as_default():
  with tf.compat.v1.Session() as sess:
    a = tf.compat.v1.Variable(0, dtype=tf.int64)
    sess.run(a.initializer)
    update_op = tf.compat.v1.assign(a, 2)
    res_a = sess.run(update_op)
    res_a
2

后:

b = tf.Variable(0, dtype=tf.int64)
res_b = b.assign(2)
res_b.numpy()
2

相关用法


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