ควบคุมวิธีการล้างทรัพยากร 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
ลบทรัพยากรเมื่อปิดเซสชั่นเท่านั้น
ทรัพยากรทั้งหมดที่จัดสรรระหว่างเซสชันจะยังคงอยู่ในหน่วยความจำจนกว่าเซสชันจะถูกปิดอย่างชัดเจน (หรือผ่านเทคนิค `ลองใช้ทรัพยากร` แบบดั้งเดิม) จะไม่มีความพยายามเพิ่มเติมสำหรับการล้างทรัพยากร
กลยุทธ์นี้อาจนำไปสู่ข้อผิดพลาดหน่วยความจำไม่เพียงพอ และไม่แนะนำให้ใช้ เว้นแต่ขอบเขตของเซสชันจะถูกจำกัดให้ดำเนินการเพียงเล็กน้อยเท่านั้น