MutexLock

MutexLock kelas akhir publik

Mengunci sumber daya mutex. Outputnya adalah kuncinya. Selama tensor kunci

masih aktif, permintaan lain untuk menggunakan `MutexLock` dengan mutex ini akan menunggu.

Hal ini sangat berguna untuk membuat bagian penting ketika digunakan bersama dengan `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)
 
Saat `fn` berjalan di bagian kritis, tidak ada fungsi lain yang ingin menggunakan bagian kritis ini yang dapat berjalan.

Seringkali kasus penggunaannya adalah dua eksekusi dari grafik yang sama, secara paralel, ingin menjalankan `fn`; dan kami ingin memastikan bahwa hanya satu yang dijalankan pada satu waktu. Hal ini sangat penting jika `fn` mengubah satu atau lebih variabel sekaligus.

Hal ini juga berguna jika dua fungsi terpisah harus berbagi sumber daya, namun kami ingin memastikan penggunaannya eksklusif.

Metode Publik

Keluaran <Objek>
sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
MutexLock statis
buat ( Lingkup lingkup , Operan <?> mutex)
Metode pabrik untuk membuat kelas yang membungkus operasi MutexLock baru.
Keluaran <?>
kunci mutex ()
Tensor yang menjaga pointer bersama tetap mengunci mutex; ketika Tensor dimusnahkan, jumlah penggunaan pada penunjuk bersama berkurang 1.

Metode Warisan

Metode Publik

Output publik <Objek> asOutput ()

Mengembalikan pegangan simbolik tensor.

Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

pembuatan MutexLock statis publik ( Lingkup lingkup , Operan <?> mutex)

Metode pabrik untuk membuat kelas yang membungkus operasi MutexLock baru.

Parameter
cakupan ruang lingkup saat ini
mutex Sumber daya mutex yang akan dikunci.
Kembali
  • contoh baru MutexLock

Keluaran publik <?> mutexLock ()

Tensor yang menjaga pointer bersama tetap mengunci mutex; ketika Tensor dihancurkan, jumlah penggunaan pada penunjuk bersama berkurang 1. Saat mencapai 0, kunci dilepaskan.