Kontroluje sposób czyszczenia zasobów TensorFlow, gdy nie są już potrzebne.
Wszystkie zasoby przydzielone podczas sesji EagerSession
są usuwane po zamknięciu sesji. Aby zapobiec błędom związanym z brakiem pamięci, zdecydowanie zaleca się czyszczenie tych zasobów podczas sesji. Na przykład wykonanie n operacji w pętli iteracji spowoduje alokację co najmniej n*m zasobów, podczas gdy w większości przypadków nadal używane są tylko zasoby z ostatniej iteracji.
Instancje EagerSession
można powiadamiać na różne sposoby, gdy obiekty TensorFlow nie są już odwoływane, dzięki czemu mogą przystąpić do czyszczenia wszelkich posiadanych zasobów.
Metody dziedziczone
Wartości wyliczeniowe
publiczny statyczny końcowy 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
posiada własny wątek, który zostaje zatrzymany dopiero po zamknięciu sesji.
Ta strategia jest używana domyślnie.
publiczny statyczny końcowy EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Monitoruj i usuwaj nieużywane zasoby z istniejących wątków przed lub po wykonaniu przez nie innego zadania.
Niewykorzystane zasoby są zwalniane, gdy wywołanie biblioteki TensorFlow osiągnie bezpieczny punkt do oczyszczenia. Odbywa się to synchronicznie i może zablokować na krótki czas 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 preferowane powinno być IN_BACKGROUND
.
publiczny statyczny końcowy EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Usuń zasoby tylko wtedy, gdy sesja jest zamknięta.
Wszystkie zasoby przydzielone podczas sesji pozostaną w pamięci do czasu jawnego zamknięcia sesji (lub za pomocą tradycyjnej techniki „spróbuj z zasobami”). Nie zostanie podjęta żadna dodatkowa próba oczyszczenia zasobów.
Strategia ta może prowadzić do błędów związanych z brakiem pamięci i jej użycie nie jest zalecane, chyba że zakres sesji jest ograniczony do wykonania jedynie niewielkiej liczby operacji.