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` แก้ไขตัวแปรตั้งแต่หนึ่งตัวขึ้นไปในแต่ละครั้ง

นอกจากนี้ยังมีประโยชน์หากฟังก์ชันที่แยกกันสองฟังก์ชันต้องใช้ทรัพยากรร่วมกัน แต่เราต้องการให้แน่ใจว่าการใช้งานเป็นแบบเอกสิทธิ์เฉพาะบุคคล

วิธีการสาธารณะ

เอาต์พุต <วัตถุ>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
MutexLock แบบคงที่
สร้าง (ขอบเขต ขอบเขต ตัวดำเนินการ <?> mutex)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ MutexLock ใหม่
เอาท์พุต <?>
mutexLock ()
เทนเซอร์ที่เก็บตัวชี้ที่ใช้ร่วมกันเพื่อล็อคบน mutex; เมื่อเทนเซอร์ถูกทำลาย จำนวนการใช้งานบนตัวชี้ที่ใช้ร่วมกันจะลดลง 1

วิธีการสืบทอด

วิธีการสาธารณะ

เอาท์พุท สาธารณะ <Object> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

การสร้าง MutexLock แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , ตัวดำเนินการ <?> mutex)

วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ MutexLock ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
มิวเท็กซ์ ทรัพยากร mutex ที่จะล็อค
การส่งคืน
  • อินสแตนซ์ใหม่ของ MutexLock

เอาท์พุท สาธารณะ <?> mutexLock ()

เทนเซอร์ที่เก็บตัวชี้ที่ใช้ร่วมกันเพื่อล็อคบน mutex; เมื่อเทนเซอร์ถูกทำลาย จำนวนการใช้งานบนตัวชี้ที่ใช้ร่วมกันจะลดลง 1 เมื่อถึง 0 การล็อคจะถูกปลดล็อค