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