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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。