Aviso: esta API está obsoleta e será removida em uma versão futura do TensorFlow depois que a substituição estiver estável.

MutexLock

classe final pública MutexLock

Bloqueia um recurso mutex. A saída é a fechadura. Contanto que o tensor de bloqueio

está ativo, qualquer outra solicitação para usar `MutexLock` com este mutex irá esperar.

Isso é particularmente útil para criar uma seção crítica quando usado em conjunto com `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)
 
Enquanto` fn` está sendo executado na seção crítica, nenhuma outra função que deseja usar esta seção crítica pode ser executada.

Freqüentemente, o caso de uso é que duas execuções do mesmo gráfico, em paralelo, desejam executar `fn`; e desejamos garantir que apenas um deles seja executado por vez. Isso é especialmente importante se `fn` modificar uma ou mais variáveis ​​por vez.

Também é útil se duas funções separadas devem compartilhar um recurso, mas queremos garantir que o uso seja exclusivo.

Métodos Públicos

Saída <Objeto>
asOutput ()
Retorna o identificador simbólico de um tensor.
MutexLock estático
criar ( escopo do escopo, operando <?> mutex)
Método de fábrica para criar uma classe que envolve uma nova operação MutexLock.
Resultado <?>
mutexLock ()
Um tensor que mantém um ponteiro compartilhado para um bloqueio no mutex; quando o Tensor é destruído, a contagem de uso no ponteiro compartilhado diminui em 1.

Métodos herdados

Métodos Públicos

public Output <Object> asOutput ()

Retorna o identificador simbólico de um tensor.

As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

public static MutexLock create ( escopo do escopo, Operand <?> mutex)

Método de fábrica para criar uma classe que envolve uma nova operação MutexLock.

Parâmetros
alcance escopo atual
mutex O recurso mutex a ser bloqueado.
Devoluções
  • uma nova instância de MutexLock

public Output <?> mutexLock ()

Um tensor que mantém um ponteiro compartilhado para um bloqueio no mutex; quando o Tensor é destruído, a contagem de uso no ponteiro compartilhado diminui em 1. Quando chega a 0, o bloqueio é liberado.