EagerSession.ResourceCleanupStrategy

공개 정적 최종 열거형 EagerSession.ResourceCleanupStrategy

TensorFlow 리소스가 더 이상 필요하지 않을 때 정리하는 방법을 제어합니다.

EagerSession 중에 할당된 모든 리소스는 세션이 닫힐 때 삭제됩니다. 메모리 부족 오류를 방지하려면 세션 중에 해당 리소스를 정리하는 것이 좋습니다. 예를 들어, 반복 반복 루프에서 n 작업을 실행하면 최소 n*m 리소스가 할당되지만 대부분의 경우 마지막 반복의 리소스만 계속 사용됩니다.

EagerSession 인스턴스는 TensorFlow 객체가 더 이상 참조되지 않을 때 다양한 방식으로 알림을 받을 수 있으므로 소유한 모든 리소스를 정리할 수 있습니다.

상속된 메서드

열거형 값

공개 정적 최종 EagerSession.ResourceCleanupStrategy IN_BACKGROUND

백그라운드에서 실행되는 새 스레드에서 사용되지 않는 리소스를 모니터링하고 삭제합니다.

이는 이 작업 전용 스레드를 추가로 시작하고 실행하는 비용으로 TensorFlow 리소스를 정리하는 가장 안정적인 접근 방식입니다. 각 EagerSession 인스턴스에는 세션이 닫힐 때만 중지되는 자체 스레드가 있습니다.

이 전략은 기본적으로 사용됩니다.

공개 정적 최종 EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS

다른 작업을 완료하기 전이나 후에 기존 스레드에서 사용되지 않는 리소스를 모니터링하고 삭제합니다.

TensorFlow 라이브러리에 대한 호출이 정리를 위한 안전한 지점에 도달하면 사용되지 않은 리소스가 해제됩니다. 이는 동기적으로 수행되며 해당 호출을 트리거한 스레드를 짧은 시간 동안 차단할 수 있습니다.

이 전략은 어떤 ​​이유로 인해 정리를 위해 추가 스레드를 할당하지 말아야 하는 경우에만 사용해야 합니다. 그렇지 않으면 IN_BACKGROUND 선호됩니다.

공개 정적 최종 EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE

세션이 닫힐 때만 리소스를 삭제하세요.

세션 중에 할당된 모든 리소스는 세션이 명시적으로 닫힐 때까지(또는 전통적인 'try-with-resource' 기술을 통해) 메모리에 유지됩니다. 리소스 정리를 위한 추가 작업은 시도되지 않습니다.

이 전략은 메모리 부족 오류로 이어질 수 있으므로 세션 범위가 소량의 작업만 실행하도록 제한되지 않는 한 사용하지 않는 것이 좋습니다.