ล็อกทรัพยากร 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 การล็อคจะถูกปลดล็อค