Читать книгу PyTorch für Deep Learning - Ian Pointer - Страница 12

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 und Ihr Modell zur Bildklassifizierung nutzen können. Hierfür entwickeln wir zunächst ein relativ einfaches, vollständig verbundenes neuronales Netz, einen eigenen Datensatz mit Bildern aus dem Internet und eine Trainingsroutine, mit der wir das neuronale Netz auf der GPU trainieren. Zudem sehen wir uns an, wie Sie Vorhersagen für Bilder vornehmen und wie Sie Modelle auf und von der Festplatte speichern bzw. wiederherstellen können. Bis einschließlich Kapitel 4 entwickeln wir davon ausgehend unterschiedliche Netzwerke, mit denen wir Bilder klassifizieren und feststellen möchten, ob sich auf einem Bild eine Katze oder ein Fisch befindet. Dabei lernen Sie die wichtigsten Bestandteile und Parameter neuronaler Netzwerke kennen, wie Aktivierungs- und Verlustfunktionen, Lernrate sowie Optimierungsalgorithmen.

Im weiteren Verlauf erhöhen wir kontinuierlich die Leistungsfähigkeit unserer Netzwerke. In Kapitel 3 lernen Sie mit den neuronalen Konvolutionsnetzen (engl. Convolutional Neural Networks, CNNs) eine weitere Architektur kennen, und Sie werden beobachten, dass sich CNNs schneller trainieren lassen und auch genauer sind. In diesem Zusammenhang zeige ich Ihnen verschiedene neuronale Schichttypen und deren Funktionsweise. Zudem gebe ich Ihnen einen kurzen geschichtlichen Einblick in die Entwicklung der bemerkenswertesten Netzwerkarchitekturen im Bereich des bildbasierten Deep Learning. Anschließend werfen wir einen Blick darauf, wie man bereits zuvor trainierte Modelle in PyTorch nutzen kann.

In Kapitel 4, Transfer Learning und andere Kniffe, vertiefen wir das Thema Bildverarbeitung noch weiter und greifen dabei auf eine unglaublich effektive Technik im Deep Learning namens Transfer Learning zurück. Hierbei wird ein Modell auf eine Aufgabe (vor-)trainiert und im Anschluss daran auf eine andere Aufgabe übertragen, weshalb es sich sehr schnell und äußerst effektiv in Anwendung bringen lässt. In diesem Zusammenhang greifen wir auf ein großes, auf einen anderen Datensatz vortrainiertes Netzwerk namens ResNet zurück und nehmen darauf basierend eine Feinabstimmung auf unseren Datensatz vor, um unsere Katze-oder-Fisch-Klassifizierung noch akkurater zu gestalten. Hierbei zeige ich Ihnen auch, wie Sie die optimale Lernrate finden, differenzielle Lernraten im Rahmen der Feinabstimmung heranziehen und auch Datenaugmentationstechniken sowie Ensemble-Modelle zur weiteren Verbesserung Ihres Modells nutzen können.

In Kapitel 5, Textklassifizierung, lassen wir die Bilddomäne vorerst hinter uns und widmen uns textbasierten Ansätzen des Deep Learning zur Klassifizierung. Das Kapitel bietet einen Schnelleinstieg in die Thematik rund um rekurrente neuronale Netzwerke und deren Erweiterungen. Wir sehen uns an, wie Textdaten in Form von Einbettungen (engl. Embeddings) codiert und für das Deep Learning nutzbar gemacht werden. Außerdem erkunden wir das torchtext-Paket sowie die Erstellung eines Twitter-Datensatzes und wie man das Paket im Rahmen der Textverarbeitung für die Entwicklung eines LSTM-basierten Modells zur Klassifizierung von Tweets nutzt. Darüber hinaus sehen wir uns ebenso für Textdaten Strategien an, die Ihnen helfen, Ihren Datensatz zu erweitern.

Kapitel 6, Eine Reise in die Welt der Klänge, bietet Ihnen einen Einstieg in die Verarbeitung von Ton- bzw. Audiodaten. Wir sehen uns zwei sehr unterschiedliche Ansätze zur Klassifizierung an: einen, der auf der reinen Wellenform der Audiodaten und einem neuronalen Konvolutionsnetz beruht, und einen anderen, bei dem wir die Audiodaten zuvor in den Frequenzbereich überführen und uns erneut Transfer Learning zunutze machen. Dabei unternehmen wir einen kurzen Einstieg in das torchaudio-Paket und sehen uns an, wie sich Transformationen von Datensätzen effektiv berechnen lassen. Außerdem widmen wir uns abschließend mehreren Ansätzen zur Datenaugmentation von Audiodaten, die die Leistungsfähigkeit der Modelle und ihre Fähigkeit, zu verallgemeinern, verbessern sollen.

In Kapitel 7, PyTorch-Modelle debuggen, kommen wir darauf zu sprechen, wie man Modelle debuggen kann, wenn das Training nicht korrekt oder nicht schnell genug vonstattengeht. Wir werfen einen Blick darauf, wie wir mit sogenanntem Class Activation Mapping unter Nutzung von PyTorch-Hooks Deep-Learning-Modelle nachvollziehbarer gestalten können und wie man PyTorch zu Debugging-Zwecken mit Googles TensorBoard verbindet. Zudem erfahren Sie, wie Flammendiagramme eingesetzt werden können, um rechenintensive Funktionsaufrufe zu identifizieren und zu beseitigen, speziell in Bezug auf mögliche Verzögerungen bei Transformationen. Schließlich sehen wir uns an, wie Sie die Auslastung Ihrer GPU im Blick behalten, den Speicherbedarf reduzieren und wie Sie insbesondere bei der Verwendung größerer Modelle mithilfe von Checkpoints mehr Speicherkapazität auf Ihrer GPU erlangen können.

In Kapitel 8, PyTorch im Produktiveinsatz, kommen wir darauf zu sprechen, wie Sie PyTorch-Anwendungen in eine Produktionsumgebung überführen, das Deployment des Modells gestalten und Ihr Modell weiter optimieren können. Wir entwickeln einen skalierbaren Webdienst, mit dem wir in PyTorch erstellte Vorhersagemodelle über HTTP und gRPC bereitstellen. Dabei packen wir unsere Anwendung in einen Docker-Container, stellen sie in einem Kubernetes-Cluster über Google Cloud bereit und führen uns vor Augen, wie wir die Anwendung mittels Telemetrie und Logging überwachen können. Im zweiten Teil beschäftigen wir uns mit Optimierungsmöglichkeiten unseres Codes. Wir erkunden in diesem Zusammenhang TorchScript, das uns aufgrund seiner statischen Typisierung und graphenbasierten Darstellung ermöglicht, Python-basierte Modelle weiter zu optimieren. Ich zeige Ihnen, wie Sie mithilfe von Just-in-Time-(JIT-)Tracing und Scripting optimierte und Python-kompatible TorchScript-Modelle erstellen können, die überdies mithilfe von libTorch in C++ ausgeführt und dadurch noch weiter optimiert werden können. Abschließend werfen wir auch einen kurzen Blick darauf, wie große Modelle mittels Quantisierung komprimiert werden können.

In Kapitel 9, Praxiserprobte PyTorch-Modelle in Aktion, sehen wir uns an, wie PyTorch von Personen und Unternehmen rund um den Globus genutzt wird und wie Sie selber diese hochaktuellen Modelle mit bereits zur Verfügung stehenden Bibliotheken für Ihre Anwendung nutzen können. Dabei lernen Sie einige neue Ansätze und Modelle kennen. Zuerst beschäftigen wir uns damit, wie Sie Ihr Modell mithilfe weiterer Datenaugmentationstechniken noch verbessern und einer Überanpassung vorbeugen können. Anschließend skizziere ich Ihnen den Aufbau von Super-Resolution-Modellen, die auf Generative Adversarial Networks (GANs) basieren und mit denen wir Bilder hochauflösend hochskalieren können. Im Anschluss daran zeige ich Ihnen, wie Sie relativ schnell mit dem Konvolutionsnetzwerk Faster R-CNN Objekte auf Bildern erkennen und wie Sie Bilder erstellen können, die sogar dazu in der Lage sind, neuronale Netzwerke zu täuschen – sogenannte Adversarial Samples. Wir schauen uns die Grundstruktur von Transformer-basierten Architekturen an und wie diese insbesondere im Bereich des Natural Language Processing als Sprachmodelle zum Tragen kommen. Hierbei zeige ich Ihnen, wie Sie Ihre Feinabstimmung mit einem Transformer-basierten Modell vornehmen (FastBERT), synthetische Tweets mit GPT-2 erzeugen und ein vortrainiertes ULMFiT-Modell sehr schnell mithilfe der fast.ai-Bibliothek zur Klassifizierung von Tweets heranziehen können, das zwar nicht auf dieser Architektur basiert, aber dennoch zufriedenstellende Ergebnisse liefert. Zu guter Letzt greifen wir noch auf PyTorch Lightning zurück, und ich zeige Ihnen verschiedene Anwendungsfälle des selbstüberwachten Lernens im Rahmen des Vorabtrainings, mit dem sich die Modellleistung für verschiedene Aufgabenstellungen weiter verbessern lässt. Hier lernen Sie einerseits den Ansatz kennen, Eingaben zu verändern und diese mithilfe von Selbstüberwachung wiederherzustellen, und andererseits den vielversprechenden Ansatz, Labels für Ihre Daten ohne jeglichen menschlichen Annotationsaufwand zu erstellen.

PyTorch für Deep Learning

Подняться наверх