Kiểm soát cách tài nguyên TensorFlow được dọn dẹp khi chúng không còn cần thiết.
Tất cả các nguồn lực được phân bổ trong một EagerSession
sẽ bị xóa khi phiên giao dịch kết thúc. Để tránh lỗi hết bộ nhớ, bạn cũng nên dọn dẹp các tài nguyên đó trong suốt phiên làm việc. Ví dụ: thực hiện n thao tác trong một vòng lặp gồm m lần lặp sẽ cấp phát tối thiểu n * m tài nguyên trong khi trong hầu hết các trường hợp, chỉ tài nguyên của lần lặp cuối cùng vẫn được sử dụng.
EagerSession
trường hợp có thể được thông báo bằng nhiều cách khác nhau khi đối tượng TensorFlow không còn được gọi, vì vậy họ có thể tiến hành việc dọn dẹp của bất kỳ tài nguyên mà họ sở hữu.
Phương thức kế thừa
Giá trị Enum
public static thức EagerSession.ResourceCleanupStrategy IN_BACKGROUND
Theo dõi và xóa các tài nguyên không sử dụng khỏi một chuỗi mới đang chạy ở chế độ nền.
Đây là cách tiếp cận đáng tin cậy nhất để dọn dẹp tài nguyên TensorFlow, với chi phí bắt đầu và chạy một luồng bổ sung dành riêng cho nhiệm vụ này. Mỗi EagerSession
dụ có chủ đề riêng của mình, mà là dừng lại chỉ khi phiên giao dịch kết thúc.
Chiến lược này được sử dụng theo mặc định.
public static thức EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Theo dõi và xóa các tài nguyên không sử dụng khỏi các luồng hiện có, trước hoặc sau khi chúng hoàn thành một tác vụ khác.
Các tài nguyên không sử dụng được giải phóng khi lệnh gọi đến thư viện TensorFlow đạt đến điểm an toàn để dọn dẹp. Điều này được thực hiện đồng bộ và có thể chặn trong một khoảng thời gian ngắn chuỗi người đã kích hoạt cuộc gọi đó.
Chiến lược này chỉ nên được sử dụng nếu, vì một số lý do, không có luồng bổ sung nào được phân bổ để dọn dẹp. Nếu không, IN_BACKGROUND
nên được ưa thích.
public static thức EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Chỉ xóa tài nguyên khi phiên đóng cửa.
Tất cả các tài nguyên được phân bổ trong phiên sẽ vẫn còn trong bộ nhớ cho đến khi phiên được đóng một cách rõ ràng (hoặc thông qua kỹ thuật truyền thống `thử-với-tài nguyên`). Sẽ không có tác vụ bổ sung nào để dọn dẹp tài nguyên.
Chiến lược này có thể dẫn đến lỗi hết bộ nhớ và việc sử dụng nó không được khuyến khích, trừ khi phạm vi của phiên bị giới hạn để chỉ thực thi một lượng nhỏ hoạt động.