Warnung: Diese API ist veraltet und wird in einer zukünftigen Version von TensorFlow entfernt, nachdem der Ersatz stabil ist.

EagerSession.ResourceCleanupStrategy

public static final enum EagerSession.ResourceCleanupStrategy

Steuert, wie TensorFlow-Ressourcen bereinigt werden, wenn sie nicht mehr benötigt werden.

Alle während einer EagerSession zugewiesenen Ressourcen werden beim EagerSession der Sitzung gelöscht. Um Speicherfehler zu vermeiden, wird dringend empfohlen, diese Ressourcen während der Sitzung zu bereinigen. Wenn Sie beispielsweise n Operationen in einer Schleife von m Iterationen ausführen, werden mindestens n * m Ressourcen zugewiesen, während in den meisten Fällen nur noch Ressourcen der letzten Iteration verwendet werden.

EagerSession Instanzen können auf unterschiedliche Weise benachrichtigt werden, wenn TensorFlow-Objekte nicht mehr EagerSession werden, sodass sie mit der Bereinigung aller Ressourcen fortfahren können, deren Eigentümer sie sind.

Vererbte Methoden

Enum-Werte

public static final EagerSession.ResourceCleanupStrategy IN_BACKGROUND

Überwachen und löschen Sie nicht verwendete Ressourcen aus einem neuen Thread, der im Hintergrund ausgeführt wird.

Dies ist der zuverlässigste Ansatz zum Bereinigen von TensorFlow-Ressourcen auf Kosten des Startens und Ausführens eines zusätzlichen Threads für diese Aufgabe. Jede EagerSession Instanz verfügt über einen eigenen Thread, der nur gestoppt wird, wenn die Sitzung geschlossen wird.

Diese Strategie wird standardmäßig verwendet.

public static final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS

Überwachen und löschen Sie nicht verwendete Ressourcen aus vorhandenen Threads, bevor oder nachdem sie eine andere Aufgabe abgeschlossen haben.

Nicht verwendete Ressourcen werden freigegeben, wenn ein Aufruf der TensorFlow-Bibliothek einen sicheren Punkt für die Bereinigung erreicht. Dies erfolgt synchron und blockiert möglicherweise für kurze Zeit den Thread, der diesen Aufruf ausgelöst hat.

Diese Strategie sollte nur verwendet werden, wenn aus bestimmten Gründen kein zusätzlicher Thread für die Bereinigung zugewiesen werden sollte. Andernfalls sollte IN_BACKGROUND bevorzugt werden.

public static final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE

Löschen Sie Ressourcen nur, wenn die Sitzung geschlossen ist.

Alle während der Sitzung zugewiesenen Ressourcen bleiben im Speicher, bis die Sitzung explizit geschlossen wird (oder über die traditionelle "Try-with-Resource" -Technik). Es wird keine zusätzliche Aufgabe für die Ressourcenbereinigung versucht.

Diese Strategie kann zu Fehlern aufgrund von Speichermangel führen, und ihre Verwendung wird nicht empfohlen, es sei denn, der Umfang der Sitzung ist auf die Ausführung nur einer kleinen Anzahl von Vorgängen beschränkt.