一個上下文管理器,可將操作從 control-flow 範圍和 function-building 圖表中提取出來。
用法
@tf_contextlib.contextmanager
tf.init_scope()
拋出
-
RuntimeError
如果圖形狀態與此初始化不兼容。
通常需要將變量初始化操作從control-flow 範圍、function-building 圖形和漸變磁帶中提升出來。輸入init_scope
是滿足這些需求的一種機製。特別是,輸入 init_scope
具有三個效果:
(1)在進入範圍的那一刻清除所有的控製依賴;這等效於進入從 control_dependencies(None)
返回的上下文管理器,它具有退出 control-flow 作用域(如 tf.cond
和 tf.while_loop
)的副作用。
(2) 在作用域處於活動狀態時創建的所有操作都被提升到context_stack
上未構建圖形函數的最低上下文中。在這裏,上下文被定義為圖形或即刻的上下文。每個上下文切換,即作為默認圖的每個圖的安裝和每個切換到渴望模式的切換,都記錄在名為 context_switches
的線程本地堆棧中;當上下文退出時,上下文切換的日誌條目會從堆棧中彈出。輸入 init_scope
相當於向上爬 context_switches
,找到第一個沒有構建圖函數的上下文,然後輸入它。需要注意的是,如果啟用了圖形模式但默認圖形堆棧為空,則輸入 init_scope
將簡單地安裝一個新圖形作為默認圖形。
(3) 示波器處於活動狀態時,梯度磁帶暫停。
啟用即刻執行後,即使在跟蹤 tf.function
時,init_scope 塊內的代碼也會在啟用即刻執行的情況下運行。例如:
tf.compat.v1.enable_eager_execution()
@tf.function
def func():
# A function constructs TensorFlow graphs,
# it does not execute eagerly.
assert not tf.executing_eagerly()
with tf.init_scope():
# Initialization runs with eager execution enabled
assert tf.executing_eagerly()
相關用法
- Python tf.inside_function用法及代碼示例
- Python tf.image.random_brightness用法及代碼示例
- Python tf.image.pad_to_bounding_box用法及代碼示例
- Python tf.io.gfile.GFile.close用法及代碼示例
- Python tf.image.adjust_hue用法及代碼示例
- Python tf.image.random_contrast用法及代碼示例
- Python tf.image.rot90用法及代碼示例
- Python tf.identity_n用法及代碼示例
- Python tf.image.random_hue用法及代碼示例
- Python tf.io.gfile.join用法及代碼示例
- Python tf.io.parse_example用法及代碼示例
- Python tf.image.flip_left_right用法及代碼示例
- Python tf.image.convert_image_dtype用法及代碼示例
- Python tf.image.stateless_random_flip_up_down用法及代碼示例
- Python tf.image.random_saturation用法及代碼示例
- Python tf.image.extract_glimpse用法及代碼示例
- Python tf.image.flip_up_down用法及代碼示例
- Python tf.image.crop_to_bounding_box用法及代碼示例
- Python tf.image.stateless_random_jpeg_quality用法及代碼示例
- Python tf.io.gfile.exists用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.init_scope。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。