Machine Learning: Apache MXNet 1.6 umgarnt NumPy-Anwender

Das neue NumPy-Interface in MXNet lässt sich ähnlich verwenden wie die Library für Data Science.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Machine Learning: Apache MXNet 1.6 umgarnt NumPy-Anwender
Von
  • Rainald Menge-Sonnentag

Das quelloffenen Projekt Apache MXNet ist in Version 1.6 erschienen. Das aktuelle Release des Deep-Learning-Frameworks zielt vor allem auf eine bessere Integration der Python-Library NumPy und des Compiler-Stacks Apache TVM. Außerdem bringt es einige Optimierungen für Graphen mit und hat zusätzliche Operatoren an Bord.

Die Python-Library NumPy erfreut sich bei Data Scientists unter anderem im Machine-Learning-Umfeld großer Beliebtheit. Sie war in dem 2019 erstellten GitHub-Bericht zu Machine Learning die mit Abstand am meisten genutzte Python-Bibliothek. NumPy bietet Funktionen für numerische Berechnungen sowie Methoden zum Umgang mit Matrizen und Vektoren sowie mehrdimensionalen Arrays an.

MXNet 1.6 bringt ein neues NumPy-Interface mit, dessen Syntax an die der Python-Library angelehnt ist, um Entwicklern und Data Scientists die konsistente Arbeit zu ermöglichen und als Drop-in Replacement für NumPy zu fungieren. Unter anderem bietet das neue Interface zahlreiche von der Klasse für mehrdimensionale Arrays numpy.ndarray bekannte Operationen, die besonders im ML-Umfeld erforderlich sind.

Im Gegensatz zum NumPy läuft das Interface nativ auf GPUs, um die Effizienz beim Training von Machine-Learning-Modellen zu optimieren. Das MXNet-Team hat eine Dokumentation, die zahlreiche Inhalte von der NumPy-Anleitung übernimmt, sowie eine Einführung zu den Operatoren beziehungsweise der API des Interfaces erstellt.

Hinsichtlich der Toolchain verbessert MXNet 1.6 die Anbindung an den Compiler-Stack Apache TVM mit. Das Open-Source-Projekt zielt auf Deep-Learning-Systeme und kompiliert Modelle aus Machine-Learning-Frameworks wie TensorFlow beziehungsweise Keras, PyTorch und MXNet für diverse Backends.

In MXNet 1.6 können Data Scientists und Entwickler Apache TVM nutzen, um Operator-Kernels direkt in Python zu implementieren, was zuvor nur über C++ möglich war. Dank der neuen Integration lassen sich die Implementierungen auf den zahlreichen Backends verwenden, die TVM anbietet.

Die erweiterete TVM-Integration ermöglicht die Umsetzung von Operatoren auf den diversen Backends des Compiler-Stacks.

(Bild: Apache)

Darüber hat MXNet 1.6 zahlreiche Optimierungen an Bord. Unter anderem bündelt es elementweise Operationen, um die Speichernutzung und Performance zu optimieren. Außerdem entfernt es redundante Berechnungen, um beispielsweise beim Ausführungsgraphen für

out = (a + 5) × (a + 5)

nicht zweimal a + 5 zu berechnen, sondern über einen Zwischenschritt nur einmal:

b = a + 5; 
out = b × b

MXNet 1.6 kennt einige neue Operatoren wie RROIAlign, group normalization und allclose. Darüber hinaus verbessert das Framework die Anbindung für zahlreiche Programmiersprachen wie C++, Clojure, Scala und Julia. Hinsichtlich der Python-Anbindung gilt Python 2, das seit dem 31. Dezember 2019 keinen Support mehr genießt, in MXNet 1.6 als überholt (deprecated) und entfällt in künftigen Releases.

Minds Mastering Machines 2020
Machine Learning: Apache MXNet 1.6 umarmt NumPy

Vom 26. bis 28. Mai findet in Mannheim zum dritten Mal die die Minds Mastering Machines statt. Die von heise Developer, iX und dem dpunkt.verlag ausgerichtete Konferenz zu Machine Learning bietet in ihrem Programm unter anderem einen Workshop zu Python-Praxis und -Libraries für ML-Projekte, der auch NumPy behandeln wird.

Bis zum 3. April gilt für den Kauf von Konferenztickets der Frühbucherrabatt, mit dem sich der Ticketpreis für die Konferenz um 150 Euro reduziert.

Weitere Details zu MXNet 1.6 lassen sich der Ankündigung entnehmen. Die vollständige Liste der Neuerungen findet sich in den Release Notes. (rme)