Deep Learning mit TensorFlow 2.0: Alles, was Sie wissen müssen

Veröffentlicht: 2021-01-05

TensorFlow ist das Framework für maschinelles Lernen von Google. Es wird hauptsächlich für Aufgaben im Zusammenhang mit Deep Learning verwendet und lässt sich auch nahtlos in andere Google-APIs integrieren. TensorFlow ist derzeit eindeutig eine der am häufigsten verwendeten Bibliotheken für Deep Learning in der Branche und absolut lernenswert!

Am Ende dieses Tutorials werden Sie über folgende Kenntnisse verfügen.

  • Was ist TensorFlow?
  • Was ist neu in TF 2.0?
  • TensorFlow gegen Keras
  • TensorFlow installieren
  • Bildklassifizierer in TensorFlow

Inhaltsverzeichnis

Was ist TensorFlow?

TensorFlow begann als Open-Source-Deep-Learning-Bibliothek von Google und ist heute ein vollständiges Framework für End-to-End-Machine-Learning-Prozesse. Sie fragen sich vielleicht, warum Google diesen Namen gewählt hat und was „Tensor“ bedeutet.

Was ist ein Tensor?

Tensoren sind effektiv mehrdimensionale Arrays, mit denen Sie komplexe Operationen an mehrdimensionalen Arrays ausführen können. Sie sind jedoch nicht nur ein N-dimensionales Array.

Ein Tensor beinhaltet auch die Transformationen wie Skalarprodukt, Addition, Matrixmultiplikation usw.

Aber warum sind sie wichtig?

Tensoren sind nicht neu. Sie sind schon lange im Einsatz, aber ihre Eigenschaften werden im Bereich des Deep Learning stark ausgenutzt, wo die Daten normalerweise riesig und mehrdimensional sind.

Tensoren haben genau wie Numpy-Arrays auch eine Form und einen Datentyp. Alle Tensoren sind unveränderlich wie Python-Zahlen und -Strings: Sie können den Inhalt eines Tensors niemals aktualisieren, sondern nur einen neuen erstellen.

Was sie jedoch von üblichen Numpy-Arrays unterscheidet, ist ihre Fähigkeit, GPU-Speicher und Rechenleistung zu nutzen, was von größter Bedeutung ist, wenn Daten hochdimensional sind und Millionen oder mehr groß sind.

Tensoren werden häufig in Deep-Learning-Frameworks wie Pytorch von Facebook und TensorFlow von Google verwendet, das sogar nach ihnen benannt ist!

Google hat auch einen weiteren KI-Beschleuniger namens Tensor Processing Unit (TPU) speziell für TensorFlow entwickelt, der die Optimierung auf ein ganz neues Level hebt!

Lesen Sie: Regularisierung im Deep Learning

Was ist neu in TF 2.0?

Google hatte die erste Version von TensorFlow 1 im Jahr 2015 vom Google Brain Team veröffentlicht.

Die Verwendung von TensorFlow 1.x zur Erstellung neuronaler Netze war keine leichte Aufgabe, da viel Code geschrieben werden musste.

Faule Bewertung vs. eifrige Bewertung

Mit TensorFlow 1.x war es früher erforderlich, Sitzungen zu erstellen und diese Sitzungen auszuführen, um die Ausgabe eines beliebigen „Diagramms“ zu generieren. Lassen Sie uns dies mit dem folgenden Code verstehen

Tensorflow als tf importieren

a = tf.Konstante(1)
b = tf.Konstante(2)
c = tf.add(a, b)
drucken (c)

Wenn Sie den obigen Code ausführen, erhalten Sie nicht die gewünschte Ausgabe, dh 3. Dies liegt daran, dass TensorFlow 1.x in Sitzungen funktioniert hat.

Eine Sitzung ist eine Art Umgebung, die alle Variablen und Transformationen enthält, die sie ausführen muss.

Es wurde ein Graph der Transformationen erstellt, der nicht ausgewertet wurde, bis er ausdrücklich durch Ausführen von tf.session.run() aufgerufen wurde.

Daher gibt der obige Code das zurück, was Sie erwarten, wenn Sie Folgendes tun:

tf.Session.run(c)

Dies wird Lazy Evaluation genannt. Da es faul wartet, bis es ausdrücklich zum Laufen aufgefordert wird.

Dieser langwierige und komplizierte Prozess musste gelöst werden, und daher entstand die Notwendigkeit für TensorFlow 2.x.

TF 2.x wird standardmäßig mit Eager-Evaluierung geliefert, was es uns wirklich einfach macht, die Prozesse zu codieren und auszuführen.

Es gibt jetzt keine Sitzungen und das Training des neuronalen Netzwerks, das in TF 1.x 100 Zeilen benötigte, dauert mit TF 2.x weniger als 20.

Die eifrige Ausführung von TensorFlow ist eine zwingende Programmierumgebung, die Operationen sofort auswertet, ohne Diagramme zu erstellen: Operationen geben konkrete Werte zurück, anstatt ein Berechnungsdiagramm zu erstellen, das später ausgeführt wird.

Dies erleichtert den Einstieg in TensorFlow und Debugging-Modelle und reduziert auch Boilerplates.

TensorFlow gegen Keras

Die Frage ist wirklich nicht TensorFlow vs. Keras. Es ist TensorFlow mit Keras. Keras stellte eine High-Level-API über TensorFlow 1.x zur Verfügung, die es sehr einfach machte, damit zu arbeiten.

Mit TF 2.0 hat TensorFlow Keras jetzt offiziell zu einem Teil seiner API für Modelldesign und Training mit tf.keras gemacht.

Der gesamte Code, der früher in Keras erstellt wurde, wird jetzt vorgeschlagen, mit tf.keras in TF 2.0 ausgeführt zu werden, da es alle TensorFlow-Komponenten und das Ökosystem verwenden kann, wie zum Beispiel:

  • TensorFlow Serving , das zum nahtlosen Bereitstellen/Bereitstellen von TensorFlow-Modellen verwendet wird.
  • TensorFlow Lite , die mobile Version von TensorFlow, die auf Android und IOS ausgeführt werden kann.
  • TensorFlow.js ist eine Sammlung von APIs, mit denen wir Modelle erstellen und trainieren können, indem wir entweder die Low-Level-JavaScript-Bibliothek für lineare Algebra oder die High-Level-Layer-API verwenden. Daher können Deep-Learning-Modelle in einem Browser trainiert und ausgeführt werden.
  • TensorBoard ist eine Suite von Visualisierungstools zum Verstehen, Debuggen und Optimieren von TensorFlow-Programmen.

TensorFlow installieren

Wenn Machine Learning neu für Sie ist, können Sie die Dinge am einfachsten ins Rollen bringen, indem Sie ein Colab Notebook öffnen. Gehen Sie einfach zu https://colab.research.google.com/ und klicken Sie auf „New Python 3 Notebook“.

Stellen Sie sicher, dass der Kernel oben rechts „connected“ anzeigt. Gute Nachrichten, TensorFlow ist in Google Colab vorinstalliert.

Voila! Du bist fertig.

Um zu überprüfen, ob Sie die richtige Version verwenden, führen Sie das folgende Snippet aus.

Tensorflow als tf importieren
tf.__version__

Es sollte jede Version über 2.0.0 stehen und Sie können loslegen.

Bildklassifizierer in TensorFlow

Lassen Sie uns nun die „Hallo Welt“ der Deep-Learning-Probleme durchgehen – den MNIST-Datensatz.

Wir bauen ein kurzes neuronales Netzwerk zur Vorhersage auf dem MNIST-Datensatz auf. Wir werden die folgenden Schritte befolgen.

  1. Erstellen Sie ein neuronales Netzwerk, das Bilder klassifiziert.
  2. Trainiere ein neuronales Netzwerk.
  3. Bewerten Sie die Genauigkeit des Modells

Importieren von TensorFlow.

Tensorflow als tf importieren

Laden der MNIST-Daten.

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_Zug, x_Test = x_Zug / 255,0, x_Test / 255,0

Erstellen eines tf.keras.Sequential-Modells durch Stapeln der Schichten.

Wir müssten auch einen Optimierer und eine Verlustfunktion auswählen, auf denen das Modell trainieren soll.

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])

Definieren der Sparse Categorical Cross Entropie-Verlustfunktion.

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

Kompilieren des Modells.

model.compile(optimizer='adam',
Verlust = Verlust_fn,
metrics=['Genauigkeit'])

Trainieren des Modells mit 5 Epochen.

model.fit(x_train, y_train, Epochen=5)

Bewertung des Modells.

model.evaluate(x_test, y_test, verbose=2)

313/313 – 0s – Verlust: 0,0825 – Genauigkeit: 0,9753

[0.082541823387146, 0.9753000140190125]

Der Bildklassifikator wird jetzt mit diesem Dataset auf eine Genauigkeit von ~98 % trainiert.

Bevor du gehst

TensorFlow 2 konzentriert sich auf Einfachheit und Benutzerfreundlichkeit, mit Updates wie Eifer Execution, intuitiven APIs auf höherer Ebene und flexibler Modellerstellung auf jeder Plattform.

TensorFlow ist heutzutage die Bibliothek/das Tool der Wahl für jede Deep-Learning-Aufgabe. Die andere am häufigsten verwendete und beliebteste Bibliothek ist Facebooks PyTorch.

Das erweiterte Ökosystem von TensorFlow macht es zu einem großartigen Ort, um Ihre Deep-Learning-Reise zu beginnen. Es ist leicht verständlich und vor allem einfach umzusetzen.

Der beste Ausgangspunkt ist die benutzerfreundliche Sequential API. Sie können Modelle erstellen, indem Sie Bausteine ​​zusammenstecken. Erfahren Sie mehr über Deep-Learning-Techniken.

Fazit

Nachdem Sie nun eine detaillierte Vorstellung von allen wichtigen Deep-Learning-Frameworks haben, können Sie eine fundierte Entscheidung treffen und dasjenige auswählen, das am besten zu Ihrem Projekt passt.

Wenn Sie mehr über Deep Learning und künstliche Intelligenz erfahren möchten, schauen Sie sich unser PG-Diploma in maschinellem Lernen und KI-Programm an, das für Berufstätige konzipiert ist und mehr als 30 Fallstudien und Aufgaben, mehr als 25 Branchen-Mentoring-Sitzungen und mehr als 5 praktische Hände bietet - bei Abschlussprojekten mehr als 450 Stunden strenge Schulungen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

Bereiten Sie sich auf eine Karriere der Zukunft vor

PG DIPLOM IN MASCHINELLEM LERNEN UND KÜNSTLICHER INTELLIGENZ
ERFAHREN SIE MEHR