Kontroluje sposób czyszczenia zasobów TensorFlow, gdy nie są już potrzebne.
Wszystkie zasoby przydzielone podczas EagerSession
są usuwane po zamknięciu sesji. Aby zapobiec błędom braku pamięci, zdecydowanie zaleca się również czyszczenie tych zasobów podczas sesji. Na przykład wykonanie n operacji w pętli m iteracji przydzieli minimum n * m zasobów, podczas gdy w większości przypadków nadal używane są tylko zasoby z ostatniej iteracji.
Instancje EagerSession
mogą być powiadamiane na różne sposoby, gdy obiekty TensorFlow nie są już odwoływane, dzięki czemu mogą przystąpić do czyszczenia wszelkich posiadanych zasobów.
Dziedziczone metody
Wartości wyliczeniowe
public static final EagerSession.ResourceCleanupStrategy IN_BACKGROUND
Monitoruj i usuwaj nieużywane zasoby z nowego wątku działającego w tle.
Jest to najbardziej niezawodne podejście do czyszczenia zasobów TensorFlow kosztem uruchomienia i uruchomienia dodatkowego wątku dedykowanego temu zadaniu. Każda instancja EagerSession
ma swój własny wątek, który jest zatrzymywany dopiero po zamknięciu sesji.
Ta strategia jest używana domyślnie.
public static final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Monitoruj i usuwaj nieużywane zasoby z istniejących wątków, przed lub po wykonaniu innego zadania.
Nieużywane zasoby są zwalniane, gdy wywołanie biblioteki TensorFlow osiągnie bezpieczny punkt czyszczenia. Odbywa się to synchronicznie i może na krótki czas zablokować wątek, który wyzwolił to wywołanie.
Tej strategii należy używać tylko wtedy, gdy z jakichś powodów nie należy przydzielać dodatkowego wątku do czyszczenia. W przeciwnym razie IN_BACKGROUND
powinno być IN_BACKGROUND
.
public static final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Usuwaj zasoby tylko wtedy, gdy sesja jest zamknięta.
Wszystkie zasoby przydzielone podczas sesji pozostaną w pamięci, dopóki sesja nie zostanie jawnie zamknięta (lub za pomocą tradycyjnej techniki „spróbuj z zasobem”). Nie będzie podejmowane żadne dodatkowe zadanie czyszczenia zasobów.
Ta strategia może prowadzić do błędów braku pamięci i jej użycie nie jest zalecane, chyba że zakres sesji jest ograniczony do wykonywania tylko niewielkiej liczby operacji.