Definition

PyTorch

Was ist PyTorch?

PyTorch ist ein Open Source Framework für maschinelles Lernen (ML), das auf der Programmiersprache Python und der Torch-Bibliothek basiert. Torch ist eine Open Source Machine-Learning-Bibliothek, die für die Erstellung neuronaler Netze verwendet wird und in der Skriptsprache Lua geschrieben ist. Sie ist eine der bevorzugten Plattformen für die Forschung im Bereich Deep Learning. Das Framework wurde entwickelt, um den Prozess zwischen Forschungsprototyp und Bereitstellung zu beschleunigen.

Das PyTorch-Framework unterstützt über 200 verschiedene mathematische Operationen. Die Beliebtheit von PyTorch nimmt weiter zu, da es die Erstellung von Modellen für künstliche neuronale Netze vereinfacht. PyTorch wird hauptsächlich von Datenwissenschaftlern für Forschungs- und KI-Anwendungen (künstliche Intelligenz) verwendet. PyTorch wird unter einer modifizierten BSD-Lizenz veröffentlicht.

PyTorch war ursprünglich ein Praktikumsprojekt für Adam Paszke, der zu dieser Zeit ein Student von Soumith Chintala war, einem der Entwickler von Torch. Paszke und mehrere andere arbeiteten mit Entwicklern verschiedener Universitäten und Unternehmen zusammen, um PyTorch zu testen. Chintala arbeitet derzeit bei Meta – ehemals Facebook –, das PyTorch als zugrunde liegende Plattform für die Steuerung aller KI-Arbeitslasten verwendet.

Wie funktioniert PyTorch?

PyTorch ist pythongebunden, das heißt es folgt dem Programmierstil, der die einzigartigen Funktionen von Python nutzt, um lesbaren Code zu schreiben. Python ist auch für die Verwendung dynamischer Berechnungsgraphen beliebt. Es ermöglicht Entwicklern, Wissenschaftlern und Debuggern neuronaler Netze, einen Teil des Codes in Echtzeit auszuführen und zu testen, anstatt darauf zu warten, dass das gesamte Programm geschrieben wird.

PyTorch bietet folgende Hauptfunktionen:

  • Tensorrechnung. Ähnlich wie NumPy-Arrays – eine Open-Source-Bibliothek von Python, die große, mehrdimensionale Arrays unterstützt – sind Tensoren generische n-dimensionale Arrays, die für beliebige numerische Berechnungen verwendet und durch Grafikprozessoren beschleunigt werden. Diese mehrdimensionalen Strukturen können mit Programmierschnittstellen (APIs) bearbeitet und manipuliert werden.
  • TorchScript. Dies ist die Produktionsumgebung von PyTorch, die Anwendern einen nahtlosen Übergang zwischen den Modi erlaubt. TorchScript optimiert Funktionalität, Geschwindigkeit, Benutzerfreundlichkeit und Flexibilität.
  • Dynamische Graphberechnung. Mit dieser Funktion können Benutzer das Netzwerkverhalten im laufenden Betrieb ändern, anstatt auf die Ausführung des gesamten Codes zu warten.
  • Automatische Differenzierung. Diese Technik wird zum Erstellen und Trainieren neuronaler Netze verwendet. Sie berechnet die Ableitung einer Funktion numerisch, indem sie Rückwärtsdurchläufe in neuronalen Netzen durchführt.
  • Python-Unterstützung. Da PyTorch auf Python basiert, kann es mit gängigen Bibliotheken und Paketen wie NumPy, SciPy, Numba und Cynthon verwendet werden.
  • Variable. Die Variable ist außerhalb des Tensors eingeschlossen, um den Gradienten zu halten. Sie stellt einen Knoten in einem Berechnungsgraphen dar.
  • Parameter. Parameter werden um eine Variable gewickelt. Sie werden verwendet, wenn ein Parameter als Tensor verwendet werden muss, was bei Verwendung einer Variablen nicht möglich ist.
  • Modul. Module stellen neuronale Netze dar und sind die Bausteine der zustandsbehafteten Berechnung. Ein Modul kann andere Module und Parameter enthalten.
  • Funktionen. Dies sind die Beziehungen zwischen zwei Variablen. Funktionen haben keinen Speicher, um einen Zustand oder Puffer zu speichern, und haben keinen eigenen Speicher.

Vorteile von PyTorch

Die Verwendung von PyTorch bietet folgende Vorteile:

  • Bietet Entwicklern eine leicht zu erlernende, einfach zu programmierende Struktur, die auf Python basiert.
  • Ermöglicht einfaches Debugging mit gängigen Python-Tools.
  • Bietet Skalierbarkeit und wird auf den wichtigsten Cloud-Plattformen unterstützt.
  • Bietet eine kleine Community, die sich auf Open Source konzentriert.
  • Exportiert Lernmodelle in das Standardformat Open Neural Network Exchange (ONNX).
  • Bietet eine benutzerfreundliche Oberfläche.
  • Bietet eine C++-Frontend-Schnittstellenoption.
  • Enthält eine Vielzahl leistungsstarker APIs, die die PyTorch-Bibliothek erweitern.

PyTorch versus TensorFlow

PyTorch wird oft mit TensorFlow verglichen, einem von Google entwickelten Deep Machine Learning Framework. Da es TensorFlow schon länger gibt, hat es eine größere Entwickler-Community und Dokumentation.

PyTorch hat jedoch Vorteile gegenüber TensorFlow. PyTorch definiert Berechnungsgraphen dynamisch, im Gegensatz zum statischen Ansatz von TensorFlow. Dynamische Graphen können in Echtzeit bearbeitet werden. Darüber hinaus ist TensorFlow schwerer zu erlernen, da PyTorch auf intuitivem Python basiert.

TensorFlow eignet sich möglicherweise besser für Projekte, die Produktionsmodelle und Skalierbarkeit erfordern, da es mit der Absicht entwickelt wurde, produktionsreif zu sein. PyTorch ist jedoch einfacher und leichter zu handhaben, was es zu einer guten Option für die schnelle Erstellung von Prototypen und die Durchführung von Forschungsarbeiten macht.

Die wichtigsten Anwendungsfälle von PyTorch

PyTorch ist aufgrund seiner Flexibilität und Rechenleistung eines der beliebtesten Deep Learning Frameworks. Es ist leicht zu erlernen und wird in vielen Anwendungen eingesetzt, darunter in der Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) und der Bildklassifizierung.

Im Folgenden sind einige gängige Anwendungsfälle von PyTorch aufgeführt:

Natural Language Processing (NLP). NLP ist eine verhaltensbasierte Technologie, die es einem Computer ermöglicht, die menschliche Sprache in gesprochener oder geschriebener Form zu verstehen. Zu den Hauptelementen von NLP gehören maschinelle Übersetzung, Informationsabruf, Stimmungsanalyse, Informationsextraktion und Beantwortung von Fragen.

Elemente von Natural Language Processing (NLP)
Abbildung 1: Die fünf Kernelemente von NLP.

Tiefe neuronale Netze stehen hinter mehreren Durchbrüchen beim maschinellen Verständnis natürlicher Sprachen wie Siri und Google Translate. Die meisten dieser Modelle verwenden jedoch eine Methode rekurrenter neuronaler Netze, um Sprache als flache Abfolge von Wörtern zu behandeln, während viele Linguisten das rekursive neuronale Netzwerkmodell unterstützen, da sie der Meinung sind, dass Sprache am besten verstanden wird, wenn sie in einer hierarchischen Baumstruktur von Wörtern und Sätzen dargestellt wird. PyTorch macht diese komplizierten Sprachmodelle leichter verständlich. So hat Salesforce beispielsweise 2018 ein Multitasking-NLP-Lernmodell entwickelt, das zehn Aufgaben gleichzeitig ausführt.

Bestärkendes Lernen. Die Python-Bibliothek Pyqlearning wird für die Ausführung von bestärkendem Lernen (Reinforcement Learning) verwendet, das ein Teil des maschinellen Lernens ist. Beim bestärkenden Lernen wird eine Maschine dazu gebracht, aus Erfahrung zu lernen, damit sie die richtigen Entscheidungen treffen kann, um die bestmögliche Belohnung zu erhalten. Bestärkendes Lernen wird hauptsächlich für die Entwicklung von Robotik für die Automatisierung, die Bewegungssteuerung von Robotern oder die Planung von Geschäftsstrategien verwendet und verwendet die Python Deep Q-Lernarchitektur für die Erstellung eines Modells.

Bildklassifizierung. Bei diesem Prozess wird ein Bild anhand seines visuellen Inhalts mithilfe eines Bildklassifizierungsalgorithmus klassifiziert. Der Algorithmus kann beispielsweise einer Computer-Vision-Anwendung mitteilen, ob ein bestimmtes Bild eine Katze oder einen Hund enthält. Während die Objekterkennung für das menschliche Auge mühelos ist, kann sie für Computer-Vision-Anwendungen eine Herausforderung darstellen. Mit PyTorch kann ein Entwickler Bilder und Videos verarbeiten, um ein genaues Computer-Vision-Modell zu erstellen.

Diese Definition wurde zuletzt im Januar 2025 aktualisiert

Erfahren Sie mehr über Softwareentwicklung