Contrôle la façon dont les ressources TensorFlow sont nettoyées lorsqu'elles ne sont plus nécessaires.
Toutes les ressources allouées lors d'une EagerSession
sont supprimées à la fermeture de la session. 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.
Les instances EagerSession
peuvent être notifiées de différentes manières lorsque les objets TensorFlow ne sont plus référencés, afin qu'elles puissent procéder au nettoyage de toutes les ressources qu'elles possédaient.
Méthodes héritées
Valeurs d'énumération
public statique 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 instance EagerSession
possède son propre thread, qui est arrêté uniquement à la fermeture de la session.
Cette stratégie est utilisée par défaut.
public statique final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Surveillez et supprimez les ressources inutilisées des threads existants, avant ou après qu'ils aient 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. Sinon, IN_BACKGROUND
doit être préféré.
public statique final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Supprimez les ressources uniquement 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 de nettoyage des ressources ne sera tentée.
Cette stratégie peut entraîner des erreurs de mémoire insuffisante et son utilisation n'est pas recommandée, à moins que la portée de la session ne soit limitée à l'exécution d'un petit nombre d'opérations.