PyTorch für Deep Learning. Ian Pointer

PyTorch für Deep Learning - Ian Pointer


Скачать книгу
vollstopfen kann.

      Aus diesen Gründen ist PyTorch in den forschungsorientierten Fachkreisen populär geworden. Die Anzahl der bei der »International Conference on Learning Representations« eingereichten Beiträge, in denen PyTorch erwähnt wird, ist im letzten Jahr um 200% gestiegen. Die Anzahl der Beiträge, in denen TensorFlow erwähnt wird, hat fast genauso stark zugenommen. PyTorch wird mit Sicherheit auch in Zukunft eine Rolle spielen.

      Mit dem Erscheinen neuerer Versionen von TensorFlow änderten sich die Dinge jedoch ein wenig. Eine neue Funktion namens Eager Execution, die es ermöglicht, ähnlich wie mit PyTorch zu arbeiten, wurde unlängst der Bibliothek hinzugefügt. Das wird auch das Paradigma sein, das in TensorFlow 2.0 vorangetrieben wird. Da jedoch nur wenige neue Informationsmaterialien außerhalb von Google zur Verfügung stehen, die Ihnen helfen, diese neue Arbeitsweise mit TensorFlow zu erlernen, sind die Möglichkeiten sehr begrenzt. Sie müssten jahrelang daran arbeiten, um das andere Paradigma zu verstehen, damit Sie das Beste aus der Bibliothek herausholen können.

      Aber nichts davon sollte Ihnen ein schlechtes Bild von TensorFlow vermitteln; es bleibt eine industrieerprobte Bibliothek, die durch eines der größten Unternehmen der Welt gefördert wird. PyTorch (natürlich ebenfalls gestützt durch eine andere »größte Firma der Welt«) ist, würde ich sagen, ein rationalisierter und fokussierterer Ansatz für Deep Learning und differenzielle Programmierung. Da keine älteren, eingestaubten APIs mehr unterstützt werden müssen, ist es leichter, in PyTorch zu lehren und produktiv zu werden als in TensorFlow.

      Wie hängt Keras damit zusammen? So viele gute Fragen! Keras ist eine übergeordnete Deep-Learning-Bibliothek, die ursprünglich Theano und TensorFlow und nun auch andere Frameworks wie Apache MXNet unterstützt. Sie bietet bestimmte Funktionen wie Trainings-, Validierungs- und Testroutinen, deren Erstellung die untergeordneten Frameworks sonst dem Entwickler überlassen, sowie einfache Methoden zum Aufbau von neuronalen Netzwerkarchitekturen. Sie hat enorm zur Verbreitung von TensorFlow beigetragen, ist jetzt Teil von TensorFlow selbst (als tf.keras) und wird auch weiterhin ein eigenständiges Projekt bleiben. Im Vergleich dazu ist PyTorch so etwas wie der Mittelweg zwischen reinem TensorFlow und Keras; wir werden unsere eigenen Trainings- und Vorhersageroutinen schreiben müssen, aber das Erstellen von neuronalen Netzwerken ist fast genauso einfach (und meiner Meinung nach ist der Ansatz von PyTorch zur Erstellung und Wiederverwendung von Architekturen für einen Python-Entwickler bedeutend logischer als der bei Keras).

      Wie Sie in diesem Buch noch sehen werden, ist PyTorch seit der Einführung von Version 1.0, obwohl es in eher forschungsorientierten Kreisen verbreitet ist, perfekt für Anwendungsfälle im Produktiveinsatz geeignet.

       Ziel und Ansatz

      Das vorliegende Buch führt Sie in die Grundlagen von PyTorch ein und zeigt Ihnen, wie Sie selbst Ihre eigenen Deep-Learning-Anwendungen Schritt für Schritt entwickeln, debuggen und in den Produktivbetrieb überführen können. Sie lernen, wie man neuronale Netzwerke in PyTorch erstellt, schrittweise komplexere Modellelemente integriert und schließlich auch Modelle nutzt, die den neuesten Stand der Technik abbilden. Sie erfahren, wie Sie Ihren eigenen Datensatz aufbauen und erweitern können, und auch, wie Sie sich Transfer Learning zunutze machen, wenn Sie nur auf wenige Daten zurückgreifen können oder die Leistungsfähigkeit Ihres Modells weiter verbessern möchten.

      Darüber hinaus lernen Sie, wie Sie Deep-Learning-Modelle erfolgreich überwachen und debuggen. Sie werden auch sehen, wie Sie die Entscheidungsfindung eines Modells mithilfe von Visualisierungen offenlegen können. Sie erfahren, wie sich Ihre Anwendung als skalierbarer Webdienst unter Nutzung von Docker, Kubernetes und Google Cloud in den Produktivbetrieb überführen lässt. Zudem sehen wir uns verschiedene Ansätze dazu an, wie wir bereits trainierte Modelle einerseits komprimieren und andererseits auch das Modelltraining, beispielsweise durch die direkte oder indirekte Nutzung der Programmiersprache C++ oder einer GPU, beschleunigen können.

      Wir trainieren unsere Modelle mit Daten aus drei verschiedenen Domänen: Bilder, Texte und Töne. Dabei lernen Sie, in welche Form Sie diese Datentypen zur weiteren Verarbeitung bringen müssen, welche Unterschiede Sie hinsichtlich der Modellwahl beachten sollten, welche Modellarchitekturen sich für welche Domäne besonders anbieten, und sogar, wann es sich lohnt, in eine andere Domäne mithilfe einer Transformation der Daten zu wechseln. Dabei erfahren Sie, wie Sie in PyTorch sowohl integrierte Modelle und Klassen nutzen als auch eigenständig Erweiterungen oder Modifizierungen umsetzen können.

      Im Verlauf des Buchs begegnen Ihnen zahlreiche hilfreiche Tipps und Tricks, die Ihnen das Leben bei der täglichen Anwendung von PyTorch erleichtern sollen. Das Buch soll Ihnen nicht nur einen Leitfaden an die Hand geben, sondern Sie auch zu selbstständigem Lernen anregen und Ihnen aufzeigen, was PyTorchs Ökosystem sonst noch für Sie bereithält. Scheuen Sie sich also nicht, zu gegebener Zeit einen Blick in die Dokumentationen oder in den Quellcode der genutzten Bibliotheken und Pakete zu werfen – es lohnt sich ungemein!

       Voraussetzungen

      Die Hauptzielgruppe dieses Buchs sind Entwickler und Data Scientists, die gegebenenfalls noch wenige Kenntnisse im Bereich Deep Learning haben, aber mehr darüber lernen möchten. Auch wenn Vorkenntnisse wie z.B. ein grundlegendes Verständnis für die Funktionsweise von neuronalen Netzwerken und deren Optimierungsroutinen hilfreich sind, so sind sie nicht unbedingt erforderlich.

      Darüber hinaus richtet sich das Buch an diejenigen, die bereits Erfahrungen in der Programmierung im Bereich Deep Learning haben und auf PyTorch umsteigen oder es noch eingehender lernen möchten. Sie sollten über eine gewisse Erfahrung in der Programmierung mit Python oder anderen Programmiersprachen (z.B. Java, Scala, Ruby, R usw.) verfügen und sich bereits ein wenig mit der Handhabung der Kommandozeile auskennen.

      Wenn Sie mit Python noch nicht vertraut sind, finden Sie einen guten Einstieg auf https://www.learnpython.org. Darüber hinaus gibt es unzählige kostenlose Onlineressourcen, die es Ihnen ermöglichen, sich genügend Python-Wissen anzueignen, um mit den Beispielen in diesem Buch arbeiten zu können.

      Der Fokus des Buchs liegt auf der eigenständigen Entwicklung und Umsetzung von Deep-Learning-Modellen in PyTorch. Dabei wird weitestgehend auf mathematische Notationen und komplexe Formeln verzichtet. Sie müssen dementsprechend auch nicht über einen nennenswerten mathematischen Hintergrund verfügen, um dem Buch folgen zu können.

      Sie benötigen eine Rechnerumgebung, in der Sie die verwendeten Codebeispiele, die Sie auch in dem GitHub-Repository (https://oreil.ly/pytorch-github) des Buchs finden, ausführen können. Das Repository können Sie mit dem Befehl git clone https://github.com/falloutdurham/beginners-pytorch-deep-learning.git herunterladen (oder besser, Sie forken zunächst das Repository und laden es dann von Ihrem eigenen Account herunter) und die Beispiele in Ihrer gewünschten Entwicklungsumgebung ausführen (ggf. müssen Sie noch die Pfadangaben individuell an Ihre eigene Verzeichnisstruktur anpassen). In Kapitel 1 werden Sie noch ausführlich erfahren, wie Sie Ihre Entwicklungsumgebung einrichten können.

       Wegweiser durch dieses Buch

      In Kapitel 1, Einstieg in PyTorch, richten wir alles ein, um mit der Programmierung in PyTorch loslegen zu können. Hierbei zeige ich Ihnen, wie Sie PyTorch sowohl lokal als auch in der Cloud nutzen können, und ich gehe auch kurz auf die grundlegendsten Elemente und Befehle der Bibliothek ein.

      In Kapitel 2, Bildklassifizierung mit PyTorch, lernen Sie die Grundlagen neuronaler Netze kennen und erfahren, wie Sie ein neuronales Netzwerk in PyTorch selbst programmieren, das zur Bildverarbeitung bereitstehende Paket torchvision verwenden


Скачать книгу