ควบคุมวิธีการล้างทรัพยากร TensorFlow เมื่อไม่ต้องการใช้อีกต่อไป
จัดสรรทรัพยากรทั้งหมดในระหว่างการ EagerSession
จะถูกลบออกเมื่อช่วงปิด เพื่อป้องกันข้อผิดพลาดหน่วยความจำไม่เพียงพอ ขอแนะนำอย่างยิ่งให้ล้างข้อมูลทรัพยากรเหล่านั้นในระหว่างเซสชัน ตัวอย่างเช่น การดำเนินการ n รายการในลูปของการวนซ้ำ m ครั้งจะจัดสรรทรัพยากรขั้นต่ำ n*m ทรัพยากร ในขณะที่ในกรณีส่วนใหญ่ ยังคงใช้เฉพาะทรัพยากรของการวนซ้ำครั้งล่าสุดเท่านั้น
EagerSession
กรณีสามารถได้รับแจ้งในรูปแบบที่แตกต่างกันเมื่อวัตถุ TensorFlow จะไม่ถูกเรียกเพื่อให้พวกเขาสามารถดำเนินการทำความสะอาดของทรัพยากรใดที่พวกเขาเป็นเจ้าของ
วิธีการสืบทอด
ค่า Enum
สาธารณะคงสุดท้าย EagerSession.ResourceCleanupStrategy IN_BACKGROUND
ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดใหม่ที่ทำงานอยู่เบื้องหลัง
นี่เป็นแนวทางที่เชื่อถือได้มากที่สุดในการล้างทรัพยากร TensorFlow โดยเสียค่าใช้จ่ายในการเริ่มต้นและเรียกใช้เธรดเพิ่มเติมสำหรับงานนี้โดยเฉพาะ แต่ละ EagerSession
เช่นมีหัวข้อของตัวเองซึ่งจะหยุดการทำงานเฉพาะเมื่อเซสชั่นถูกปิด
กลยุทธ์นี้ถูกใช้โดยค่าเริ่มต้น
สาธารณะคงสุดท้าย EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดที่มีอยู่ ก่อนหรือหลังจากที่ทำงานอื่นให้เสร็จสิ้น
ทรัพยากรที่ไม่ได้ใช้จะถูกปล่อยเมื่อมีการเรียกไปยังไลบรารี TensorFlow ถึงจุดที่ปลอดภัยสำหรับการล้างข้อมูล สิ่งนี้ทำพร้อมกันและอาจบล็อกเธรดที่เรียกการโทรนั้นในช่วงเวลาสั้น ๆ
ควรใช้กลยุทธ์นี้เฉพาะในกรณีที่ไม่ควรจัดสรรเธรดเพิ่มเติมสำหรับการล้างข้อมูลด้วยเหตุผลบางประการ มิฉะนั้น IN_BACKGROUND
ควรเป็นที่ต้องการ
สาธารณะคงสุดท้าย EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
ลบทรัพยากรเมื่อปิดเซสชันเท่านั้น
ทรัพยากรทั้งหมดที่จัดสรรระหว่างเซสชันจะยังคงอยู่ในหน่วยความจำจนกว่าเซสชันจะปิดอย่างชัดแจ้ง (หรือผ่านเทคนิค "ลองด้วยทรัพยากร" แบบเดิม) จะไม่มีงานเพิ่มเติมสำหรับการล้างทรัพยากร
กลยุทธ์นี้อาจนำไปสู่ข้อผิดพลาดหน่วยความจำไม่เพียงพอและไม่แนะนำให้ใช้ เว้นแต่ขอบเขตของเซสชันจะจำกัดให้ดำเนินการเพียงเล็กน้อยเท่านั้น