锁定互斥资源。输出是锁。只要锁张量
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。