EagerSession.ResourceCleanupกลยุทธ์

EagerSession.ResourceCleanupStrategy สาธารณะคงสุดท้าย enum

ควบคุมวิธีการล้างทรัพยากร TensorFlow เมื่อไม่จำเป็นต้องใช้อีกต่อไป

ทรัพยากรทั้งหมดที่จัดสรรระหว่าง EagerSession จะถูกลบเมื่อปิดเซสชัน เพื่อป้องกันข้อผิดพลาดหน่วยความจำไม่เพียงพอ ขอแนะนำอย่างยิ่งให้ล้างข้อมูลทรัพยากรเหล่านั้นในระหว่างเซสชัน ตัวอย่างเช่น การดำเนินการ n การดำเนินการในการวนซ้ำ m จะจัดสรรทรัพยากรขั้นต่ำ n*m ในขณะที่ในกรณีส่วนใหญ่ ยังคงใช้เฉพาะทรัพยากรของการวนซ้ำครั้งล่าสุดเท่านั้น

อินส EagerSession สามารถแจ้งเตือนได้หลายวิธีเมื่อไม่มีการอ้างอิงออบเจ็กต์ TensorFlow อีกต่อไป เพื่อให้สามารถดำเนินการล้างทรัพยากรใดๆ ที่ตนเป็นเจ้าของได้

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

ค่าแจงนับ

EagerSession.ResourceCleanupStrategy สุดท้ายแบบคงที่สาธารณะ IN_BACKGROUND

ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดใหม่ที่ทำงานในเบื้องหลัง

นี่เป็นแนวทางที่เชื่อถือได้มากที่สุดในการล้างทรัพยากร TensorFlow โดยมีค่าใช้จ่ายในการเริ่มต้นและเรียกใช้เธรดเพิ่มเติมสำหรับงานนี้โดยเฉพาะ EagerSession แต่ละอินสแตนซ์มีเธรดของตัวเอง ซึ่งจะหยุดเฉพาะเมื่อปิดเซสชันเท่านั้น

กลยุทธ์นี้ถูกใช้เป็นค่าเริ่มต้น

EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS สุดท้ายแบบคงที่สาธารณะ

ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดที่มีอยู่ ก่อนหรือหลังเสร็จสิ้นงานอื่น

ทรัพยากรที่ไม่ได้ใช้จะถูกปล่อยออกมาเมื่อมีการเรียกไปยังไลบรารี TensorFlow ถึงจุดที่ปลอดภัยสำหรับการล้างข้อมูล ซึ่งดำเนินการพร้อมกันและอาจบล็อกเธรดที่เรียกใช้การโทรนั้นในช่วงเวลาสั้นๆ

ควรใช้กลยุทธ์นี้เฉพาะเมื่อ ด้วยเหตุผลบางประการ ไม่ควรจัดสรรเธรดเพิ่มเติมสำหรับการล้างข้อมูล มิฉะนั้น ควรเลือกใช้ IN_BACKGROUND

EagerSession.ResourceCleanupStrategy สุดท้ายแบบคงที่สาธารณะ ON_SESSION_CLOSE

ลบทรัพยากรเมื่อปิดเซสชั่นเท่านั้น

ทรัพยากรทั้งหมดที่จัดสรรระหว่างเซสชันจะยังคงอยู่ในหน่วยความจำจนกว่าเซสชันจะถูกปิดอย่างชัดเจน (หรือผ่านเทคนิค `ลองใช้ทรัพยากร` แบบดั้งเดิม) จะไม่มีความพยายามเพิ่มเติมสำหรับการล้างทรัพยากร

กลยุทธ์นี้อาจนำไปสู่ข้อผิดพลาดหน่วยความจำไม่เพียงพอ และไม่แนะนำให้ใช้ เว้นแต่ขอบเขตของเซสชันจะถูกจำกัดให้ดำเนินการเพียงเล็กน้อยเท่านั้น