Erste Schritte mit Apache MXNet unter Amazon Linux
Erste Schritte mit Apache MXNet unter Ubuntu

Apache MXNet ist ein schlankes, flexibles und ultra-skalierbares Deep Learning-Framework, das modernste Deep Learning-Modelle wie neurale Netzwerke mit Faltungscodierung (Convolutional Neural Networks – CNNs) und Lang-/Kurzzeitgedächtnisnetzwerke (Long Short-Term Memory Networks – LSTMs) unterstützt. Das Framework hat seinen Ursprung in der akademischen Welt und ist das Ergebnis der Zusammenarbeit und Beiträge von Wissenschaftlern verschiedener Spitzenuniversitäten. Es wurde entwickelt, um in den Bereichen Computervision, Sprache, Sprachverarbeitung und -verständnis, generative Modelle, Concurrent Neural Networks und Recurrent Neural Networks einen wertvollen Beitrag zu leisten.

Mithilfe von MXNet können Sie Netzwerke in vielen verschiedenen Anwendungsbereichen – von einer umfangreichen Cloud-Infrastruktur bis hin zu mobilen und vernetzten Geräten – definieren, trainieren und bereitstellen. Mit diesem Produkt erhalten Sie eine äußerst flexible Umgebung, die zahlreiche gängige Sprachen unterstützt und sowohl imperative als auch symbolische Programmierungskonstrukte nutzen kann. Darüber hinaus ist MXNet extrem schlank gehalten. Dies ermöglicht eine sehr effiziente Skalierung über mehrere Grafikverarbeitungseinheiten (GPUs) und Maschinen hinweg, was beim Trainieren mit umfangreichen Datensätzen in der Cloud von Vorteil ist.

Sie können ganz schnell mit der Nutzung von Apache MXNet in AWS beginnen, indem Sie das AWS Deep Learning-AMI starten, das sowohl für Amazon Linux als auch für Ubuntu verfügbar ist.

Leisten Sie einen Beitrag zum Apache MXNet-Projekt

Steigen Sie in GitHub ein

Auf der GitHub-Projektseite können Sie Beispielcode, Notizen und Lerninhalte beziehen.

GitHub-Mark-120px-plus
CMU
Sigopt
logo-intel
Nvidia
Simple

Programmierbarkeit

Vereinfachte Netzwerkdefinitionen und Nutzung bereits vertrauter Sprachen

Beständigkeit

Portierbarkeit

Effizienter Einsatz von Speicher, damit Modelle auf vielen verschiedenen Geräten und Plattformen ausgeführt werden können

Skalierbar

 Skalierbarkeit

Fähigkeit zur Skalierung über mehrere GPUs und Hosts hinweg, damit umfangreiche und hochentwickelte Modelle schnell trainiert werden können

Mit Apache MXNet erhalten Sie die Möglichkeit, imperative mit symbolischen Sprachen zu kombinieren, also zu "mischen". Der Name "MXNet" ist genau genommen auf "mixed networks", also "gemischte Netzwerke", zurückzuführen. Dies bedeutet, dass Sie Netzwerkschichten durch die Optimierung von symbolischen Ausführungsverfahren und dank der flexiblen Merkmale imperativer Sprachen wie Iterationsschleifen und Parameteraktualisierungen manipulieren können. Aufgrund dieser gemischten Beschaffenheit bietet MXNet ein einzigartiges Leistungsspektrum, das die Arbeit in den mehrschichtigen, komplexen Deep Learning-Modellen vereinfacht. 

Import von mxnet als mx

a = mx.nd.zeros((100, 50))

b = mx.nd.ones((100, 50))

c = a + b

c += 1

print(c)

 

Import von mxnet als mx

net = mx.symbol.Variable('data')

net = mx.symbol.FullyConnected(data=net, num_hidden=128)

net = mx.symbol.SoftmaxOutput(data=net)

texec = mx.module.Module(net)

texec.forward(data=c)

texec.backward()

Darüber hinaus unterstützt MXNet zahlreiche Programmiersprachen am Front-End des Frameworks, darunter C++, JavaScript, Python, r, Matlab, Julia, Scala und Go. So können Sie alle Sprachen verwenden, mit denen Sie bereits vertraut sind, und direkt mit Ihrem Deep Learning loslegen. Am Back-End wird Ihr Code ausnahmslos in C++ kompiliert, damit Sie unabhängig von der am Front-End verwendeten Sprache ein konsistentes Ergebnis erhalten. 

c-plus-plus-logo-100px
javascript-logo-100px
python-logo-100px
r-logo-100px
Matlab
julia-logo-100px
scala-logo-100px
go-logo-100px

In einer Zeit, in der Anwendungen für künstliche Intelligenz immer stärker in unseren Alltag eingebunden sind, ist es umso wichtiger, dass sie auf vielen verschiedenen Geräten bereitgestellt werden können. Dies gilt vor allem dann, wenn die künstliche Intelligenz auf mobilen und vernetzten Geräten am Netzwerkrand bereitgestellt wird, wo Speicherkapazität möglicherweise nur zu einem Aufpreis verfügbar ist.

Apache MXNet-Modelle eignen sich auch für das kleinste Speicherumfeld. Für ein Netzwerk mit tausend Schichten werden beispielsweise weniger als 4 GB Speicher benötigt. Zudem ist das Framework auf verschiedene Plattformen portierbar. Die Kernbibliothek (mit allen Abhängigkeiten) kann mit nur einer einzigen C++-Quelldatei zur Verfügung gestellt und sowohl für iOS als auch für Android kompiliert werden. Wenn JavaScript verwendet wird, ist sogar eine Ausführung im Browser möglich. Dank dieser Flexibilität können Sie Ihre Modelle in einem sehr breit gefächerten Spektrum an Anwendungsbereichen bereitstellen und erreichen dadurch enorm viele Benutzergruppen. 

portability-cloud

Cloud

portability-mobile

Mobilgeräte

portability-browser

Browser

portability-devices

Vernetzte Geräte

Apache MXNet basiert auf einem dynamischen Abhängigkeits-Scheduler, der Datenabhängigkeiten im seriellen Code parst und sowohl deklarative als auch imperative Operationen ohne Vorbereitung automatisch parallelisiert. Die zusätzliche Graph-Optimierungsschicht sorgt für eine schnelle und speichereffiziente deklarative Ausführung.

Aufgrund dieser automatischen Parallelisierung kann MXNet äußerst effizient skaliert werden. Wir haben beispielsweise den beliebten Algorithmus Inception 3 für Bildanalysen mit immer mehr EC2 P2 GPU-gestützten Instances trainiert, um Benchmarks für die Effizienz von MXNet zu setzen.

mxnet-scale-story-1

Die rote Linie steht für eine perfekte Effizienz mit doppelter Geschwindigkeit bei der doppelten Anzahl an GPUs. Der Durchsatz von MXNet stieg um nahezu dieselbe Rate wie die Anzahl der verwendeten GPUs. In einer einzelnen Instance mit 16 GPUs gelingt es Apache MXNet, eine Effizienz von 91 % zu erzielen.

Bei umfangreichen Netzwerken wird jedoch eine Skalierung über mehrere Cluster mit P2-Instances empfohlen. Die Ausführung derselben Benchmark in diesem Szenario zeigt bei einer exponentiell steigenden Anzahl an GPUs lediglich einen sehr geringen Abfall bei der Effizienz.

mxnet-scale-story-2

Sie müssen sich jedoch nicht einfach nur auf unser Wort verlassen. Einer der Vorteile der Cloud besteht darin, dass Sie alles ganz unkompliziert mit Ihrem eigenen Code testen können. Wir haben unsere Benchmark in GitHub allgemein zugänglich gemacht. Wir bitten Sie, einen Blick hinter die Kulissen zu werfen und diese Funktionalität zu testen und auszuführen, damit Sie eigene Ergebnisse erhalten. Sie können auch unsere AWS CloudFormation-Vorlage verwenden, um schnell auf die von Ihnen benötigte Kapazität zurückgreifen zu können. 

Sie können ganz einfach direkt mit der Nutzung von Apache MXNet in AWS beginnen, indem Sie den AWS Marketplace besuchen und das AWS Deep Learning-AMI starten.

Das AMI bietet den neuesten stabilen Build von MXNet sowie zahlreiche sonstige gängige Deep Learning-Frameworks und Tools – und all das kostenlos. Sie zahlen nur für die tatsächlich aufgewendete EC2-Zeit.