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.
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.
Höhere Mathematik
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.
Compiler-Stack fĂĽr Deep Learning
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.
(Bild:Â Apache)
BĂĽndeln und weniger Redundanz
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
Operatoren und Programmiersprachen
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.
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)