뮤텍스 리소스를 잠급니다. 출력은 잠금입니다. 잠금 텐서가 있는 한
이 뮤텍스와 함께 `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`이 한 번에 하나 이상의 변수를 수정하는 경우 특히 중요합니다.
두 개의 별도 기능이 리소스를 공유해야 하는 경우에도 유용하지만 사용이 독점적인지 확인하고 싶습니다.
공개 방법
<객체> 출력 | 출력 () 텐서의 기호 핸들을 반환합니다. |
정적 MutexLock | |
출력 <?> | 뮤텍스잠금 () 뮤텍스 잠금에 대한 공유 포인터를 유지하는 텐서. Tensor가 파괴되면 공유 포인터의 사용 횟수가 1씩 감소합니다. |
상속된 메서드
공개 방법
공개 출력 <Object> asOutput ()
텐서의 기호 핸들을 반환합니다.
TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.
공개 정적 MutexLock 생성 (범위 범위 , 피연산자 <?> 뮤텍스)
새로운 MutexLock 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
매개변수
범위 | 현재 범위 |
---|---|
뮤텍스 | 잠글 뮤텍스 리소스입니다. |
보고
- MutexLock의 새로운 인스턴스
공개 출력 <?> mutexLock ()
뮤텍스 잠금에 대한 공유 포인터를 유지하는 텐서. Tensor가 파괴되면 공유 포인터의 사용 횟수가 1씩 감소합니다. 0에 도달하면 잠금이 해제됩니다.