Was ist TensorFlow? Wie funktioniert es? ArchiStruktur und Funktionen

โšก Intelligente Zusammenfassung

TensorFlow ist die Open-Source-Plattform Google Es wurde fรผr maschinelles Lernen entwickelt und stellt jede Berechnung als Datenflussgraph von Tensoren dar. Diese รœbersicht behandelt die Architektur, die Komponenten, die Ausfรผhrung einer Berechnung und die Datenzufuhr รผber eine Eingabepipeline.

  • ๐Ÿงฎ Kernobjekt: Ein Tensor ist ein n-dimensionales Array, dessen Werte einen gemeinsamen Datentyp und eine bekannte oder teilweise bekannte Form aufweisen.
  • ๐Ÿ”— Graphmodell: Knoten รผbertragen Operationen, Kanten รผbertragen Tensoren, und der gesamte Graph kann gespeichert, รผbertragen und spรคter wiedergegeben werden.
  • ???? ๏ธ Dreistufig ArchiStruktur: Die Daten vorverarbeiten, das Modell erstellen, es dann trainieren und evaluieren.
  • โš ๏ธ Versionsgrenze: tf.placeholder und tf.Session gehรถren zu TensorFlow 1.x und wurden in Version 2.0 entfernt, die standardmรครŸig mit Eagerly ausgefรผhrt wird.
  • ๐Ÿ’พ Daten laden: Kleinere Datensรคtze kรถnnen mit pandas in den Arbeitsspeicher geladen werden, wรคhrend fรผr grรถรŸere Datensรคtze tf.data-Pipelines verwendet werden.
  • ๐Ÿ“Š Monitoring: TensorBoard visualisiert den Graphen, die Metriken und die Gewichtsverteilungen wรคhrend des Modelltrainings.

Was ist TensorFlow? Architektur

Was ist TensorFlow?

TensorFlow ist eine Open-Source-End-to-End-Plattform zum Erstellen von Machine-Learning-Anwendungen. Es handelt sich um eine symbolische Mathematikbibliothek, die Datenfluss und differenzierbare Programmierung verwendet, um verschiedene Aufgaben auszufรผhren, die sich auf das Training und die Inferenz tiefer neuronaler Netzwerke konzentrieren. Entwickler kรถnnen damit Machine-Learning-Anwendungen mithilfe verschiedener Tools, Bibliotheken und Community-Ressourcen erstellen.

Die derzeit bekannteste Deep-Learning-Bibliothek der Welt ist Google's TensorFlow. Google setzt maschinelles Lernen in allen seinen Produkten ein, um Suche, รœbersetzung, Bildbeschreibung und Empfehlungen zu verbessern.

TensorFlow-Beispiel

Um ein konkretes Beispiel zu nennen: Google Nutzer kรถnnen dank KI ein schnelleres und prรคziseres Sucherlebnis genieรŸen. Wenn der Nutzer ein Stichwort in die Suchleiste eingibt, Google gibt eine Empfehlung fรผr das mรถgliche nรคchste Wort.

TensorFlow-Beispiel
TensorFlow-Beispiel

Google Sie mรถchten maschinelles Lernen einsetzen, um ihre riesigen Datensรคtze optimal zu nutzen und den Nutzern das bestmรถgliche Erlebnis zu bieten. Drei verschiedene Gruppen verwenden maschinelles Lernen:

  • Wissenschaftler:innen
  • Daten Analysten
  • Programmierer

Sie alle kรถnnen dasselbe Toolset nutzen, um miteinander zusammenzuarbeiten und ihre Effizienz zu verbessern.

Google TensorFlow verwaltet nicht nur groรŸe Datensรคtze, sondern betreibt auch eine enorme Recheninfrastruktur. Daher wurde TensorFlow von Anfang an auf Skalierbarkeit ausgelegt. TensorFlow ist eine Bibliothek, die von โ€ฆ entwickelt wurde. Google Brain Team zur Beschleunigung der Forschung im Bereich maschinelles Lernen und tiefe neuronale Netze.

Es wurde fรผr die Ausfรผhrung auf mehreren CPUs oder GPUs und sogar mobilen Betriebssystemen entwickelt und verfรผgt รผber mehrere Wrapper in mehreren Sprachen wie Python, C++ or Java.

Geschichte von TensorFlow

Vor ein paar Jahren begann Deep Learning, alle anderen Algorithmen des maschinellen Lernens bei der Verarbeitung groรŸer Datenmengen zu รผbertreffen. Google erkannte, dass es diese tiefen neuronalen Netze nutzen kรถnnte, um seine Dienstleistungen zu verbessern:

  • Gmail
  • Foto
  • Google Suchmaschine

Sie haben ein Rahmenwerk entwickelt namens TensorFlow damit Forscher und Entwickler am selben Modell arbeiten und es dann in einem Umfang einsetzen kรถnnen, der fรผr viele Menschen nutzbar ist.

TensorFlow wurde im November 2015 verรถffentlicht, Version 1.0 folgte im Februar 2017. Die weitaus grรถรŸere ร„nderung erfolgte mit TensorFlow 2.0 im September 2019Dadurch wurde die sofortige Ausfรผhrung zum Standard und Keras als Standard-API auf hoher Ebene eingefรผhrt. Ab Version 2.16 ist Keras 3 der Standard, und derselbe Modellcode kann auch mit JAX oder Py ausgefรผhrt werden.Torch-Backends.

TensorFlow wird unter der Apache-2.0-Lizenz verรถffentlicht, daher dรผrfen Sie es verwenden, modifizieren und weiterverbreiten, auch kommerziell, ohne dafรผr bezahlen zu mรผssen. Google.

So funktioniert TensorFlow

Mit TensorFlow kรถnnen Sie Datenflussdiagramme und -strukturen erstellen, um zu definieren, wie sich Daten durch ein Diagramm bewegen, indem Sie Eingaben als mehrdimensionales Array namens Tensor รผbernehmen. Sie kรถnnen damit ein Flussdiagramm von Operationen erstellen, die an diesen Eingaben ausgefรผhrt werden kรถnnen, das an einem Ende eingeht und am anderen Ende als Ausgabe zurรผckkommt.

TensorFlow Architektur

Die TensorFlow-Architektur besteht aus drei Teilen:

  • Vorverarbeitung der Daten
  • Erstellen Sie das Modell
  • Trainieren und schรคtzen Sie das Modell

Es heiรŸt TensorFlow, weil es Eingaben in Form eines mehrdimensionalen Arrays entgegennimmt, auch bekannt als Tensoren. Sie kรถnnen eine Art konstruieren Flussdiagramm von Operationen (Graph genannt), die Sie mit dieser Eingabe durchfรผhren mรถchten. Die Eingabe geht an einem Ende ein, flieรŸt dann durch dieses System mehrerer Operationen und kommt am anderen Ende als Ausgabe heraus.

Wo kann TensorFlow ausgefรผhrt werden?

Die Hardware- und Softwareanforderungen fรผr TensorFlow lassen sich in zwei Phasen unterteilen:

EntwicklungsphaseHierbei handelt es sich um den Zeitpunkt, an dem das Modell trainiert wird, รผblicherweise auf einem Desktop- oder Laptop-Computer.

Ausfรผhrungs- oder InferenzphaseSobald das Training abgeschlossen ist, kann das Modell auf vielen Plattformen ausgefรผhrt werden:

  • Desktop lรคuft Windows, macOS oder Linux
  • Cloud als Webservice
  • Mobile Gerรคte wie iOS und Android

Sie kรถnnen es auf mehreren Computern trainieren und es dann auf einem anderen Computer ausfรผhren, sobald Sie das trainierte Modell haben.

Das Modell kann sowohl auf GPUs als auch auf CPUs trainiert und verwendet werden. GPUs wurden ursprรผnglich fรผr Videospiele entwickelt. Um 2009 zeigten Forscher der Stanford University, dass GPUs bei den Matrix- und linearen Algebraoperationen, auf denen neuronale Netze basieren, รคuรŸerst effizient sind. Deep Learning benรถtigt hรคufig Matrixmultiplikationen. TensorFlow ist bei der Berechnung von Matrixmultiplikationen sehr schnell, da es in einer Matrix geschrieben ist. C++. Obwohl es in C++, TensorFlow kann hauptsรคchlich von anderen Sprachen aus aufgerufen und gesteuert werden, Python.

Ein weiteres wichtiges Merkmal ist TensorBoard, das den Graphen, die Trainingsmetriken und die Gewichtsverteilung wรคhrend der Modellausfรผhrung visualisiert.

TensorFlow-Komponenten

Tensor

Der Name TensorFlow leitet sich direkt von seinem Kernframework ab: TensorIn TensorFlow basieren alle Berechnungen auf Tensoren. Ein Tensor ist ein Vektor or Matrix von n-Dimensionen, die alle Arten von Daten darstellen. Alle Werte in einem Tensor enthalten identische Datentypen mit einem bekannten (oder teilweise bekannten) gestalten. Die Form der Daten ist die Dimensionalitรคt der Matrix oder des Arrays.

Ein Tensor kann aus den Eingabedaten oder dem Ergebnis einer Berechnung stammen. In TensorFlow werden alle Operationen innerhalb eines Graph. Der Graph ist eine Reihe von Berechnungen, die nacheinander stattfinden. Jede Operation wird als op-Knoten und sind miteinander verbunden.

Der Graph stellt die Operationen und Verbindungen zwischen den Knoten dar. Die Werte werden jedoch nicht angezeigt. Der Rand der Knoten ist der Tensor, also eine Mรถglichkeit, die Operation mit Daten zu fรผllen.

Graphs

TensorFlow nutzt ein Graph-Framework. Das Diagramm erfasst und beschreibt alle wรคhrend des Trainings durchgefรผhrten Reihenberechnungen. Die Grafik hat viele Vorteile:

  • Es lรคuft auf mehreren CPUs oder GPUs und sogar auf mobilen Betriebssystemen.
  • Die Portabilitรคt des Diagramms ermรถglicht es, die Berechnungen fรผr die sofortige oder spรคtere Verwendung aufzubewahren. Das Diagramm kann gespeichert werden, um es spรคter auszufรผhren.
  • Alle Berechnungen im Diagramm werden durch die Verbindung von Tensoren durchgefรผhrt
    • Ein Graph besteht aus Knoten und Kanten. Jeder Knoten fรผhrt eine mathematische Operation aus und erzeugt ein Ergebnis, wรคhrend die Kanten die Eingabe- und Ausgabebeziehungen zwischen den Knoten beschreiben. Die Tensoren selbst werden entlang der Kanten รผbertragen.

Warum ist TensorFlow beliebt?

TensorFlow ist weit verbreitet, da es fรผr jedes Erfahrungsniveau zugรคnglich ist. Seine APIs decken alles ab, von einem einfachen Keras-Modell mit drei Zeilen bis hin zu einem selbst entwickelten CNN oder RNN. Da Berechnungen als Graph dargestellt werden, kann TensorBoard das Netzwerk visualisieren und das Debuggen deutlich vereinfachen. Es lรคsst sich zudem skalieren und lรคuft auf CPU, GPU und TPU sowie auf Mobilgerรคten รผber TensorFlow Lite.

TensorFlow ist neben PyTelevision weiterhin eines der beiden meistgenutzten Deep-Learning-Frameworks auf GitHub.Torch.

TensorFlow Algorithms

TensorFlow enthรคlt standardmรครŸig hochrangige Schรคtzer fรผr verschiedene klassische Algorithmen. In TensorFlow 1.x waren diese unter tf.estimator zu finden.

  • Lineare Regression: tf.estimator.LinearRegressor
  • Klassifizierung: tf.estimator.LinearClassifier
  • Deep-Learning-Klassifizierung: tf.estimator.DNNClassifier
  • Weitgehendes und tiefgehendes Lernen: tf.estimator.DNNLinearCombinedClassifier
  • Boosted Trees Regression: tf.estimator.BoostedTreesRegressor
  • Boosted Tree-Klassifizierung: tf.estimator.BoostedTreesClassifier

TensorFlow vs PyTorch: Welche sollten Sie wรคhlen?

TensorFlow und PyTorch sind die beiden dominanten Deep-Learning-Frameworks, und die praktischen Unterschiede haben sich seit der Einfรผhrung der Eager Execution in TensorFlow 2.0 erheblich verringert.

Eigenschaften TensorFlow PyTorch
Entwickelt von Google Gehirn Meta-KI
Ausfรผhrung Eager, mit optionaler Graphkompilation Eifrig, mit optionaler Kompilation
High-Level-API Keras, entwickelt in Separate Bibliotheken wie Lightning
Mobilgerรคte und Edge-Gerรคte Ausgereift, durch TensorFlow Lite Verbesserung durch UmsetzungTorch
Browserbereitstellung TensorFlow.js Erfordert eine Konvertierung zu ONNX
Typische Festung Produktion und Bereitstellung Forschung und Experimente

Die pragmatische Antwort: Wรคhlen Sie TensorFlow, wenn das Modell an Mobilgerรคte, Browser oder einen verwalteten Server-Stack ausgeliefert werden muss, und Py.TorWenn Sie die Modellarchitektur iterativ verbessern, sollten Sie Keras 3 berรผcksichtigen. Keras 3, der Standard ab TensorFlow 2.16, erleichtert die Entscheidung zusรคtzlich, da derselbe Keras-Code auch auf einem TensorFlow-, JAX- oder Py-basierten Modell ausgefรผhrt werden kann.Torch-Backend.

Wie Berechnungen in TensorFlow funktionieren

โš ๏ธ Versionshinweis: Die folgenden Lรถsungswege verwenden die TensorFlow 1.x. Der Graph-und-Session-Stil ist die klarste Art, die Funktionsweise des Datenflussgraphen zu verstehen. tf.placeholder(), tf.Session() und make_initializable_iterator() wurden in TensorFlow 2.0 entfernt. und wird bei einer bestehenden Installation einen AttributeError auslรถsen. Der Abschnitt TensorFlow 1.x vs. TensorFlow 2.x Weiter unten findet sich jeweils das moderne ร„quivalent zu jedem Beispiel.

import numpy as np
import tensorflow as tf

In den ersten beiden Codezeilen haben wir Tensorflow als tf importiert. Mit Pythonist es รผblich, fรผr eine Bibliothek einen Kurznamen zu verwenden. Der Vorteil besteht darin, dass wir nicht den vollstรคndigen Namen der Bibliothek eingeben mรผssen, wenn wir sie verwenden mรผssen. Beispielsweise kรถnnen wir Tensorflow als tf importieren und tf aufrufen, wenn wir eine Tensorflow-Funktion verwenden mรถchten

Lasst uns den grundlegenden Workflow von TensorFlow anhand einfacher TensorFlow-Beispiele รผben. Erstellen wir einen Berechnungsgraphen, der zwei Zahlen miteinander multipliziert.

In diesem Beispiel multiplizieren wir X_1 und X_2 miteinander. TensorFlow erstellt dazu einen Knoten, der die Operation verbindet. In unserem Beispiel heiรŸt dieser Knoten โ€žmultiplizierenโ€œ. Sobald der Graph definiert ist, multiplizieren die TensorFlow-Berechnungsmodule X_1 und X_2 miteinander.

Berechnungen funktionieren in TensorFlow

TensorFlow-Beispiel

AbschlieรŸend fรผhren wir eine TensorFlow-Sitzung durch, die den Rechengraphen mit den Werten von X_1 und X_2 ausfรผhrt und das Ergebnis der Multiplikation ausgibt.

Definieren wir die Eingabeknoten X_1 und X_2. Beim Erstellen eines Knotens in TensorFlow muss der Knotentyp ausgewรคhlt werden. Die Knoten X1 und X2 dienen als Platzhalter. Diese Platzhalter weisen bei jeder Berechnung einen neuen Wert zu. Wir erstellen sie als TF-Punkt-Platzhalterknoten.

Schritt 1: Definieren Sie die Variable

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

Ein Platzhalter benรถtigt einen Datentyp. Da es sich um Zahlen handelt, ist `tf.float32` die richtige Wahl. Das Argument `name` ist optional, aber nรผtzlich, da es die Bezeichnung ist, die in der TensorBoard-Visualisierung des Graphen angezeigt wird. `X_2` wird auf die gleiche Weise definiert.

Schritt 2: Definieren Sie die Berechnung

multiply = tf.multiply(X_1, X_2, name = "multiply")

Nun kรถnnen wir den Knoten definieren, der die Multiplikationsoperation durchfรผhrt. In TensorFlow kรถnnen wir dies durch Erstellen eines tf.multiply-Knotens erreichen.

Wir werden die Knoten X_1 und X_2 an den Multiplikationsknoten รผbergeben. Es weist Tensorflow an, diese Knoten im Rechendiagramm zu verknรผpfen, daher fordern wir es auf, die Werte von x und y abzurufen und das Ergebnis zu multiplizieren. Geben wir dem Multiplikationsknoten auch den Namen multiply. Es ist die vollstรคndige Definition fรผr unseren einfachen Rechengraphen.

Schritt 3: Ausfรผhren des Vorgangs

Um Operationen im Graphen auszufรผhren, mรผssen wir eine Session erstellen. In TensorFlow geschieht dies mit `tf.Session()`. Sobald wir eine Session haben, kรถnnen wir diese durch Aufruf von `session` anweisen, Operationen auf unserem Berechnungsgraphen auszufรผhren. Um die Berechnung auszufรผhren, verwenden wir `run`.

Fรผr die Multiplikation werden die Werte der Knoten X_1 und X_2 benรถtigt. Diese werden zur Laufzeit รผbergeben. Dies geschieht รผber den Parameter `feed_dict`. Fรผr X_1 werden die Werte 1, 2, 3 und fรผr X_2 die Werte 4, 5, 6 รผbergeben.

Die Ergebnisse drucken wir mit print(result) aus. Wir sollten 4, 10 und 18 fรผr 1ร—4, 2ร—5 und 3ร—6 sehen

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

multiply = tf.multiply(X_1, X_2, name = "multiply")

with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})
    print(result)
[ 4. 10. 18.]

Optionen zum Laden von Daten in TensorFlow

Der erste Schritt vor dem Training a maschineller Lernalgorithmus Es geht darum, die Daten zu laden. Dafรผr gibt es zwei gรคngige Methoden:

1. Daten in den Speicher ladenEs ist die einfachste Methode. Sie laden alle Ihre Daten als ein einziges Array in den Speicher. Sie schreiben einfach Python Hierfรผr ist nichts davon TensorFlow-spezifisch.

2. TensorFlow-DatenpipelineTensorFlow bietet eine integrierte API, die Daten lรคdt, Transformationen anwendet und das Modell speist. Diese Methode eignet sich besonders gut fรผr groรŸe Datensรคtze. Beispielsweise sind Bilddatensรคtze bekanntermaรŸen enorm groรŸ und passen nicht in den Arbeitsspeicher. Die Datenpipeline verwaltet den Speicher selbststรคndig.

Welche Lรถsung soll verwendet werden?

Daten in den Speicher laden

Wenn Ihr Datensatz nicht zu groรŸ ist, also weniger als 10 Gigabyte, kรถnnen Sie die erste Methode verwenden. Die Daten kรถnnen in den Speicher passen. Sie kรถnnen eine berรผhmte Bibliothek namens Pandas verwenden, um CSV-Dateien zu importieren. Im nรคchsten Tutorial erfahren Sie mehr รผber Pandas.

Daten mit der TensorFlow-Pipeline laden

Die zweite Methode funktioniert am besten, wenn Sie รผber einen groรŸen Datensatz verfรผgen. Wenn Sie beispielsweise รผber einen Datensatz von 50 Gigabyte verfรผgen und Ihr Computer nur รผber 16 Gigabyte Arbeitsspeicher verfรผgt, stรผrzt der Computer ab.

In dieser Situation mรผssen Sie eine TensorFlow-Pipeline erstellen. Die Pipeline lรคdt die Daten in Batches, also kleinen Datenblรถcken. Jeder Batch wird an die Pipeline รผbergeben und ist dann bereit fรผr das Training. Die Erstellung einer Pipeline ist eine hervorragende Lรถsung, da sie die Nutzung von Parallelverarbeitung ermรถglicht. Das bedeutet, dass TensorFlow das Modell auf mehreren CPUs trainiert. Dies beschleunigt die Berechnung und ermรถglicht das Training grรถรŸerer Netzwerke.

Kurz gesagt: Kleine Datensรคtze laden Sie mit pandas in den Speicher, und verwenden Sie eine TensorFlow-Pipeline, wenn die Datenmenge groรŸ ist oder Sie das Laden parallel รผber mehrere CPUs durchfรผhren mรถchten.

So erstellen Sie eine TensorFlow-Pipeline

Hier sind die Schritte zum Erstellen einer TensorFlow-Pipeline:

Im vorherigen Beispiel haben wir manuell drei Werte fรผr X_1 und X_2 hinzugefรผgt. Nun sehen wir uns an, wie man Daten in TensorFlow lรคdt:

Schritt 1) โ€‹โ€‹Erstellen Sie die Daten

Lassen Sie uns zunรคchst die Numpy-Bibliothek verwenden, um zwei Zufallswerte zu generieren.

import numpy as np
x_input = np.random.sample((1,2))
print(x_input)

[[0.8835775 0.23766977]]

Schritt 2) Erstellen Sie den Platzhalter

Wie im vorherigen Beispiel erstellen wir einen Platzhalter mit dem Namen X. Wir mรผssen die Form des Tensors explizit angeben. In diesem Fall laden wir ein Array mit nur zwei Werten. Wir kรถnnen die Form als shape=[1,2] schreiben.

# using a placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')

Schritt 3) Definieren Sie die Datensatzmethode

Als nรคchstes mรผssen wir den Datensatz definieren, in den wir den Wert des Platzhalters x einfรผgen kรถnnen. Wir mรผssen die Methode tf.data.Dataset.from_tensor_slices verwenden

dataset = tf.data.Dataset.from_tensor_slices(x)

Schritt 4) Erstellen Sie die Pipeline

In Schritt vier mรผssen wir die Pipeline initialisieren, รผber die die Daten flieรŸen. Wir mรผssen einen Iterator mit make_initializable_iterator erstellen. Wir nennen es Iterator. Dann mรผssen wir diesen Iterator aufrufen, um den nรคchsten Datenstapel get_next einzuspeisen. Wir nennen diesen Schritt get_next. Beachten Sie, dass es in unserem Beispiel nur einen Datenstapel mit nur zwei Werten gibt.

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next()

Schritt 5) Fรผhren Sie den Vorgang aus

Der letzte Schritt ist รคhnlich wie im vorherigen Beispiel. Wir initiieren eine Sitzung und fรผhren den Operationsiterator aus. Wir fรผttern das feed_dict mit dem Wert, der generiert wird von numpig. Diese beiden Werte fรผllen den Platzhalter x. Dann fรผhren wir get_next aus, um das Ergebnis auszudrucken.

with tf.Session() as sess:
    # feed the placeholder with data
    sess.run(iterator.initializer, feed_dict={ x: x_input }) 
    print(sess.run(get_next))
[0.8835775  0.23766978]

TensorFlow 1.x vs. TensorFlow 2.x: Was hat sich geรคndert?

TensorFlow 2.0 brachte eine grundlegende รœberarbeitung der benutzerseitigen API mit sich. Es ist wichtig, die Unterschiede zu verstehen, da viele Online-Tutorials, einschlieรŸlich der obigen Beispiele, auf den Stil von Version 1.x abzielen.

Konzept TensorFlow 1.x. TensorFlow 2.x.
Ausfรผhrungsmodell Definiere den Graphen und fรผhre ihn dann aus. StandardmรครŸig werden Operationen sofort ausgefรผhrt.
Fรผtterungsdaten tf.placeholder plus feed_dict Passieren Python Werte oder Tensoren direkt
Laufender Betrieb tf.Session().run() Die Funktion aufrufen, keine Sitzung erforderlich
High-Level-API tf.estimator Keras, tf.keras
Graphoptimierung Immer graphenbasiert Aktivieren Sie die Option mit dem @tf.function-Dekorator.
Iterieren eines Datensatzes make_initializable_iterator() Ebene Python Schleife รผber den Datensatz

Das Multiplikationsbeispiel, neu geschrieben. Drei Schritte und eine Sitzung werden zu einer Zeile, da die Operation in dem Moment ausgefรผhrt wird, in dem sie aufgerufen wird:

import tensorflow as tf

X_1 = tf.constant([1, 2, 3], dtype=tf.float32)
X_2 = tf.constant([4, 5, 6], dtype=tf.float32)

result = tf.multiply(X_1, X_2, name="multiply")
print(result.numpy())        # [ 4. 10. 18.]

Die Eingabepipeline, neu geschrieben. Es werden weder Platzhalter noch Iteratorobjekte benรถtigt:

import numpy as np
import tensorflow as tf

x_input = np.random.sample((1, 2))
dataset = tf.data.Dataset.from_tensor_slices(x_input)

for batch in dataset:
    print(batch.numpy())

Wenn Sie die Geschwindigkeit eines kompilierten Graphen benรถtigen, umschlieรŸen Sie die Funktion mit @tf.function und TensorFlow. tracEs wird automatisch in eine solche umgewandelt. ร„ltere 1.x-Skripte kรถnnen auch unverรคndert รผber den tf.compat.v1-Namespace ausgefรผhrt werden, dieser Pfad dient jedoch nur der Wartung und sollte nicht fรผr neue Projekte verwendet werden.

TensorFlow: Wichtigste Erkenntnisse und Code Literaturhinweis

  • TensorFlow-Bedeutung: TensorFlow ist die bekannteste Deep-Learning-Bibliothek der letzten Jahre. Ein Praktiker, der TensorFlow verwendet, kann jede Deep-Learning-Struktur aufbauen, wie CNN, RNN oder ein einfaches kรผnstliches neuronales Netzwerk.
  • TensorFlow wird hauptsรคchlich von Akademikern, Startups und groรŸen Unternehmen genutzt. Google verwendet TensorFlow in fast allen Google Produkte des tรคglichen Bedarfs GmailFoto und Google Suchmaschine.
  • Das Google Das Brain-Team entwickelte TensorFlow, um die Kluft zwischen Forschern und Produktentwicklern zu schlieรŸen. 2015 verรถffentlichten sie TensorFlow und erfreuen sich seitdem rasant wachsender Beliebtheit. Heute ist TensorFlow die Deep-Learning-Bibliothek mit den meisten Repositories auf GitHub.
  • Anwender nutzen TensorFlow, weil es sich problemlos in groรŸem Umfang in der Cloud, im Browser oder auf mobilen Gerรคten mit iOS bereitstellen lรคsst. Android.

TensorFlow arbeitet in Sitzungen. Jede Sitzung wird durch einen Graphen mit verschiedenen Berechnungen definiert. Ein einfaches Beispiel ist die Multiplikation einer Zahl. In TensorFlow sind dafรผr drei Schritte erforderlich:

  1. Definiere die Variable
X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")
  1. Definieren Sie die Berechnung
multiply = tf.multiply(X_1, X_2, name = "multiply")
  1. Ausfรผhren des Vorgangs
with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1: [1, 2, 3], X_2: [4, 5, 6]})
    print(result)

Eine gรคngige Vorgehensweise in TensorFlow ist das Erstellen einer Pipeline zum Laden der Daten. Wenn Sie diese fรผnf Schritte befolgen, kรถnnen Sie Daten in TensorFlow laden:

  1. Erstellen Sie die Daten
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
  1. Erstellen Sie den Platzhalter
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
  1. Definieren Sie die Datensatzmethode
dataset = tf.data.Dataset.from_tensor_slices(x)
  1. Erstellen Sie die Pipeline
iterator = dataset.make_initializable_iterator()
get_next = iterator.get_next()
  1. Fรผhren Sie das Programm aus
with tf.Session() as sess:
    sess.run(iterator.initializer, feed_dict={x: x_input})
    print(sess.run(get_next))

Hรคufig gestellte Fragen

`tf.placeholder` gehรถrte zu TensorFlow 1.x und wurde in Version 2.0 entfernt, da diese Version sofort ausgefรผhrt wird und keine Platzhalter mehr benรถtigt. รœbergeben Sie Werte direkt oder verwenden Sie `tf.compat.v1`, um รคltere Skripte unverรคndert auszufรผhren.

Ein Tensor ist ein n-dimensionales Array, dessen Elemente alle denselben Datentyp aufweisen. Ein Skalar hat Rang 0, ein Vektor Rang 1, eine Matrix Rang 2 und ein Bildstapel รผblicherweise Rang 4.

Keras ist die High-Level-API zum Definieren und Trainieren von Modellen, wรคhrend TensorFlow die zugrundeliegende Berechnungs-Engine darstellt. Seit Version 2.16 ist Keras 3 in TensorFlow integriert und kann auch unter JAX oder Py ausgefรผhrt werden.Torch.

TensorFlow eignet sich fรผr produktive KI: Bildklassifizierung, Verarbeitung natรผrlicher Sprache, Empfehlungssysteme und jedes Modell, das auf Mobilgerรคten, im Browser oder in einem Servercluster bereitgestellt werden muss.

Ja. KI-Assistenten kรถnnen Sitzungs- und Platzhaltercode in sofort verfรผgbare Alternativen umwandeln und entfernte Funktionen kennzeichnen. รœberprรผfen Sie die Ausgabe numerisch anhand des Originals, bevor Sie das alte Skript auรŸer Betrieb nehmen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: