PyTorch installieren?

5 Gründe für das Deep Learning Framework

06.03.2020
Von  und
Ian Pointer ist Senior Big Data und Deep Learning Architect. Er beschäftigt sich vor allem mit Apache Spark und PyTorch und schreibt für unsere US-Schwesterpublikation Infoworld.com.


Florian Maier beschäftigt sich mit diversen Themen rund um Technologie und Management.
TensorFlow hat im Kampf der Deep Learning Frameworks immer noch die Nase vorn. Doch jeden Tag gibt es mehr Gründe, zu PyTorch zu wechseln. Wir nennen Ihnen fünf.

Im Umfeld von Machine Learning beziehungsweise Deep Learning ist das Framework PyTorch derzeit das "next big thing". Das gilt insbesondere nach den aktuellen Releases 1.3 und 1.4, die zahlreiche Performance-Verbesserungen und entwicklerfreundliche Support-Features für mobile Plattformen enthalten. Wir nennen Ihnen fünf gute Gründe dafür, statt auf MXNet, Chainer oder TensorFlow künftig auf PyTorch zu setzen.

PyTorch gilt unter den Machine- und Deep-Learning-Frameworks als das "next big thing". Wir nennen Ihnen fünf gute Gründe dafür.
PyTorch gilt unter den Machine- und Deep-Learning-Frameworks als das "next big thing". Wir nennen Ihnen fünf gute Gründe dafür.
Foto: Iaremenko Sergii - shutterstock.com

Wenn Sie TensorFlow-Nutzer sind und jetzt bereits die Zähne fletschen: Dieser Artikel soll nicht darlegen, wie gut oder schlecht eines der eben genannten Deep Learning Frameworks ist, sondern die Vorteile und Einsatzfelder von PyTorch ins Rampenlicht rücken.

1. PyTorch heißt Python

Ein wesentlicher Grund für die steigende Akzeptanz von PyTorch ist der zugrundeliegende Programmcode. Das Framework ist für die Programmiersprache Python konzipiert, die in vielen Fällen deutlich besser zu verstehen ist, als andere Coding-Sprachen. Models und Layer sind einfach Python "classes" - genau wie alles andere, egal ob "optimizers", "data loaders", "loss functions" oder "transformations".

Dank seines "eager-execution"-Modus fällt es nicht besonders schwer, PyTorch classes im Auge zu behalten. Debugging läuft per TensorBoard oder mit Standard-Python-Techniken. Das erleichtert Nutzern, die von anderen Data Science Frameworks wie Pandas oder Scikit-learn umsteigen wollen, erheblich den Einstieg.

PyTorch hat außerdem eine stabile API vorzuweisen: Bislang wurde lediglich eine größere Änderung vorgenommen - nämlich die Nutzung von Tensoren statt Variablen. Das liegt natürlich daran, dass es PyTorch noch nicht solange gibt. Es sorgt aber dafür, dass so gut wie jeder PyTorch-Programmcode wiedererkennbar und verständlich ist - unabhängig davon, für welche Version des Deep-Learning- Frameworks er geschrieben wurde.

2. Machine Learning "out of the box"

Dem "Out-of-the-box"-Gedanken folgt PyTorch nicht exklusiv, aber der Einstieg in das Deep-Learning- Framework gelingt bemerkenswert schnell und er geht einfach von der Hand. Mit Hilfe des PyTorch Hub gelangen sie zu einem vortrainierten ResNet-50 Model mit einer einzigen Codezeile:

  • Model = torch.hub.load('pytorch/vision', 'resnet50', pretrained=True)

Da der PyTorch Hub domänenübergreifend angelegt ist, finden sich hier zahlreiche Architekturen für die Arbeit mit Text-, Audio- und Bildmaterial. Neben Modellen beinhaltet PyTorch erwartungsgemäß eine lange Liste von "loss functions" und "optimizers" - bietet aber auch die Möglichkeit, Daten schnell und einfach einzuladen, bestehende Veränderungen miteinander zu integrieren oder eigene "loaders" anzulegen. Weil das Gesamtkonstrukt auf Python basiert, ist dazu lediglich die Implementierung eines Standard Class Interface notwendig.

3. PyTorch beherrscht die Wissenschaft

Für Wissenschaftler ist PyTorch inzwischen das Maß aller Dinge. Das lässt sich alleine schon daran ablesen, dass das Deep-Learning-Framework inzwischen bei allen wichtigen Veranstaltungen zum Thema Machine Learning und Deep Learning Thema ist. Bereits im Jahr 2018 verzeichnete PyTorch exorbitantes Wachstum - im Jahr 2019 wurde es zum State-of-the-Art Framework. Der Grund für diese Erfolgswelle liegt darin begründet, dass PyTorch auf Python basiert.

Mit neuen Konzepten und Ansätzen zu experimentieren, fällt eben wesentlich leichter, wenn bestimmte Komponenten innerhalb einer einfachen, stabilen Unterkategorie einer Python-Klassifizierung erstellt werden können. Wenn Sie einen Layer schreiben wollen, der Parameter-Informationen an TensorBoard oder ElasticSearch sendet, ist das kein Problem - gleiches gilt für die Einbindung von Bibliotheken für das Netzwerk-Training oder das Austesten ungewöhnlicher, neuer Training Loops. PyTorch wird Ihnen dabei nicht im Weg stehen.

Ein Umstand, der den Erfolg von PyTorch derzeit noch einschränkt: Geht es um die produktive Nutzung, führt weiterhin kein Weg an TensorFlow vorbei. Da sich PyTorch aber inzwischen auch mit Seldon Core und Kubeflow integrieren lässt, steht einem Deployment in Produktionsumgebungen per Kubernetes nichts mehr im Weg. Das ist übrigens (fast) genauso einfach wie mit TensorFlow.

4. Deep Learning wird einfacher

Es gibt viele Tutorials und E-Learning-Kurse zum Thema Deep Learning im Netz. In diesem Zusammenhang ist der kostenlose Kurs von fast.ai sehr empfehlenswert. Im ersten Jahr konzentrierte sich das fast.ai-Team noch stark auf Keras - inzwischen ist man auf PyTorch umgeschwenkt.

Die aktuelle Version des Kurses zeigt Ihnen, wie Sie Aufgaben wie Klassifizierungen, Segmentierungen und Predictions zu zufriedenstellenden Ergebnissen führen. Außerdem lernen Sie bei dieser Gelegenheit alles über GANs - inklusive einer ganzen Fülle von Tipps und Tricks, die selbst hartgesottene Experten überraschen könnten. Natürlich geht der Kurs von fast.ai auch auf die Grundlagen von PyTorch ein - etwa darauf, wie man eine Bibliothek anlegt.

5. Die PyTorch-Community

Die Webseite der PyTorch-Community weist eine ausgereifte Dokumentation auf, die auf dem aktuellen Release-Stand ist und daneben ein ausuferndes Set an Tutorials bereithält. Letztere geben über die Features von PyTorch genauso Auskunft, wie darüber, die Bibliotheken mit speziellen C++ "operators" zu erweitern. Insbesondere wenn neue Features hinzugefügt werden, sind die Tutorials Gold wert.

Neben der offiziellen Dokumentation empfiehlt sich auch ein Blick in das offizielle Community-Forum. Egal welches Problem Sie auch in Zusammenhang mit PyTorch plagen mag - hier dürften Sie die Hilfestellung finden, die Sie brauchen. Mit circa 1.500 abgesetzten Posts pro Woche ist die PyTorch Community eine äußerst aktive.

PyTorch: Vielversprechende Zukunft

Die Kombination der genannten fünf Gründe ist es, die PyTorch für viele Interessenten zum Deep Learning Framework der Wahl macht. Zwar gibt es definitiv Felder, die noch ausbaufähig sind - etwa wenn es um mobile Netzwerke oder die einfache Quantifizierung von Modellen geht. Angesichts der Entwicklungsgeschwindigkeit, die PyTorch bislang vorgelegt hat, ist aber damit zu rechnen, dass das Framework diese Defizite bis Ende 2020 weitgehend ausgeglichen hat.

Der positive Ausblick begründet sich in zwei weiteren Entwicklungen: Zum einen wurde mit PyTorch Elastic im Dezember 2019 ein neues (Beta-)Feature vorgestellt, dass die Training Packages von PyTorch erweitert, um besseres Training für großangelegte Modelle zu gewährleisten. Zum anderen hat OpenAI angekündigt, PyTorch fortan als primäres Entwicklungs-Framework zum Einsatz bringen zu wollen. Das kann man als großen Wurf für das Deep-Learning-Framework werten, schließlich bedeutet es, dass die Erfinder von GPT-2 PyTorch im Vergleich mit TensorFlow als die produktivere Umgebung einschätzen.

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.com.