PyTorch für Deep Learning. Ian Pointer
Der Abschnitt zu den Transformer-basierten Modellen (ULMFiT, GPT-2 und FastBERT) wurde überarbeitet, und die Codebeispiele wurden komplett in PyTorch überführt. Darüber hinaus wurde der Abschnitt »Alles in einem« in Kapitel 2 inhaltlich ergänzt.
Softwareversionen
Der Code in diesem Buch wurde mit den folgenden Versionen auf Funktionsfähigkeit getestet: Python 3.6.9, PyTorch (torch) 1.6.0 (bis auf den Code im Abschnitt »Faster R-CNN und Mask R-CNN« auf Seite 203, der PyTorch-Version 1.0 nutzt), torchvision 0.7.0, torchtext 0.7.0 und torchaudio 0.6.0. Auf der GitHub-Seite des Buchs finden Sie Dateien mit einer vollständigen Auflistung aller genutzten Versionen. Diese können Sie zur Versionskontrolle nutzen, insbesondere dann, wenn Sie die Installationen lokal vornehmen möchten und in einer eigens dafür vorgesehenen virtuellen Umgebung arbeiten.
Sollten Sie mit dem Paketverwaltungsprogramm pip arbeiten, empfehle ich Ihnen, mit dem Befehl python3 -m venv .venv von Ihrer Kommandozeile aus (wenn Sie sich im Zielordner befinden) eine virtuelle Umgebung einzurichten (https://docs.python.org/3/library/venv.html#module-venv). Nach Aktivierung der virtuellen Umgebung können Sie auf Basis der Datei requirements.txt alle notwendigen Bibliotheken und Pakete mit dem Befehl pip install -r requirement.txt installieren. Wenn Sie sich für conda entscheiden, steht Ihnen eine Datei namens environment.yml zur Verfügung, mit der Sie die Installationen mit dem Befehl conda env create durchführen können. Auf gleiche Weise können Sie auch die Version bei der Installation einzelner Pakete kontrollieren. Beispielsweise könnten Sie die Befehle pip install torch==1.6.0 oder conda install torch==1.6.0 ausführen, um die Installation von PyTorch-Version 1.6.0 zu gewährleisten.
Es ist nicht auszuschließen, dass Veränderungen an den zugrunde liegenden Bibliotheken oder Paketen vorgenommen werden oder dass sich Schnittstellendefinitionen verändern. Sollten Sie einmal feststellen, dass der Code nicht wie gewünscht läuft, zögern Sie nicht, im Repository auf GitHub (https://oreil.ly/pytorch-github) nachzusehen, ob neuere Codeversionen verfügbar sind (oder gesonderte Branches) oder ob es offene oder geschlossene Issues gibt, die Ihnen bei Ihrem Problem weiterhelfen könnten.
Weitere Ressourcen
Deep Learning – Grundlagen und Implementierung: Neuronale Netze mit Python und PyTorch programmieren von Seth Weidman, O’Reilly 2020
Natural Language Processing mit PyTorch: Intelligente Sprachanwendungen mit Deep Learning erstellen von Delip Rao und Brian McMahan, O’Reilly 2019
GANs mit PyTorch selbst programmieren: Ein verständlicher Einstieg in Generative Adversarial Networks von Tariq Rashid, O’Reilly 2020
In diesem Buch verwendete Konventionen
Die folgenden typografischen Konventionen werden in diesem Buch eingesetzt:
Kursiv
Kennzeichnet neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateiendungen.
Konstante Zeichenbreite
Wird für Programmlistings und für Programmelemente in Textabschnitten wie Namen von Variablen und Funktionen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter verwendet.
Konstante Zeichenbreite, fett
Kennzeichnet Befehle oder anderen Text, den der Nutzer wörtlich eingeben sollte.
Konstante Zeichenbreite, kursiv
Kennzeichnet Text, den der Nutzer je nach Kontext durch entsprechende Werte ersetzen sollte.
|
Dieses Symbol steht für einen Tipp oder eine Empfehlung. |
|
Dieses Symbol steht für einen allgemeinen Hinweis. |
|
Dieses Symbol warnt oder mahnt zur Vorsicht. |
Verwenden von Codebeispielen
Zusätzliche Materialien (Codebeispiele, Übungen und so weiter) können Sie von der Adresse https://oreil.ly/pytorch-github herunterladen.
Dieses Buch dient dazu, Ihnen beim Erledigen Ihrer Arbeit zu helfen. Im Allgemeinen dürfen Sie die Codebeispiele aus diesem Buch in Ihren eigenen Programmen und der dazugehörigen Dokumentation verwenden. Sie müssen uns dazu nicht um Erlaubnis bitten, solange Sie nicht einen beträchtlichen Teil des Codes reproduzieren. Beispielsweise benötigen Sie keine Erlaubnis, um ein Programm zu schreiben, in dem mehrere Codefragmente aus diesem Buch vorkommen. Wollen Sie dagegen eine CD-ROM mit Beispielen aus Büchern von O’Reilly verkaufen oder verteilen, benötigen Sie eine Erlaubnis. Eine Frage zu beantworten, indem Sie aus diesem Buch zitieren und ein Codebeispiel wiedergeben, benötigt keine Erlaubnis. Eine beträchtliche Menge Beispielcode aus diesem Buch in die Dokumentation Ihres Produkts aufzunehmen, bedarf hingegen unserer ausdrücklichen Zustimmung.
Wir freuen uns über Zitate, verlangen diese aber nicht. Ein Zitat enthält Titel, Autor, Verlag und ISBN. Beispiel: »PyTorch für Deep Learning von Ian Pointer (O’Reilly). Copyright 2021 dpunkt.verlag, ISBN 978-3-96009-134-9.«
Wenn Sie glauben, dass Ihre Nutzung von Codebeispielen über den übliche Rahmen hinausgeht oder außerhalb der oben vorgestellten Nutzungsbedingungen liegt, kontaktieren Sie uns bitte unter [email protected].
Danksagungen
Ein herzliches Dankeschön an meine Lektorin, Melissa Potter, meine Familie und Tammy Edlund für all ihre Hilfe bei der Umsetzung dieses Buchs.
Vielen Dank auch an die technischen Gutachter, die während des gesamten Schreibprozesses wertvolles Feedback gaben, darunter Phil Rhodes, David Mertz, Charles Givre, Dominic Monn, Ankur Patel und Sarah Nagy.
KAPITEL 1
Einstieg in PyTorch
In diesem Kapitel richten wir alle erforderlichen Elemente ein, die wir für die Arbeit mit PyTorch benötigen. Jedes folgende Kapitel wird anschließend auf diesem anfänglichen Grundgerüst aufbauen, daher ist es wichtig, dass wir es richtig machen. Dies führt zu unserer ersten grundlegenden Frage: Sollten Sie besser einen maßgeschneiderten Computer für Deep Learning zusammenstellen oder einfach eine der vielen verfügbaren Cloud-basierten Ressourcen verwenden?
Zusammenbau eines maßgeschneiderten Deep-Learning-Rechners
Wenn man sich ins Deep Learning stürzt, verspürt man den Drang, sich ein Rechenmonstrum zusammenzustellen. Sie können Tage damit verbringen, sich verschiedene Arten von Grafikkarten anzusehen, die verschiedenen