TensorFlow-Beispiele
Dieses Tutorial wurde entwickelt, um anhand von Beispielen einen einfachen Einstieg in TensorFlow zu ermöglichen. Zur besseren Lesbarkeit enthält es sowohl Notizbücher als auch Quellcodes mit Erläuterungen für TF v1 und v2.
Es eignet sich für Anfänger, die klare und prägnante Beispiele zu TensorFlow finden möchten. Neben den traditionellen „rohen“ TensorFlow-Implementierungen finden Sie auch die neuesten TensorFlow-API-Praktiken (z. B. layers
, estimator
, dataset
usw.).
Update (16.05.2020): Alle Standardbeispiele nach TF2 verschoben. Beispiele für TF v1 finden Sie hier.
Tutorial-Index
0 – Voraussetzung
- Einführung in maschinelles Lernen.
- Einführung in den MNIST-Datensatz.
1 - Einführung
- Hallo Welt (Notizbuch). Sehr einfaches Beispiel, um zu lernen, wie man „Hallo Welt“ mit TensorFlow 2.0+ druckt.
- Grundlegende Operationen (Notebook). Ein einfaches Beispiel, das die grundlegenden Vorgänge von TensorFlow 2.0+ abdeckt.
2 - Grundmodelle
- Lineare Regression (Notizbuch). Implementieren Sie eine lineare Regression mit TensorFlow 2.0+.
- Logistische Regression (Notizbuch). Implementieren Sie eine logistische Regression mit TensorFlow 2.0+.
- Word2Vec (Word Embedding) (Notizbuch). Erstellen Sie mit TensorFlow 2.0+ ein Word-Einbettungsmodell (Word2Vec) aus Wikipedia-Daten.
- GBDT (Gradient Boosted Decision Trees) (Notebooks). Implementieren Sie einen Gradient Boosted Decision Trees mit TensorFlow 2.0+, um den Hauswert mithilfe des Boston Housing-Datensatzes vorherzusagen.
3 – Neuronale Netze
Beaufsichtigt
- Einfaches neuronales Netzwerk (Notebook). Verwenden Sie die TensorFlow 2.0-API „Schichten“ und „Modell“, um ein einfaches neuronales Netzwerk zur Klassifizierung des MNIST-Zifferndatensatzes aufzubauen.
- Einfaches neuronales Netzwerk (Low-Level) (Notebook). Rohimplementierung eines einfachen neuronalen Netzwerks zur Klassifizierung des MNIST-Zifferndatensatzes.
- Faltungs-Neuronales Netzwerk (Notizbuch). Verwenden Sie die „Schichten“- und „Modell“-API von TensorFlow 2.0+, um ein Faltungs-Neuronales Netzwerk zur Klassifizierung des MNIST-Zifferndatensatzes aufzubauen.
- Faltungs-Neuronales Netzwerk (niedriges Niveau) (Notebook). Rohimplementierung eines Faltungs-Neuronalen Netzwerks zur Klassifizierung des MNIST-Zifferndatensatzes.
- Recurrent Neural Network (LSTM) (Notebook). Erstellen Sie ein wiederkehrendes neuronales Netzwerk (LSTM) zur Klassifizierung des MNIST-Zifferndatensatzes mithilfe der TensorFlow 2.0-API „Ebenen“ und „Modell“.
- Bidirektionales rekurrentes neuronales Netzwerk (LSTM) (Notebook). Erstellen Sie ein bidirektionales rekurrentes neuronales Netzwerk (LSTM) zur Klassifizierung des MNIST-Zifferndatensatzes mithilfe der TensorFlow 2.0+-API „Schichten“ und „Modell“.
- Dynamisches wiederkehrendes neuronales Netzwerk (LSTM) (Notebook). Erstellen Sie ein wiederkehrendes neuronales Netzwerk (LSTM), das dynamische Berechnungen durchführt, um Sequenzen variabler Länge zu klassifizieren, indem Sie die TensorFlow 2.0+-API „Schichten“ und „Modell“ verwenden.
Unbeaufsichtigt
- Auto-Encoder (Notebook). Erstellen Sie einen Auto-Encoder, um ein Bild in eine niedrigere Dimension zu kodieren und es neu zu konstruieren.
- DCGAN (Deep Convolutional Generative Adversarial Networks) (Notizbuch). Bauen Sie ein Deep Convolutional Generative Adversarial Network (DCGAN) auf, um Bilder aus Rauschen zu generieren.
4 – Dienstprogramme
- Speichern und Wiederherstellen eines Modells (Notebooks). Speichern und Wiederherstellen eines Modells mit TensorFlow 2.0+.
- Erstellen Sie benutzerdefinierte Ebenen und Module (Notebook). Erfahren Sie, wie Sie Ihre eigenen Ebenen/Module erstellen und diese in TensorFlow 2.0+-Modelle integrieren.
- Tensorboard (Notebook). Verfolgen und visualisieren Sie Berechnungsdiagramme, Metriken, Gewichte und mehr neuronaler Netzwerke mit dem TensorFlow 2.0+ Tensorboard.
5 – Datenverwaltung
- Daten laden und analysieren (Notebook). Erstellen Sie eine effiziente Datenpipeline mit TensorFlow 2.0 (Numpy-Arrays, Bilder, CSV-Dateien, benutzerdefinierte Daten usw.).
- TFRecords erstellen und laden (Notebook). Konvertieren Sie Daten in das TFRecords-Format und laden Sie sie mit TensorFlow 2.0+.
- Bildtransformation (dh Bildvergrößerung) (Notebook). Wenden Sie mit TensorFlow 2.0+ verschiedene Bildvergrößerungstechniken an, um verzerrte Bilder für das Training zu generieren.
6 – Hardware
- Multi-GPU-Training (Notebook). Trainieren Sie ein Faltungs-Neuronales Netzwerk mit mehreren GPUs auf dem CIFAR-10-Datensatz.
TensorFlow v1
Der Tutorial-Index für TF v1 ist hier verfügbar: TensorFlow v1.15 Beispiele. Oder siehe unten für eine Liste der Beispiele.
Datensatz
Einige Beispiele erfordern einen MNIST-Datensatz für Training und Tests. Keine Sorge, dieser Datensatz wird beim Ausführen von Beispielen automatisch heruntergeladen. MNIST ist eine Datenbank handgeschriebener Ziffern. Eine kurze Beschreibung dieses Datensatzes finden Sie in diesem Notizbuch.
Offizielle Website: http://yann.lecun.com/exdb/mnist/.
Installation
Um alle Beispiele herunterzuladen, klonen Sie einfach dieses Repository:
git clone https://github.com/aymericdamien/TensorFlow-Examples
Um sie auszuführen, benötigen Sie außerdem die neueste Version von TensorFlow. Um es zu installieren:
oder (mit GPU-Unterstützung):
pip install tensorflow_gpu
Weitere Informationen zur TensorFlow-Installation finden Sie im TensorFlow-Installationshandbuch
TensorFlow v1-Beispiele – Index
Der Tutorial-Index für TF v1 ist hier verfügbar: TensorFlow v1.15 Beispiele.
0 – Voraussetzung
- Einführung in maschinelles Lernen.
- Einführung in den MNIST-Datensatz.
1 - Einführung
- Hallo Welt (Notizbuch) (Code). Sehr einfaches Beispiel, um zu lernen, wie man mit TensorFlow „Hallo Welt“ druckt.
- Grundlegende Operationen (Notebook) (Code). Ein einfaches Beispiel, das die grundlegenden Operationen von TensorFlow abdeckt.
- Grundlagen der TensorFlow Eager API (Notebook) (Code). Beginnen Sie mit der Eager-API von TensorFlow.
2 - Grundmodelle
- Lineare Regression (Notizbuch) (Code). Implementieren Sie eine lineare Regression mit TensorFlow.
- Lineare Regression (eifrige API) (Notebook) (Code). Implementieren Sie eine lineare Regression mit der Eager-API von TensorFlow.
- Logistische Regression (Notizbuch) (Code). Implementieren Sie eine logistische Regression mit TensorFlow.
- Logistische Regression (eifrige API) (Notebook) (Code). Implementieren Sie eine logistische Regression mit der Eager-API von TensorFlow.
- Nächster Nachbar (Notizbuch) (Code). Implementieren Sie den Nearest Neighbor-Algorithmus mit TensorFlow.
- K-Means (Notizbuch) (Code). Erstellen Sie mit TensorFlow einen K-Means-Klassifikator.
- Random Forest (Notizbuch) (Code). Erstellen Sie mit TensorFlow einen Random Forest-Klassifikator.
- Gradient Boosted Decision Tree (GBDT) (Notebook) (Code). Erstellen Sie mit TensorFlow einen Gradient Boosted Decision Tree (GBDT).
- Word2Vec (Word Embedding) (Notizbuch) (Code). Erstellen Sie mit TensorFlow ein Word-Einbettungsmodell (Word2Vec) aus Wikipedia-Daten.
3 – Neuronale Netze
Beaufsichtigt
- Einfaches neuronales Netzwerk (Notebook) (Code). Erstellen Sie ein einfaches neuronales Netzwerk (auch bekannt als Multi-Layer-Perceptron), um den MNIST-Zifferndatensatz zu klassifizieren. Rohe TensorFlow-Implementierung.
- Einfaches neuronales Netzwerk (tf.layers/estimator api) (Notebook) (Code). Verwenden Sie die TensorFlow-API „Layer“ und „Estimator“, um ein einfaches neuronales Netzwerk (auch bekannt als Multi-Layer-Perceptron) zur Klassifizierung des MNIST-Zifferndatensatzes aufzubauen.
- Einfaches neuronales Netzwerk (eifrige API) (Notebook) (Code). Verwenden Sie die TensorFlow Eager API, um ein einfaches neuronales Netzwerk (auch bekannt als Multi-Layer-Perceptron) zur Klassifizierung des MNIST-Zifferndatensatzes aufzubauen.
- Faltungs-Neuronales Netzwerk (Notebook) (Code). Erstellen Sie ein Faltungs-Neuronales Netzwerk, um den MNIST-Zifferndatensatz zu klassifizieren. Rohe TensorFlow-Implementierung.
- Faltungs-Neuronales Netzwerk (tf.layers/estimator api) (Notebook) (Code). Verwenden Sie die TensorFlow-API „Schichten“ und „Schätzer“, um ein Faltungs-Neuronales Netzwerk zur Klassifizierung des MNIST-Zifferndatensatzes aufzubauen.
- Recurrent Neural Network (LSTM) (Notebook) (Code). Erstellen Sie ein wiederkehrendes neuronales Netzwerk (LSTM), um den MNIST-Zifferndatensatz zu klassifizieren.
- Bidirektionales wiederkehrendes neuronales Netzwerk (LSTM) (Notebook) (Code). Erstellen Sie ein bidirektionales rekurrentes neuronales Netzwerk (LSTM), um den MNIST-Zifferndatensatz zu klassifizieren.
- Dynamisches wiederkehrendes neuronales Netzwerk (LSTM) (Notebook) (Code). Erstellen Sie ein wiederkehrendes neuronales Netzwerk (LSTM), das dynamische Berechnungen durchführt, um Sequenzen unterschiedlicher Länge zu klassifizieren.
Unbeaufsichtigt
- Auto-Encoder (Notebook) (Code). Erstellen Sie einen Auto-Encoder, um ein Bild in eine niedrigere Dimension zu kodieren und es neu zu konstruieren.
- Variationaler Auto-Encoder (Notebook) (Code). Erstellen Sie einen Variational Auto-Encoder (VAE), um Bilder aus Rauschen zu kodieren und zu generieren.
- GAN (Generative Adversarial Networks) (Notizbuch) (Code). Bauen Sie ein Generative Adversarial Network (GAN) auf, um Bilder aus Rauschen zu generieren.
- DCGAN (Deep Convolutional Generative Adversarial Networks) (Notizbuch) (Code). Bauen Sie ein Deep Convolutional Generative Adversarial Network (DCGAN) auf, um Bilder aus Rauschen zu generieren.
4 – Dienstprogramme
- Speichern und Wiederherstellen eines Modells (Notebook) (Code). Speichern und Wiederherstellen eines Modells mit TensorFlow.
- Tensorboard – Diagramm- und Verlustvisualisierung (Notizbuch) (Code). Verwenden Sie Tensorboard, um das Berechnungsdiagramm zu visualisieren und den Verlust darzustellen.
- Tensorboard – Erweiterte Visualisierung (Notebook) (Code). Tiefer in Tensorboard eintauchen; Visualisieren Sie die Variablen, Verläufe und mehr ...
5 – Datenverwaltung
- Erstellen Sie einen Bilddatensatz (Notizbuch) (Code). Erstellen Sie Ihren eigenen Bilddatensatz mit TensorFlow-Datenwarteschlangen aus Bildordnern oder einer Datensatzdatei.
- TensorFlow Dataset API (Notebook) (Code). Einführung der TensorFlow Dataset API zur Optimierung der Eingabedatenpipeline.
- Daten laden und analysieren (Notebook). Erstellen Sie eine effiziente Datenpipeline (Numpy-Arrays, Bilder, CSV-Dateien, benutzerdefinierte Daten usw.).
- TFRecords erstellen und laden (Notebook). Konvertieren Sie Daten in das TFRecords-Format und laden Sie sie.
- Bildtransformation (dh Bildvergrößerung) (Notebook). Wenden Sie verschiedene Bildvergrößerungstechniken an, um verzerrte Bilder für das Training zu erzeugen.
6 – Multi-GPU
- Grundlegende Operationen auf Multi-GPU (Notebook) (Code). Ein einfaches Beispiel zur Einführung von Multi-GPU in TensorFlow.
- Trainieren Sie ein neuronales Netzwerk auf Multi-GPU (Notebook) (Code). Eine klare und einfache TensorFlow-Implementierung zum Trainieren eines Faltungs-Neuronalen Netzwerks auf mehreren GPUs.
Weitere Beispiele
Die folgenden Beispiele stammen von TFLearn, einer Bibliothek, die eine vereinfachte Schnittstelle für TensorFlow bereitstellt. Sie können einen Blick darauf werfen, es gibt viele Beispiele und vorgefertigte Operationen und Ebenen.
Tutorials
- TFLearn-Schnellstart. Lernen Sie die Grundlagen von TFLearn durch eine konkrete maschinelle Lernaufgabe. Erstellen und trainieren Sie einen Klassifikator für tiefe neuronale Netze.
Beispiele
- TFLearn-Beispiele. Eine große Sammlung von Beispielen mit TFLearn.