Contrôle la façon dont les ressources TensorFlow sont nettoyées lorsqu'elles ne sont plus nécessaires.
Toutes les ressources allouées au cours d' une EagerSession
sont supprimés lorsque la session est fermée. Pour éviter les erreurs de mémoire insuffisante, il est également fortement suggéré de nettoyer ces ressources pendant la session. Par exemple, exécuter n opérations dans une boucle de m itérations allouera un minimum de n*m ressources alors que dans la plupart des cas, seules les ressources de la dernière itération sont encore utilisées.
EagerSession
instances peuvent être informés de différentes manières lorsque des objets tensorflow ne sont plus visés, afin qu'ils puissent procéder au nettoyage de toutes les ressources qu'ils possédaient.
Méthodes héritées
Valeurs d'énumération
public static final EagerSession.ResourceCleanupStrategy IN_BACKGROUND
Surveillez et supprimez les ressources inutilisées d'un nouveau thread exécuté en arrière-plan.
Il s'agit de l'approche la plus fiable pour nettoyer les ressources TensorFlow, au prix du démarrage et de l'exécution d'un thread supplémentaire dédié à cette tâche. Chaque EagerSession
instance possède son propre fil, qui est arrêté que lorsque la session est fermée.
Cette stratégie est utilisée par défaut.
public static final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Surveillez et supprimez les ressources inutilisées des threads existants, avant ou après avoir terminé une autre tâche.
Les ressources inutilisées sont libérées lorsqu'un appel à la bibliothèque TensorFlow atteint un point sûr pour le nettoyage. Cela se fait de manière synchrone et peut bloquer pendant une courte période le thread qui a déclenché cet appel.
Cette stratégie ne doit être utilisée que si, pour certaines raisons, aucun thread supplémentaire ne doit être alloué pour le nettoyage. Dans le cas contraire, IN_BACKGROUND
doit être préférée.
public static final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Ne supprimez les ressources que lorsque la session est fermée.
Toutes les ressources allouées pendant la session resteront en mémoire jusqu'à ce que la session soit explicitement fermée (ou via la technique traditionnelle "try-with-resource"). Aucune tâche supplémentaire pour le nettoyage des ressources ne sera tentée.
Cette stratégie peut conduire à des erreurs de mémoire insuffisante et son utilisation n'est pas recommandée, sauf si la portée de la session est limitée à l'exécution d'un petit nombre d'opérations.