將 TF 1.x 函數 fn 包裝成圖形函數。
用法
tf.compat.v1.wrap_function(
fn, signature, name=None
)
參數
-
fn
要包裝的python函數 -
signature
要傳遞給包裝函數的占位符和 python 參數 -
name
可選的。函數的名稱。
返回
- 包裝圖函數。
python 函數 fn
將使用 signature
中指定的符號參數調用一次,跟蹤並轉換為圖形函數。 fn
創建的任何變量都將歸 wrap_function
返回的對象所有。可以使用與簽名匹配的張量調用生成的圖函數。
def f(x, do_add):
v = tf.Variable(5.0)
if do_add:
op = v.assign_add(x)
else:
op = v.assign_sub(x)
with tf.control_dependencies([op]):
return v.read_value()
f_add = tf.compat.v1.wrap_function(f, [tf.TensorSpec((), tf.float32), True])
assert float(f_add(1.0)) == 6.0
assert float(f_add(1.0)) == 7.0
# Can call tf.compat.v1.wrap_function again to get a new trace, a new set
# of variables, and possibly different non-template arguments.
f_sub= tf.compat.v1.wrap_function(f, [tf.TensorSpec((), tf.float32), False])
assert float(f_sub(1.0)) == 4.0
assert float(f_sub(1.0)) == 3.0
tf.compat.v1.wrap_function
和 tf.function
都創建了一個可調用的 TensorFlow 圖。但是,雖然 tf.function
運行所有有狀態操作(例如 tf.print
)和序列操作以提供與即刻執行相同的語義,但 wrap_function
更接近於 TensorFlow 1.x 中 session.run
的行為。它不會運行任何操作,除非它們需要通過數據依賴或控製依賴來計算函數的輸出。它也不會對操作進行排序。
與 tf.function
不同,wrap_function
隻會跟蹤 Python 函數一次。與 TF 1.x 中的占位符一樣,形狀和數據類型必須提供給 wrap_function
的 signature
參數。
由於它隻被跟蹤一次,因此變量和狀態可以在函數內部創建並由函數包裝對象擁有。
相關用法
- Python tf.compat.v1.while_loop用法及代碼示例
- Python tf.compat.v1.where用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代碼示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代碼示例
- Python tf.compat.v1.Variable.eval用法及代碼示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.layers.conv3d用法及代碼示例
- Python tf.compat.v1.strings.length用法及代碼示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代碼示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代碼示例
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代碼示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代碼示例
- Python tf.compat.v1.variable_scope用法及代碼示例
- Python tf.compat.v1.data.experimental.SqlDataset.as_numpy_iterator用法及代碼示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代碼示例
- Python tf.compat.v1.placeholder用法及代碼示例
- Python tf.compat.v1.layers.Conv3D用法及代碼示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.wrap_function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。