Ich würde vorschlagen, die offizielle Getting Started with TensorFlow Führung von TensorFlow liest die grundlegenden Konzepte der Bibliothek kennen zu lernen, wie die, die das Problem hier zu sein scheinen:
Jeden TensorFlow Programm besteht aus zwei Teilen:
- Erstellen des Computergraphen.
- Ausführen des Berechnungsgraphen.
Nun, was ist ein "Computational Graph"? In TensorFlow geben Sie eine Reihe von Operationen an, die auf Ihrer Eingabe ausgeführt werden. Diese Reihe von Operationen ist Ihr "Berechnungsgraph". Um das zu verstehen, an einigen Beispielen sehen sie sich:
Einfacher Zusatz: Lassen Sie sich bei Ihrem Beispiel aussieht, Ihr Code ist
const1 = tf.constant(2)
const2 = tf.constant(3)
add_op = tf.add(const1,const2)
Dies schafft zwei konstante Knoten des Graphen, und erzeugt einen zweiten Knoten was fügt sie hinzu. Grafisch dies wie folgt aussieht:
es ein wenig komplizierter zu machen, können sagen, Sie haben einen Eingang x
und wollen eine konstante 3
, um es hinzuzufügen. Dann würde der Code sein:
const1 = tf.constant(2)
x = tf.placeholder(tf.float32)
add_op = tf.add(const1,x)
und Ihr Diagramm ist
In beiden Beispielen war dies der erste Teil des Programms. Bisher haben wir nur definiert, wie unser Berechnungsdiagramm aussehen sollte, d. H. Welche Eingaben wir haben, welche Ausgaben und alle erforderlichen Berechnungen.
Aber: keine Berechnungen wurden bisher gemacht! Im zweiten Beispiel wissen Sie nicht einmal, was Ihre Eingabe x
ist - nur dass es eine float32
sein wird. Wenn Sie eine GPU haben, werden Sie feststellen, dass TensorFlow noch nicht einmal die GPU berührt hat.Selbst wenn Sie ein riesiges neuronales Netzwerk mit Millionen von Trainingsbildern haben, läuft dieser Schritt in Millisekunden, da keine "echte" Arbeit geleistet werden muss.
Jetzt kommt Teil zwei: läuft die Grafik, die wir oben definiert haben. Hier passiert die Arbeit! Wir feuern TensorFlow durch Erstellen einer tf.Session
, und dann können wir alles durch den Aufruf sess.run()
ausführen.
with tf.Session() as sess:
result = sess.run(add_op)
print(result)
Im zweiten Beispiel, müssen wir jetzt sagen TensorFlow was x
unser Wert sein sollte:
with tf.Session() as sess:
result = sess.run(add_op, {x: 5.0})
print(result)
tl; dr: jedes TensorFlow Programm besteht aus zwei Teilen: 1. ein rechnerischen Aufbau Diagramm und 2. Ausführen dieses Diagramms. Mit tf.add
definieren Sie nur die Grafik, aber noch keine Addition. Um dieses Diagramm auszuführen, verwenden Sie sess.run()
wie in Ihrem ersten Stückcode.
thx !! Ihre Antwort ist sehr gut für mich, es kann sehr gut verständlich sein.Ich habe eine Frage, kann ich tf.Session-Methode aufrufen ist Aktivierungsfunktion? Ich lese Tensorflow-Tutorial, aber ich kann diesen Teil nicht gut verstehen. – user21063