TensorFlow-Diagramm wird normalerweise schrittweise von Eingängen zu Ausgängen aufgebaut und dann ausgeführt. Mit Blick auf den Python-Code sind die Eingabelisten von Operationen unveränderlich, was darauf hindeutet, dass die Eingaben nicht modifiziert werden sollten. Bedeutet das, dass es keine Möglichkeit gibt, ein vorhandenes Diagramm zu aktualisieren/zu modifizieren?Kann ein vorhandenes TensorFlow-Berechnungsdiagramm geändert werden?
Antwort
Die TensorFlow tf.Graph
-Klasse ist eine append-only Datenstruktur, was bedeutet, dass Sie Knoten des Graphen, nachdem ein Teil des Graphen Ausführung hinzufügen können, aber Sie können vorhandene Knoten nicht entfernen oder ändern. Da TensorFlow beim Aufruf von Session.run()
nur den erforderlichen Untergraphen ausführt, entstehen für die redundanten Knoten im Diagramm keine Kosten für die Ausführungszeit (obwohl sie weiterhin Speicher belegen).
alle Knoten des Graphen zu entfernen, eine Sitzung mit einem neuen Diagramm erstellen:
with tf.Graph().as_default(): # Create a new graph, and make it the default.
with tf.Session() as sess: # `sess` will use the new, currently empty, graph.
# Build graph and execute nodes in here.
Ja, tf.Graph
bauen sind in einer Append-only Mode als @mrry es ausdrückt.
Aber es gibt Abhilfe:
Konzeptionell können Sie ein vorhandenes Diagramm ändern, indem es das Klonen und die Änderungen auf dem Weg benötigt auszuführen. Ab Version 1.1 bietet Tensorflow ein Modul namens tf.contrib.graph_editor
, das die obige Idee als eine Reihe von praktischen Funktionen implementiert.
Schade, dass die Dokumentation in Bezug auf diese Methoden schlecht ist –
- 1. Kann TWTweetComposeViewController geändert werden?
- 2. kann initializer_list container geändert werden?
- 3. Wie kann ein Computertyp in Google Compute Engine geändert werden?
- 4. Was bedeutet ein Zeigerindex und wie kann er geändert werden?
- 5. Wie kann ein Mercurial-Repository in ein bereits vorhandenes Verzeichnis geklont werden?
- 6. Konstante Eigenschaft kann während der Initialisierung geändert werden? GEÄNDERT? Was?
- 7. Permalink kann nicht geändert werden (URL kann nicht in WordPress geändert werden)
- 8. Kann das Passwort über cfldap geändert werden?
- 9. Größe kann nicht geändert werden mit
- 10. Kann P4TICKET in P4Eclipse geändert werden?
- 11. Kann die Suchmethode in LINQ geändert werden?
- 12. Kann localStorage von einem Client geändert werden?
- 13. Kann die Farbe eines Optionsfelds geändert werden?
- 14. Kann nicht geändert werden/Inhalt der Annotation
- 15. Blockgröße kann in BorderLayout nicht geändert werden
- 16. Kann Aktionsklasse in Yii2 geändert werden?
- 17. Warum kann "this" nicht geändert werden?
- 18. Wie kann die Template-Instanziierungsreihenfolge geändert werden?
- 19. Kann die Steuerungscode-Generierungsvorlage geändert werden?
- 20. Kann die Verzögerungsrate von UIScrollView geändert werden?
- 21. Wie kann synthetisierte Sprachsprache UWP geändert werden?
- 22. Kann Edelsteinquellen für Chef-Klient geändert werden?
- 23. Jetty HttpServletResponse kann nicht geändert werden
- 24. Cordova WebView kann nicht geändert werden
- 25. Wie kann LD_LIBRARY_PATH in CMake geändert werden?
- 26. Highcharts Titel Hintergrund kann nicht geändert werden
- 27. Wie man ein vorhandenes Diagramm dynamisiert
- 28. Warum kann ich ein vorhandenes Projekt nicht in Eclipse importieren?
- 29. Wie kann ich einfach ein vorhandenes Realm-Objekt duplizieren/kopieren
- 30. spielen Framework kann ein vorhandenes Projekt nicht ausführen
"obwohl sie weiterhin Speicher verbrauchen werden" - wird dieser Speicher freigegeben, wenn die Sitzung von der Python-Laufzeit durch Garbage Collection erfasst wird? –