هشدار: این API منسوخ شده است و پس از پایدار شدن جایگزینی، در نسخه بعدی TensorFlow حذف خواهد شد.

MutexLock

عمومی MutexLock کلاس نهایی

یک منبع mutex را قفل می کند. خروجی قفل است. تا زمانی که تانسور قفل

زنده است، هر درخواست دیگری برای استفاده از «MutexLock» با این mutex منتظر خواهد ماند.

این امر به ویژه برای ایجاد یک بخش بحرانی که در رابطه با `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» یک یا چند متغیر را در یک زمان تغییر دهد.

همچنین اگر دو تابع جداگانه باید یک منبع را به اشتراک بگذارند مفید است، اما ما می خواهیم اطمینان حاصل کنیم که استفاده از آن منحصر به فرد است.

روش های عمومی

خروجی <شی>
asOutput ()
دسته نمادین یک تانسور را برمی‌گرداند.
شخص MutexLock
ایجاد ( محدوده دامنه، عملوند <؟> امکانپذیر)
روش کارخانه برای ایجاد کلاسی که یک عملیات MutexLock جدید را بسته بندی می کند.
خروجی <؟>
mutexLock ()
تانسوری که یک اشاره گر مشترک را به یک قفل در mutex نگه می دارد. هنگامی که تانسور از بین می رود، تعداد استفاده از اشاره گر مشترک به میزان 1 کاهش می یابد.

روش های ارثی

روش های عمومی

عمومی خروجی <شی> asOutput ()

دسته نمادین یک تانسور را برمی‌گرداند.

ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.

عمومی استاتیک MutexLock ایجاد ( محدوده دامنه، عملوند <؟> امکانپذیر)

روش کارخانه برای ایجاد کلاسی که یک عملیات MutexLock جدید را بسته بندی می کند.

مولفه های
محدوده محدوده فعلی
mutex منبع mutex برای قفل کردن.
برمی گرداند
  • یک نمونه جدید از MutexLock

عمومی خروجی <؟> mutexLock ()

تانسوری که یک اشاره گر مشترک را به یک قفل در mutex نگه می دارد. وقتی تانسور از بین می‌رود، تعداد استفاده از نشانگر مشترک 1 کاهش می‌یابد. وقتی به 0 رسید، قفل آزاد می‌شود.