警告:このAPIは非推奨であり、置き換えが安定した後 TensorFlowの将来のバージョンで削除される予定です。

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`がクリティカルセクションで実行されている間、このクリティカルセクションを使用したい他の機能は実行しないことがあります。

多くの場合、同じグラフを2回並行して実行すると、 `fn`が実行されます。そして、一度に1つだけが実行されるようにしたいのです。これは、 `fn`が一度に1つ以上の変数を変更する場合に特に重要です。

2つの別々の関数がリソースを共有する必要がある場合にも役立ちますが、使用が排他的であることを確認したいと思います。

パブリックメソッド

出力<オブジェクト>
asOutput ()
テンソルのシンボリックハンドルを返します。
静的MutexLock
作成スコープスコープ、オペランド<?>ミューテックス)
新しいMutexLock操作をラップするクラスを作成するファクトリメソッド。
出力<?>
mutexLock ()
ミューテックスのロックへの共有ポインターを保持するテンソル。 Tensorが破棄されると、共有ポインターの使用回数が1つ減ります。

継承されたメソッド

パブリックメソッド

公共の出力の<Object> asOutput()

テンソルのシンボリックハンドルを返します。

TensorFlow操作への入力は、別のTensorFlow操作の出力です。このメソッドは、入力の計算を表すシンボリックハンドルを取得するために使用されます。

パブリック静的はMutexLock作成スコープスコープ、オペランド<?>ミューテックス)

新しいMutexLock操作をラップするクラスを作成するファクトリメソッド。

パラメーター
範囲現在のスコープ
ミューテックスロックするミューテックスリソース。
戻り値
  • MutexLockの新しいインスタンス

公共の出力<?> mutexLock()

ミューテックスのロックへの共有ポインターを保持するテンソル。 Tensorが破棄されると、共有ポインターの使用回数が1つ減ります。0に達すると、ロックが解除されます。