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` одновременно изменяет одну или несколько переменных.

Это также полезно, если две отдельные функции должны совместно использовать ресурс, но мы хотим обеспечить эксклюзивность использования.

Публичные методы

Вывод <Объект>
какВывод ()
Возвращает символический дескриптор тензора.
статический мьютекслок
create (область области действия , мьютекс операнда <?>)
Фабричный метод для создания класса, обертывающего новую операцию MutexLock.
Вывод <?>
мьютекслок ()
Тензор, который хранит общий указатель на блокировку мьютекса; когда Тензор уничтожается, счетчик использования общего указателя уменьшается на 1.

Унаследованные методы

Публичные методы

общедоступный вывод <Object> asOutput ()

Возвращает символический дескриптор тензора.

Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.

public static MutexLock create (область видимости , мьютекс Operand <?>)

Фабричный метод для создания класса, обертывающего новую операцию MutexLock.

Параметры
объем текущий объем
мьютекс Ресурс мьютекса, который необходимо заблокировать.
Возврат
  • новый экземпляр MutexLock

публичный вывод <?> mutexLock ()

Тензор, который хранит общий указатель на блокировку мьютекса; когда тензор уничтожается, счетчик использования общего указателя уменьшается на 1. Когда он достигает 0, блокировка снимается.