Neues PyTorch Release bringt experimentelle Features mit

PyTorch 1.3 erschienen: Mobile Deployment und benannte Tensoren

Maika Möbus

© Shutterstock / yuratosno3

PyTorch 1.3 wurde veröffentlicht. Im neuen Release der Machine Learning Library gibt es einige neue Features. Sie betreffen unter anderem das Benennen von Tensoren sowie das Mobile Deployment, gelten allerdings noch als experimentell.

Die beliebte Machine Learning Library PyTorch hat ein Update erhalten. In Version 1.3 sind experimentelle Features enthalten, die unter anderem das Mobile Deployment, den Umgang mit Tensoren sowie den Datenschutz betreffen. Auch Breaking Changes sind wieder mit an Bord. In einem Blogeintrag stellte das PyTorch-Team die neue Version vor.

Experimentelle Features in v1.3

Drei experimentelle Features sind im neuen PyTorch Release enthalten, darunter benannte Tensoren. Sie basieren auf Sasha Rush’s Vorschlag, der behauptete: „Tensor is broken“. Tensor fördere schlechte Angewohnheiten wie das Offenlegen privater Dimensionen. Dagegen würden benannte Tensoren mit benannten Dimensionen unter anderem Indizieren, Dim-Anweisungen und dokumentationsbasiertes Coding überflüssig machen.

Im PyTorch-Blogeintrag wurde zunächst das Benennen und Zugreifen auf Dimensionen via Kommentar gezeigt:

# Tensor[N, C, H, W]
 images = torch.randn(32, 3, 56, 56)
 images.sum(dim=1)
 images.select(dim=1, index=0)

Das explizite Benennen führe dagegen zu besser les- und verwaltbarem Code:

NCHW = [‘N’, ‘C’, ‘H’, ‘W’]
   images = torch.randn(32, 3, 56, 56, names=NCHW)
   images.sum('C')
   images.select('C', index=0)

Ebenfalls experimentell ist ein End-to-End-Workflow von Python zum Deployment auf iOS und Android. Machine Learning auf Edge-Geräten werde immer wichtiger, da Anwendungen eine geringere Latenz verlangten. Und auch für den Datenschutz, z. B. im Rahmen von Federated Learning, sei das Betreiben von ML auf Edge-Geräten wichtig. Das dritte experimentelle Feature betrifft die Unterstützung von 8-Bit-Modell-Quantisierung, unter Verwendung des Familiar Eager Mode Python API.

Weitere Neuerungen und Breaking Changes

Neben den genannten experimentellen Features wurden auch weitere Features in PyTorch 1.3 hinzugefügt. Dazu zählt etwa TensorBoard-Support für 3D Mesh und Hyperparameter-Logging. Neu ist auch der macOS-Support für torch.distributed mit Gloo-Backend. Dadurch kann z. B. ohne Code-Änderungen vom Development auf macOS zum Deployment auf Linux gewechselt werden.

Beim Wechsel von PyTorch 1.2 sollten Breaking Changes beachtet werden. Dazu zählen Neuerungen im Umgang mit Type Promotion. Frühere Versionen von PyTorch unterstützten eine begrenzte Anzahl an gemischten dtype-Operationen. Das habe zu einem Präzisionsverlust führen können. In Version 1.3 wurde daher Type Promotion nach Art von NumPy (mit leichten Änderungen) eingeführt, wodurch die Präzision erhalten bleiben soll:

Type Promotion in PyTorch 1.3; Quelle: GitHub

Zu den übrigen Neuerungen in Version 1.3 zählt die Behebung eines Bugs in TensorBoard: SummaryWriter.add_graph konnte in manchen Fällen zu einem leeren Graph Output führen. Weitere Bugfixes betreffen etwa das C++ API und JIT.

Alle weiteren Details zu PyTorch 1.3 gibt es auf dem PyTorch-Blog sowie in den Release Notes auf GitHub.

Geschrieben von
Maika Möbus
Maika Möbus
Maika Möbus ist seit Januar 2019 Redakteurin bei Software & Support Media. Zuvor studierte sie Soziologie an der Goethe-Universität Frankfurt und an der Johannes Gutenberg-Universität Mainz.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: