GANs mit PyTorch selbst programmieren -  Tariq Rashid

GANs mit PyTorch selbst programmieren (eBook)

Ein verständlicher Einstieg in Generative Adversarial Networks

(Autor)

eBook Download: EPUB
2020 | 1. Auflage
216 Seiten
O'Reilly Verlag
978-3-96010-394-3 (ISBN)
Systemvoraussetzungen
29,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Neues von Bestsellerautor Tariq Rashid: Eine Einführung in die innovative Deep-Learning-Technik GANs

  • Schritt-für-Schritt-Anleitung zum Erstellen eigener GANs mit PyTorch, regt zum Ausprobieren an
  • GANs (Generative Adversarial Networks) gehören zu den spannendsten neuen Algorithmen im Machine Learning
  • Tariq Rashid erklärt diese schwierige Materie außergewöhnlich klar und gut nachvollziehbar

'Die coolste Idee im Deep Learning in den letzten 20 Jahren' sagt Yann LeCun, einer der weltweit führenden Forscher auf dem Gebiet der neuronalen Netze, über GANs, die Generative Adversarial Networks. Bei dieser noch neuen KI-Technik treten zwei neuronale Netze gegeneinander an mit dem Ziel, Bilder, Ton und Videos zu erzeugen, die vom Original nicht zu unterscheiden sind.
Dieses Buch richtet sich an alle, die selbst ausprobieren möchten, wie GANs funktionieren. Tariq Rashid zeigt Ihnen Schritt für Schritt, wie Sie mit dem populären Framework PyTorch Ihre eigenen GANs erstellen und trainieren. Sie starten mit einem sehr einfachen GAN, um einen Workflow einzurichten, und üben erste Techniken anhand der MNIST-Datenbank ein. Mit diesem Wissen programmieren Sie dann ein GAN, das realistische menschliche Gesichter erzeugen kann. Tariq Rashids besondere Fähigkeit, komplexe Ideen verständlich zu erklären, macht das Buch zu einer unterhaltsamen Lektüre.



Tariq Rashid ist Physiker, hat einen Master in Machine Learning und Data Mining und leitet die Londoner Python-Meetup-Gruppe mit 3.000 Mitgliedern. Er ist ein Verfechter des Open-Source-Gedankens und konnte eine Open-Source-Reform für die britische Regierung durchführen. Er ist der Überzeugung, dass immer noch zu viele wichtige Ideen schlecht erklärt werden. Seine persönliche Mission ist es, spannende, aber komplexe technische Konzepte besser zu vermitteln.

Tariq Rashid ist Physiker, hat einen Master in Machine Learning und Data Mining und leitet die Londoner Python-Meetup-Gruppe mit 3.000 Mitgliedern. Er ist ein Verfechter des Open-Source-Gedankens und konnte eine Open-Source-Reform für die britische Regierung durchführen. Er ist der Überzeugung, dass immer noch zu viele wichtige Ideen schlecht erklärt werden. Seine persönliche Mission ist es, spannende, aber komplexe technische Konzepte besser zu vermitteln.

KAPITEL 1


Grundlagen von PyTorch


In meinem letzten Buch Neuronale Netze selbst programmieren haben wir einfache, aber effektive neuronale Netze erstellt, und zwar ausschließlich mit Python und der Bibliothek NumPy für das Verarbeiten von Datenarrays.

Auf beliebte Frameworks wie PyTorch und TensorFlow für das Erstellen von neuronalen Netzen haben wir verzichtet, weil es wichtig war, die Netze von Grund auf neu aufzubauen, um ihre Funktionsweise wirklich zu verstehen.

Diese ganze Arbeit, die wir zu Fuß erledigen mussten, macht deutlich, dass der Aufbau größerer Netzwerke eine mühsame Aufgabe werden könnte. Einer der aufwendigsten Bereiche ist die Berechnung der Beziehung zwischen dem Fehler, der durch Backpropagation zurückgegeben wurde, und den Gewichten in unserem Netz. Wenn wir das Netz verändern, müssen wir möglicherweise die gesamte Arbeit noch einmal absolvieren.

Hier werden wir PyTorch einsetzen, weil uns diese Bibliothek eine Menge Routinearbeiten abnimmt, sodass wir uns auf den Entwurf unserer Netze konzentrieren können.

Zu den leistungsfähigsten und komfortabelsten Features von PyTorch gehört, dass die Bibliothek sämtliche Berechnungen für uns erledigt, egal welche Gestalt oder Größe das Netz hat, das wir uns ausdenken. Und wenn wir das Design unseres Netzes verändern, passt PyTorch die Berechnungen automatisch an, ohne dass wir Bleistift und Papier auspacken müssen, um die Gradienten erneut zu berechnen.

Außerdem hat man sich bei PyTorch wirklich sehr darum bemüht, dem Look-and-feel von normalem Python zu entsprechen. Das bedeutet, es ist leicht zu erlernen, wenn Sie Python bereits kennen, und es gibt weniger Überraschungen, wenn Sie damit arbeiten.

Google Colab


Wir haben im Buch Neuronale Netze selbst programmieren Code mithilfe der webbasierten Python-Notebooks geschrieben, die auf unserem eigenen Computer gelaufen sind. Jetzt verwenden wir Python-Notebooks, die der kostenlose Dienst Colab von Google bereitstellt und die unseren Code auf den Google-eigenen Computern ausführen.

Der Zugriff auf Colab-Dienste von Google erfolgt gänzlich über einen Webbrowser. Es ist nicht erforderlich, irgendwelche Software auf dem eigenen Computer oder Laptop zu installieren.

Bevor wir loslegen, sollten Sie sich mit einem Google-Konto anmelden. Wenn Sie über ein Gmail- oder YouTube-Konto verfügen, ist dies Ihr Google-Konto. Haben Sie noch kein Google-Konto eingerichtet, können Sie eines über den folgenden Link erstellen:

Sobald Sie angemeldet sind, aktivieren Sie den Colab-Dienst von Google, indem Sie den diesen Link besuchen:

Von dieser Seite aus gelangen Sie zu einem Beispiel-Python-Notebook. Wählen Sie im Menü File den Eintrag New Python 3 notebook, um ein neues Notebook anzulegen (siehe Abbildung 1-1).

Abbildung 1-1: Die Startseite von Google Colab

Es erscheint ein leeres Python-Notebook (siehe Abbildung 1-2), das wir sofort verwenden können.

Abbildung 1-2: Ein neues leeres Python-Notebook

Wenn Sie sich auf einem separaten Browser-Tab den Google-Dateispeicher Drive ansehen, finden Sie einen neuen Ordner namens Colab Notebooks. Dies ist der Ordner, in dem neue Python-Notebooks standardmäßig gespeichert werden.

Abbildung 1-3 zeigt ein neues Notebook mit dem Namen Untitled0.ipynb.

Abbildung 1-3: Ein neues Notebook mit dem Namen »Untitled0.ipynb«

Wir überprüfen nun, ob wir Python-Code ausführen können. Tippen Sie in die erste Zelle den folgenden einfachen Code ein:

2 + 3

Klicken Sie auf die Schaltfläche mit dem Abspielen-Symbol links neben der Zelle, um den Code auszuführen. Wenn Sie den Colab-Dienst bisher noch nicht genutzt haben, kann es eine Weile dauern, bis die erste Python-Anweisung ausgeführt wird, da Google einen Moment braucht, um eine virtuelle Maschine zu starten und Ihr Notebook mit ihr zu verbinden.

Schließlich sollte die Antwort 5 erscheinen, wie Abbildung 1-4 zeigt.

Abbildung 1-4: Das Ergebnis des ausgeführten Codes

Großartig! Alles funktioniert, und wir sind bereit, mehr über PyTorch zu erfahren.

PyTorch-Tensoren


Bevor wir PyTorch verwenden können, müssen wir das Python-Modul torch importieren. Erfreulicherweise hält der Colab-Service von Google viele dieser beliebten Bibliotheken für maschinelles Lernen für uns bereit, PyTorch eingeschlossen. Wir müssen die Bibliotheken nur noch importieren, um sie unmittelbar einsetzen zu können. Es ist nicht erforderlich, einen komplizierten Installationsprozess zu durchlaufen.

Geben Sie den folgenden Code in die erste Zelle ein und führen Sie ihn aus:

import torch

Um PyTorch zu verstehen, bietet es sich an, seine grundlegenden Informationseinheiten mit reinem Python zu vergleichen. In reinem Python speichern wir Zahlen in Variablen. Diese Variablen können wir wie mathematische Symbole verwenden, um neue Werte zu berechnen und diese in neuen Variablen zu speichern, wenn wir das wünschen.

Sehen Sie sich dazu den folgenden einfachen Python-Code an:

# Normale Python-Variablen

x = 3.5

y = x*x + 2

print(x, y)

Wir erzeugen eine Variable x und geben ihr den Wert 3.5. Dann erzeugen wir eine neue Variable y und geben ihr einen Wert, der aus dem Ausdruck x*x + 2 berechnet wird, was (3.5*3.5) + 2 oder 14.25 ist. Schließlich geben wir die Werte von x und y aus.

Tippen Sie den Code in eine neue Zelle ein und führen Sie ihn aus. Abbildung 1-5 zeigt, wie das Ergebnis aussehen sollte.

Abbildung 1-5: Die Verwendung einer Variablen

PyTorch hat eine eigene Form von Variablen, um Zahlen zu speichern – die sogenannten PyTorch-Tensoren. Mit den folgenden Anweisungen erstellen Sie einen sehr einfachen Tensor:

# Einfacher PyTorch-Tensor

x = torch.tensor(3.5)

print(x)

Wir erzeugen hier etwas, das x genannt wird. Dieses x ist ein PyTorch-Tensor, der mit dem Wert 3.5 initialisiert wird.

Geben Sie den Code ein und führen Sie ihn aus, um zu sehen, was die Ausgabe von x bewirkt.

Abbildung 1-6: Einen PyTorch-Tensor erzeugen und ausgeben

Die Ausgabe zeigt, dass der numerische Wert 3.5000 beträgt, aber auch, dass er in einem PyTorch-tensor enthalten ist. Es ist nützlich zu wissen, in welcher Art von Container diese Zahl gespeichert ist.

Führen wir nun einige einfache arithmetische Berechnungen mit diesem Tensor aus. Geben Sie in die nächste Zelle den folgenden Code ein:

# Einfache Arithmetik mit Tensoren

y = x + 3

print(y)

Hier erzeugen wir aus dem Ausdruck x + 3 eine neue Variable y. Eben haben wir x als PyTorch-Tensor mit dem Wert 3.5 erzeugt. Welchen Wert wird also y haben?

Probieren Sie es aus.

Abbildung 1-7: Arithmetik mit einem Tensor

Wie Abbildung 1-7 zeigt, hat y den Wert 6.5, was Sinn ergibt, denn 3.5 + 3 = 6.5. Außerdem sehen wir, dass y ebenfalls ein PyTorch-Tensor ist.

Sicherlich erinnern Sie sich daran, dass auch NumPy-Arrays in der gleichen Weise funktionieren. Diese Vertrautheit kommt uns entgegen, und durch die Übereinstimmung mit NumPy ist es zudem einfacher, PyTorch zu erlernen.

Automatische Gradienten mit PyTorch


Sehen wir uns nun an, wie sich PyTorch von reinem Python und NumPy abhebt und es so besonders macht. Der folgende Code erzeugt genau wie zuvor einen Tensor x, dieses Mal aber geben wir PyTorch eine zusätzliche Option requires_grad= True mit. Wir werden bald sehen, was diese Option bewirkt.

# PyTorch-Tensor

x = torch.tensor(3.5, requires_grad=True)

print(x)

Führen Sie den Code aus und sehen Sie sich an, was für x ausgegeben wird (siehe Abbildung 1-8).

Abbildung 1-8: Eine Tensoroperation mit einer...

Erscheint lt. Verlag 15.9.2020
Übersetzer Frank Langenau
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte AI • Artificial Intelligence • Big Data • Data Mining • Deep learning • GaN • generative adversarial networks • Künstliche Intelligenz • Künstliche Neuronale Netze • machine learning • Maschinelles Lernen • Neuronale Netze • Python • PyTorch
ISBN-10 3-96010-394-8 / 3960103948
ISBN-13 978-3-96010-394-3 / 9783960103943
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 19,2 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
37,43
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
33,68