Machine Learning: PyTorch 1.2 verbessert Scripting und Export
Das Machine-Learning-Framework von Facebook bringt eine neue API fĂĽr TorchScript und kennt aktuelle Operator-Sets fĂĽr das Austauschformat ONNX.
Facebook hat Version 1.2 des Machine-Learning-Frameworks PyTorch veröffentlicht. Das Release bringt vor allem Neuerungen für TorchScript und zum Exportieren von Modellen über das Austauschformat ONNX mit.
AuĂźerdem gilt die in Version 1.1 eingefĂĽhrte Anbindung an TensorBoard nicht mehr als experimentell. Neben dem eigentlichen Framework hat Facebook zudem die Bibliotheken torchaudio, torchtext und torchvision aktualisiert.
Skripte fĂĽr die direkte Verarbeitung
TorchScript ist seit PyTorch 1.0 im Framework enthalten. Der TorchScript-Compiler wandelt PyTorch-Modelle in einen statisch typisierten Graphen um. Data Scientists können dann im Eager-Modus Optimierungen und Anpassungen vornehmen und dabei ihre Modelle inkrementell nach TorchScript überführen.
Version 1.2 bringt nun eine neue API, die das Kompilieren von Modellen nach TypeScript deutlich vereinfachen soll. Außerdem erweitert das neue Release die von TorchScript erkannten Python-Befehle in PyTorch-Modellen. Um Entwicklern den Umstieg zur neuen API zu vereinfachen, hat Facebook einen Migrations-Leitfaden veröffentlicht.
Kontakt zur AuĂźenwelt mit ONNX
Das Format Open Neural Network eXchange (ONNX) zum Export trainierter oder untrainierter Modelle in eine standardisierte Darstellung kennt PyTorch bereits seit geraumer Zeit. ONNX ermöglicht den Austausch zwischen unterschiedlichen Frameworks und vereinfacht beispielsweise das Übertragen von Modellen von PyTorch nach TensorFlow und umgekehrt.
Nun hat das PyTorch-Team in Zusammenarbeit mit Microsoft die UnterstĂĽtzung der verfĂĽgbaren Operator Sets (OpSets) erweitert. PyTorch kennt neuerdings die OpSet-Versionen 7 (zu ONNX 1.2), 8 (1.3), 9 (1.4) und 10 (1.5). Ein Ăśberblick ĂĽber den Zusammenhang der Operator-Set- und ONNX-Version findet sich im ONNX-Repository auf GitHub.
Aufmerksam beobachtete Details
Neu ist zudem das nn.Transformer-Modul, das ausschließlich auf sogenannten Attention Mechanism basiert, wie ihn die Abhandlung "Attention Is All You Need" erläutert. Das Modul beschreibt globale Abhängigkeiten zwischen der Ein- und Ausgabe, die sich aus dem Attention Mechanism ergeben. Es ist modular aufgebaut und erlaubt unter anderem den losgelösten Einsatz vom nn.TransformerEncoder
statt des vollständigen nn.Transformer
.
Die Anbindung an TensorBoard war zwar bereits in PyTorch 1.1 enthalten, galt dort jedoch noch als experimentell. Nun ist die Integration mit dem Visualisierungstoolkit für TensorFlow eine offizielle Funktion des Frameworks, und das zugehörige Tool lässt sich über den Befehl from torch.utils.tensorboard import SummaryWriter
starten.
Aufgefrischte Datensätze und Bibliotheken
Neben dem Framework hat Facebook einige Libraries beziehungsweise Datensätze aktualisiert, die jedoch alle im Gegensatz zu PyTorch noch nicht die 1.x-Version erreicht haben. Die Erweiterung zur Textverarbeitung torchtext bekommt in Version 0.4 neue Datensätze für das Supervised Learning: AG_NEWS, SogouNews, DBpedia, YelpReviewPolarity, YelpReviewFull, YahooAnswers, AmazonReviewPolarity und AmazonReviewFull. Außerdem finden Entwickler neue Tutorials und Beispiele.
FĂĽr torchvision 0.4 lag der Fokus auf der verbesserten Video-Integration. Neu ist die Utility-Klasse VideoClips
, die das Organisieren von Videoclips vereinfacht. AuĂźerdem bringt das aktuelle Release vortrainierte Modelle, die auf dem Kinetics-400-Datensatz basieren, zum Klassifizieren von Aktionen mit.
Guter Zuhörer
Die Library torchaudio zum Verarbeiten und Analysieren von Audiosignalen und -wellenformen ist erst mit dem aktuellen Release 0.3 eine PyTorch-Erweiterung und Teil des Domain-APIs-Ă–kosystems (DAPI). AuĂźerdem bietet torchaudio 0.3 erweiterte Funktionen zum Transformieren und Vorbereiten der Daten zur weiteren Verarbeitung.
Unter anderem ermöglicht die neue Transformation Resample
das Up- und Downsampling in einen anderen Frequenzbereich. Darüber hinaus hat torchaudio 0.3 eine Kompatibilitätsschnittstelle für das Toolkit zur Spracherkennung Kaldi. In den jeweiligen Repositorys zu torchaudio, torchtext und torchvision finden sich zudem neue Tutorials, die den Einstieg erleichtern sollen.
Vom 30. September bis zum 2. Oktober findet in London die MÂł 2019 statt. Auf der von heise Developer und The Register ausgerichteten Entwicklerkonferenz zu Machine Learning wird Sebastian Riedel von Facebook AI Research, der zudem Professor fĂĽr Natural Language Processing und ML am University College London ist, eine Keynote halten.
Weitere Details zu PyTorch 1.2 sowie den Bibliotheken und Datensätzen finden sich im PyTorch-Blog. Die vollständige Liste der Neuerung lässt sich den Release Notes entnehmen. PyTorch ist als Open-Source-Projekt auf GitHub zu finden.
Siehe dazu auf heise Developer:
(rme)