MutexLock

공개 최종 클래스 MutexLock

뮤텍스 리소스를 잠급니다. 출력은 잠금입니다. 잠금 텐서가 있는 한

이 뮤텍스와 함께 `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`이 한 번에 하나 이상의 변수를 수정하는 경우 특히 중요합니다.

두 개의 별도 기능이 리소스를 공유해야 하는 경우에도 유용하지만 사용이 독점적인지 확인하고 싶습니다.

공개 방법

<객체> 출력
출력 ()
텐서의 기호 핸들을 반환합니다.
정적 MutexLock
생성 ( 범위 범위, 피연산자 <?> 뮤텍스)
새로운 MutexLock 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
출력 <?>
뮤텍스잠금 ()
뮤텍스 잠금에 대한 공유 포인터를 유지하는 텐서. Tensor가 파괴되면 공유 포인터의 사용 횟수가 1씩 감소합니다.

상속된 메서드

공개 방법

공개 출력 <Object> asOutput ()

텐서의 기호 핸들을 반환합니다.

TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.

공개 정적 MutexLock 생성 ( 범위 범위 , 피연산자 <?> 뮤텍스)

새로운 MutexLock 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
뮤텍스 잠글 뮤텍스 리소스입니다.
보고
  • MutexLock의 새로운 인스턴스

공개 출력 <?> mutexLock ()

뮤텍스 잠금에 대한 공유 포인터를 유지하는 텐서. Tensor가 파괴되면 공유 포인터의 사용 횟수가 1씩 감소합니다. 0에 도달하면 잠금이 해제됩니다.