Ich werde Erste Schritte mit TensorFlow auf der offiziellen Seite versuchen und die Punkte erläutern. Nachdem Sie diesen Inhalt verstanden haben, ist es schnell zu verstehen, ob Sie das Tutorial von "[Erklärung für Anfänger] TensorFlow-Tutorial MNIST (für Anfänger)" ausführen. Es war unscharf).
- TensorFlow unter Windows Easy für Python-Anfänger installieren
- [Erklärung für Anfänger] TensorFlow-Tutorial MNIST (für Anfänger)
- TensorFlow Tutorial MNIST (für Anfänger) mit TensorBoard visualisiert
- TensorFlow API-Memo
- [Einführung in TensorBoard] Visualisieren Sie die TensorFlow-Verarbeitung, um das Verständnis zu vertiefen
- [Einführung in TensorBoard: image] TensorFlow Visualisieren Sie die Bildverarbeitung, um das Verständnis zu vertiefen
- [Einführung in TensorBoard: Projector] Lassen Sie die TensorFlow-Verarbeitung cool aussehen
- [Erklärung für Anfänger] TensorFlow-Tutorial Deep MNIST
- Yuki Kashiwagis Gesichtszüge zum Verständnis von TensorFlow [Teil 1]
TensorFlow Dies ist eine Open-Source-Bibliothek, die von Google für maschinelles Lernen erstellt wurde. TensorFlows ** "Tensor" ist einfach ein mehrdimensionales Array ** (ein allgemeiner Begriff, nicht Google-spezifisch). Weitere Informationen zu Tensor finden Sie unter Tensole, die Sie vor dem Starten von TensorFlow kennen sollten (Ergänzung: Zu allgemeineren Themen). Der Artikel ist großartig. TensorFlow ist eine Bibliothek, die gut mit diesem Tensor umgehen kann. Und wir nutzen CPU und GPU optimal, um das maschinelle Lernen zu optimieren. Wenn Sie beispielsweise das Deep Learning-Lernprogramm von MNIST auf einem 2-Core-PC ausführen, wird die CPU fast sofort aufgebraucht, wie in der folgenden Abbildung dargestellt.
Ich werde das Konzept anhand der grundlegenden Syntax von TensorFlow erläutern.
Computational Graph TensorFlow basiert auf dem Konzept von Computational Graph. Befehle werden in zwei Kategorien unterteilt: Erstellen und Ausführen von Computational Graph.
Wenn Sie beispielsweise zwei Konstanten definieren und ausgeben, sieht dies in der Sprache C wie folgt aus (es kann ein wenig anders sein, weil es sich um einen alten Speicher handelt, aber fühlen Sie sich so. ).
const double node1 = 3.0;
const double node2 = 4.0;
printf("%f, %f", node1, node2);
Wenn Sie es in TensorFlow schreiben, als wäre es eine normale Sprache, sieht es wie folgt aus.
node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0) # also tf.float32 implicitly
print(node1, node2)
Was oben ausgegeben wird, ist jedoch das Ergebnis unten. Die Konstanten 3.0 und 4.0 werden nicht ausgegeben. Dies liegt daran, dass die obige Syntax ** "Erstellen eines Computergraphen" ** lautet. ** Stellen Sie sich den "Computational Graph" als einen Verarbeitungsplan vor, der Parallelität und Verarbeitungsreihenfolge berücksichtigt **.
Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)
Um den konstanten Wert tatsächlich auszugeben, müssen Sie ** "Computational Graph ausführen" ** mit der folgenden Syntax ausführen.
sess = tf.Session()
print(sess.run([node1, node2]))
Nun werden schließlich 3.0 und 4.0 wie folgt ausgegeben.
[3.0, 4.0]
In der Abbildung sieht es so aus.
Im Vergleich zur normalen Sprachverarbeitung sieht es wie in der folgenden Abbildung aus. Es zeichnet sich durch zwei Konstruktionsschritte (Planung) und Ausführung durch Computational Graph aus. Wenn es sich um einen Prozess handelt, der einfach Datensätze in der Datenbank registriert, ist die normale Sprachverarbeitung, die nur eine CPU verwendet, einfacher und besser. Wenn sie jedoch kompliziert ist und einen großen Parallelisierungswert wie maschinelles Lernen oder tiefes Lernen aufweist, TensorFlow wäre besser geeignet. Nach meiner Erfahrung können Spark, Hadoop, SAP HANA usw. in einer ähnlichen Form wie Computational Graph parallel verarbeitet werden.
Recommended Posts