Ich werde den Code aus verschiedenen Gründen nicht veröffentlichen.
tf.keras. *
Um MNIST-Daten zu erhaltentf.nn. *
, Tf.train. *
, Tf. *
Und hier ist der Code, auf dem CNN ausgeführt wird.
Für die wichtigsten Änderungen von Tensorflow 1 zu 2 [hier](https://data-analysis-stats.jp/%E6%B7%B1%E5%B1%9E%E5%AD%A6%E7% Ich habe verschiedene Artikel gesehen, wie BF% 92 / Tensorflow-2-0-% E4% B8% BB% E3% 81% AA% E5% A4% 89% E6% 9B% B4% E7% 82% B9 /) Diejenigen, die einen direkten Einfluss auf den Betrieb von CNN hatten, waren jedoch:
Standard für eifrige Ausführung
Abschaffung der Sitzung und des Platzhalters
Abhängig von der Implementierung des CNN gibt es möglicherweise andere Optionen. Bitte verzeihen Sie diesen Punkt.
Es scheint die folgenden drei Möglichkeiten zu geben, um die CNN von 1 Systemnotation in 2 Systemen zu verschieben (ändern Sie den Code dafür).
Es ist keine kluge Methode, aber wenn es nur wenige Änderungen gibt, denke ich, ist es möglich, die relevanten Teile stetig neu zu schreiben. Hier sind die Änderungen, die erforderlich sind, damit das CNN funktioniert:
Fügen Sie unmittelbar nach dem Importieren von Tensorflow als tf Folgendes hinzu, um die Eager-Ausführung zu deaktivieren.
tf.compat.v1.disable_eager_execution()
Ändern Sie die API entsprechend der Spalte ** '1 Serie' ** im Code wie in ** '2 Serie' ** beschrieben.
# | 1 System | 2 System |
---|---|---|
1 | tf.placeholder | tf **.compat.v1.**placeholder |
2 | tf.random_uniform | tf.random.uniform |
3 | tf.add_to_collection | tf **.compat.v1.**add_to_collection |
4 | tf.get_collection('costs') | tf **.compat.v1.**get_collection |
5 | tf.train.AdamOptimizer | tf **.compat.v1.**train.AdamOptimizer |
6 | tf.Session() | tf **.compat.v1.**Session() |
Einige, wie ** # 2 **, haben nicht einfach compatible.v1
hinzugefügt.
Weitere APIs als die oben genannten, für die das Hinzufügen von "compatible.v1" erforderlich ist, finden Sie unter Tensorflow-Modul: tf.compat.v1. Siehe.
Es scheint eine Möglichkeit zu geben, den Code mithilfe des Aktualisierungsskripts in die Systemnotation 2 zu konvertieren. Dies erfolgt unter Automatisches Aktualisieren des Codes auf TensorFlow 2. .. Ich denke, dass es sicherer ist als die manuelle Konvertierung von 1, aber es gibt eine Beschreibung, dass einige Teile manuell konvertiert werden müssen, so dass es scheint, dass es nicht vollautomatisch ist.
Laut TensorFlow1-Code nach TensorFlow2 migrieren Tensorflow-Importanweisung
import tensorflow as tf
Zu
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Es scheint, dass der Code der 1-Systemnotation ausgeführt werden kann, indem dies wie folgt geändert wird, um das Verhalten des 2-Systems ungültig zu machen. (Ich konnte die Ausführung in meinem Code bestätigen)
Ich würde mich sehr freuen, wenn es auf drei Arten funktioniert. Ich habe Methode 3 gefunden, nachdem ich 1 gemacht habe, also habe ich dies geschrieben, damit niemand herauskommt. Ich möchte mich immer mehr an Tensorflow gewöhnen.
Recommended Posts