鎖定互斥資源。輸出是鎖。隻要鎖張量
用法
tf.raw_ops.MutexLock(
mutex, name=None
)
參數
-
mutex
Tensor
類型為resource
。要鎖定的互斥體資源。 -
name
操作的名稱(可選)。
返回
-
Tensor
類型為variant
。
是活動的,任何其他使用此互斥體的MutexLock
的請求都將等待。
當與 MutexLockIdentity
結合使用時,這對於創建臨界區特別有用:
mutex = mutex_v2(
shared_name=handle_name, container=container, name=name)
def execute_in_critical_section(fn, *args, **kwargs):
lock = gen_resource_variable_ops.mutex_lock(mutex)
with ops.control_dependencies([lock]):
r = fn(*args, **kwargs)
with ops.control_dependencies(nest.flatten(r)):
with ops.colocate_with(mutex):
ensure_lock_exists = mutex_lock_identity(lock)
# Make sure that if any element of r is accessed, all of
# them are executed together.
r = nest.map_structure(tf.identity, r)
with ops.control_dependencies([ensure_lock_exists]):
return nest.map_structure(tf.identity, r)
當fn
在臨界區運行時,沒有其他希望使用該臨界區的函數可以運行。
通常用例是同一個圖的兩個並行執行希望運行 fn
;我們希望確保一次隻執行其中一個。如果fn
一次修改一個或多個變量,這一點尤其重要。
如果兩個獨立的函數必須共享一個資源,這也很有用,但我們希望確保使用是獨占的。
相關用法
- Python tf.raw_ops.Maximum用法及代碼示例
- Python tf.raw_ops.Minimum用法及代碼示例
- Python tf.raw_ops.MatrixDiagPart用法及代碼示例
- Python tf.raw_ops.MirrorPadGrad用法及代碼示例
- Python tf.raw_ops.MirrorPad用法及代碼示例
- Python tf.raw_ops.MatrixDiag用法及代碼示例
- Python tf.raw_ops.MatrixSetDiagV2用法及代碼示例
- Python tf.raw_ops.MatrixDiagV2用法及代碼示例
- Python tf.raw_ops.MatrixDiagV3用法及代碼示例
- Python tf.raw_ops.MatrixSetDiagV3用法及代碼示例
- Python tf.raw_ops.MatrixTriangularSolve用法及代碼示例
- Python tf.raw_ops.MatrixDiagPartV3用法及代碼示例
- Python tf.raw_ops.MatrixDiagPartV2用法及代碼示例
- Python tf.raw_ops.MatrixBandPart用法及代碼示例
- Python tf.raw_ops.TPUReplicatedInput用法及代碼示例
- Python tf.raw_ops.Bitcast用法及代碼示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代碼示例
- Python tf.raw_ops.BatchMatMul用法及代碼示例
- Python tf.raw_ops.OneHot用法及代碼示例
- Python tf.raw_ops.ResourceScatterNdSub用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.MutexLock。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。