ควบคุมวิธีการล้างทรัพยากร TensorFlow เมื่อไม่จำเป็นต้องใช้อีกต่อไป
ทรัพยากรทั้งหมดที่จัดสรรระหว่าง EagerSession
จะถูกลบเมื่อปิดเซสชัน เพื่อป้องกันข้อผิดพลาดหน่วยความจำไม่เพียงพอ ขอแนะนำอย่างยิ่งให้ล้างข้อมูลทรัพยากรเหล่านั้นในระหว่างเซสชัน ตัวอย่างเช่น การดำเนินการ n การดำเนินการในการวนซ้ำ m จะจัดสรรทรัพยากรขั้นต่ำ n*m ในขณะที่ในกรณีส่วนใหญ่ ยังคงใช้เฉพาะทรัพยากรของการวนซ้ำครั้งล่าสุดเท่านั้น
อินส EagerSession
สามารถแจ้งเตือนได้หลายวิธีเมื่อไม่มีการอ้างอิงอ็อบเจ็กต์ TensorFlow อีกต่อไป เพื่อให้สามารถดำเนินการล้างทรัพยากรใดๆ ที่ตนเป็นเจ้าของได้
วิธีการสืบทอด
int สุดท้าย | เปรียบเทียบถึง (E arg0) |
ภายใน | เปรียบเทียบถึง (วัตถุ arg0) |
บูลีนสุดท้าย | เท่ากับ (วัตถุ arg0) |
คลาสสุดท้าย<E> | getDeclaringClass () |
int สุดท้าย | แฮชโค้ด () |
สตริงสุดท้าย | ชื่อ () |
int สุดท้าย | ลำดับ () |
สตริง | toString () |
คงที่ <T ขยาย Enum <T>> T | valueOf (คลาส <T> arg0, สตริง arg1) |
บูลีน | เท่ากับ (วัตถุ arg0) |
คลาสสุดท้าย<?> | รับคลาส () |
ภายใน | แฮชโค้ด () |
โมฆะสุดท้าย | แจ้ง () |
โมฆะสุดท้าย | แจ้งทั้งหมด () |
สตริง | toString () |
โมฆะสุดท้าย | รอสักครู่ (ยาว arg0, int arg1) |
โมฆะสุดท้าย | รอ (ยาว arg0) |
โมฆะสุดท้าย | รอ () |
บทคัดย่อ | CompareTo (E ขยาย Enum<E> arg0) |
ค่าแจงนับ
EagerSession.ResourceCleanupStrategy สุดท้ายแบบคงที่สาธารณะ IN_BACKGROUND
ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดใหม่ที่ทำงานในเบื้องหลัง
นี่เป็นแนวทางที่เชื่อถือได้มากที่สุดในการล้างทรัพยากร TensorFlow โดยมีค่าใช้จ่ายในการเริ่มต้นและเรียกใช้เธรดเพิ่มเติมสำหรับงานนี้โดยเฉพาะ EagerSession
แต่ละอินสแตนซ์มีเธรดของตัวเอง ซึ่งจะหยุดเฉพาะเมื่อปิดเซสชันเท่านั้น
กลยุทธ์นี้ถูกใช้เป็นค่าเริ่มต้น
EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS สุดท้ายแบบคงที่สาธารณะ
ตรวจสอบและลบทรัพยากรที่ไม่ได้ใช้ออกจากเธรดที่มีอยู่ ก่อนหรือหลังเสร็จสิ้นงานอื่น
ทรัพยากรที่ไม่ได้ใช้จะถูกปล่อยออกมาเมื่อมีการเรียกไปยังไลบรารี TensorFlow ถึงจุดที่ปลอดภัยสำหรับการล้างข้อมูล ซึ่งดำเนินการพร้อมกันและอาจบล็อกเธรดที่เรียกใช้การโทรนั้นในช่วงเวลาสั้นๆ
ควรใช้กลยุทธ์นี้เฉพาะเมื่อ ด้วยเหตุผลบางประการ ไม่ควรจัดสรรเธรดเพิ่มเติมสำหรับการล้างข้อมูล มิฉะนั้น ควรเลือกใช้ IN_BACKGROUND
EagerSession.ResourceCleanupStrategy สุดท้ายแบบคงที่สาธารณะ ON_SESSION_CLOSE
ลบทรัพยากรเมื่อปิดเซสชั่นเท่านั้น
ทรัพยากรทั้งหมดที่จัดสรรระหว่างเซสชันจะยังคงอยู่ในหน่วยความจำจนกว่าเซสชันจะถูกปิดอย่างชัดเจน (หรือผ่านเทคนิค `ลองใช้ทรัพยากร` แบบดั้งเดิม) จะไม่มีความพยายามเพิ่มเติมสำหรับการล้างทรัพยากร
กลยุทธ์นี้อาจนำไปสู่ข้อผิดพลาดหน่วยความจำไม่เพียงพอ และไม่แนะนำให้ใช้ เว้นแต่ขอบเขตของเซสชันจะถูกจำกัดให้ดำเนินการเพียงเล็กน้อยเท่านั้น