Bibliotheken und Frameworks
In diesem Kapitel werden wir Deep Learning mit den verschiedenen Bibliotheken und Frameworks in Verbindung bringen.
Deep Learning und Theano
Wenn wir mit der Codierung eines tiefen neuronalen Netzwerks beginnen möchten, ist es besser, eine Vorstellung davon zu haben, wie verschiedene Frameworks wie Theano, TensorFlow, Keras, PyTorch usw. funktionieren.
Theano ist eine Python-Bibliothek, die eine Reihe von Funktionen zum Aufbau tiefer Netze bietet, die auf unserem Computer schnell trainieren.
Theano wurde an der Universität von Montreal, Kanada, unter der Leitung von Yoshua Bengio, einem Deep-Net-Pionier, entwickelt.
Mit Theano können wir mathematische Ausdrücke mit Vektoren und Matrizen definieren und auswerten, die rechteckige Anordnungen von Zahlen sind.
Technisch gesehen können sowohl neuronale Netze als auch Eingabedaten als Matrizen dargestellt werden und alle Standardnetzoperationen können als Matrixoperationen neu definiert werden. Dies ist wichtig, da Computer Matrixoperationen sehr schnell ausführen können.
Wir können mehrere Matrixwerte parallel verarbeiten und wenn wir ein neuronales Netz mit dieser zugrunde liegenden Struktur aufbauen, können wir eine einzelne Maschine mit einer GPU verwenden, um enorme Netze in einem angemessenen Zeitfenster zu trainieren.
Wenn wir jedoch Theano verwenden, müssen wir das tiefe Netz von Grund auf aufbauen. Die Bibliothek bietet keine vollständige Funktionalität zum Erstellen eines bestimmten Deep-Net-Typs.
Stattdessen müssen wir jeden Aspekt des tiefen Netzes wie das Modell, die Ebenen, die Aktivierung, die Trainingsmethode und alle speziellen Methoden codieren, um eine Überanpassung zu verhindern.
Die gute Nachricht ist jedoch, dass Theano die Erstellung unserer Implementierung über vektorisierte Funktionen hinweg ermöglicht und uns eine hochoptimierte Lösung bietet.
Es gibt viele andere Bibliotheken, die die Funktionalität von Theano erweitern. TensorFlow und Keras können mit Theano als Backend verwendet werden.
Deep Learning mit TensorFlow
Googles TensorFlow ist eine Python-Bibliothek. Diese Bibliothek ist eine gute Wahl für die Erstellung kommerzieller Deep-Learning-Anwendungen.
TensorFlow ist aus einer anderen Bibliothek DistBelief V2 hervorgegangen, die Teil des Google Brain Project war. Diese Bibliothek zielt darauf ab, die Portabilität des maschinellen Lernens zu erweitern, damit Forschungsmodelle auf kommerzielle Anwendungen angewendet werden können.
Ähnlich wie die Theano-Bibliothek basiert TensorFlow auf Berechnungsgraphen, bei denen ein Knoten persistente Daten oder mathematische Operationen darstellt und Kanten den Datenfluss zwischen Knoten darstellen, bei denen es sich um ein mehrdimensionales Array oder einen Tensor handelt. daher der Name TensorFlow
Die Ausgabe einer Operation oder einer Reihe von Operationen wird als Eingabe in die nächste eingespeist.
Obwohl TensorFlow für neuronale Netze entwickelt wurde, funktioniert es gut für andere Netze, in denen die Berechnung als Datenflussdiagramm modelliert werden kann.
TensorFlow verwendet auch verschiedene Funktionen von Theano, wie z. B. Eliminierung von allgemeinen und Unterausdrücken, automatische Differenzierung, gemeinsame und symbolische Variablen.
Mit TensorFlow können verschiedene Arten von tiefen Netzen aufgebaut werden, z. B. Faltungsnetze, Autoencoder, RNTN, RNN, RBM, DBM / MLP usw.
Die Konfiguration von Hyperparametern in TensorFlow wird jedoch nicht unterstützt. Für diese Funktionalität können wir Keras verwenden.
Deep Learning und Keras
Keras ist eine leistungsstarke, benutzerfreundliche Python-Bibliothek zur Entwicklung und Bewertung von Deep-Learning-Modellen.
Es hat ein minimalistisches Design, das es uns ermöglicht, ein Netz Schicht für Schicht aufzubauen. trainiere es und lass es laufen.
Es umfasst die effizienten numerischen Berechnungsbibliotheken Theano und TensorFlow und ermöglicht es uns, neuronale Netzwerkmodelle in wenigen kurzen Codezeilen zu definieren und zu trainieren.
Es handelt sich um eine hochrangige API für neuronale Netze, mit deren Hilfe Deep Learning und künstliche Intelligenz umfassend genutzt werden können. Es läuft auf einer Reihe von Bibliotheken niedrigerer Ebene, einschließlich TensorFlow, Theano usw. Keras-Code ist portabel; Wir können ein neuronales Netzwerk in Keras implementieren, indem wir Theano oder TensorFlow als Back-End verwenden, ohne dass sich der Code ändert.