background

Deep Learning Frameworks 2019

14. Februar 2019 - 7 Minuten

Die wichtigsten Deep Learning Frameworks im Vergleich

TensorFlow – das populärste Framework

TensorFlow ist unbestritten aktuell das populärste Deep Learning Framework. Entwickelt wurde TensorFlow von Alphabet beziehungsweise Google – dort stellt das Framework die Grundlage für erfolgreiche Anwendungen wie die Google-Suche, Adwords, Google Maps, Google Translate, die Bilderkennung und vieles mehr dar. Seit Google Tensor Flow zum Open Source Code erklärt hat, wurde das Framework gleich von einer ganzen Reihe von IT-Unternehmen übernommen (wie etwa Uber, AirBnB oder Snapchat) und erfreut sich nicht zuletzt Dank der hohen Verbreitung, vielen verfügbaren Online-Ressourcen und aktiven Communities grosser Beliebtheit. Bei TensorFlow kommt meist Python als Client-Language zum Einsatz, aber auch für C++, Java und Go sind Interfaces verfügbar. TensorFlow lässt sich gut mit anderen Sprachen verknüpfen und kann zudem äusserst effizient vom experimentellen Umfeld zu einer skalierten Anwendung auf grossen Netzwerken portiert werden. Allerdings bringt TensorFlow vom Konzept her im Vergleich zu anderen Frameworks Nachteile beim Debugging mit sich.

Pytorch – TensorFlow Alternative von Facebook

Ebenfalls auf Python basierend ist das vom Facebook-Lab für Künstliche Intelligenz entwickelte Pytorch-Framework. Es basiert auf der in Lua geschriebenen Torch-Bibliothek. Das Framework zeichnet sich durch seine hohe Flexibilität und Geschwindigkeit aus. Das Debugging funktioniert im Vergleich zu TensorFlow deutlich einfacher, da hier häufig genutzte Debugging-Tools wie PDB oder Pycharm genutzt werden können. Weitere Features von Pytorch sind die Verfügbarkeit zahlreicher bereits erprobter Modelle, Distributed Learning und der Declarative Data Paralellism, sowie die Modularität, die eine hohe Kombinierbarkeit ermöglicht. Vor allem im Forschungsbereich wird Pytorch häufig gegenüber TensorFlow bevorzugt, da Pytorch sich durch seine Dynamik generell besser zur Entwicklung von Prototypen eignet. Ein weiterer Punkt, der für Pytorch spricht, ist dass das 2017 vorgestellte und äusserst populäre Framework Caffe 2 erst vor kurzem in Pytorch integriert wurde. Durch diesen Schritt hat Facebook Pytorch in Richtung produktionsfertige Skalierbarkeit entscheidend weiterentwickelt.

Sonnet – das Framework von Google Deep Mind

Google Deep Mind ist wohl das bekannteste Versuchslabor für Deep Learning. Erwartungsgemäss kommt bei Google Deep Mind kein Pytorch zum Einsatz, sondern Sonnet, welches auf TensorFlow basiert. Die Herausforderung für viele Deep Learning Programmierer ist die Entwicklung einer Architektur basierend auf den TensorFlow zugrunde liegenden Graphen - meist ein überaus aufwändiges Unterfangen. Sonnet hat diesen Schritt entscheidend vereinfacht, vor allem, wenn es um die Entwicklung von Neuronalen Netzen geht. Sonnet schafft dies, indem es zunächst Python-Objekte konstruiert, welche einen gewissen Teil des neuronalen Netzwerkes repräsentieren. Diese Objekte werden schliesslich durch Sonnet separat zu einem Graphen verbunden. Diese Module vereinfachen den Training-Prozess enorm, und können recht einfach zu Higher-Level-Netzwerken kombiniert werden. Auch eigene, selbst entwickelte Module können einfach in Sonnet integriert werden, was den Workflow für Programmierer nochmals deutlich vereinfacht.

Keras – das idealer Framework für Deep Learning-Neulinge

Wenn man ein Neuling im Bereich Deep Learning ist und sich mit der Materie näher auseinandersetzen möchte, dann empfiehlt es sich, zunächst mit Keras zu arbeiten. Es handelt sich hierbei um eine Python-Library, mit welcher sich etwa das populäre TensorFlow nutzen lässt, aber auch CNTK, dem Framework von Microsoft. Keras unterstützt viele Formen von neuronalen Netzwerken, und ermöglicht es, sehr schnell zum Ziel zu kommen, wenn es darum geht, Prototypen zu entwickeln. Zugleich ist der Code generell gut lesbar, was von Anfang an für mehr Übersicht sorgt. Ein Nachteil von Keras ist, dass die Möglichkeiten dieses Frameworks naturgemäss etwas eingeschränkter sind, als dies etwa bei TensorFlow oder CNTK der Fall ist, auf dem Keras basiert.

Mxnet – das Deep Learning-Framework aus dem Hause Amazon

Auch der Erfolg von Amazon beruht zu einem nicht geringen Anteil an effektiven KI-Anwendungen. Diese basieren zum Grossteil auf dem eigens entwickelten Framework Mxnet. Mxnet ist wie die meisten anderen Frameworks ebenfalls Open Source, und wird Gerüchten zufolge sogar von Apple eingesetzt. Die grosse Stärke von Mxnet sind deren Fähigkeiten linear zu skalieren. Hierbei übertrifft es etwa TensorFlow in dessen Möglichkeiten bei weitem. Neben der hohen Effizienz bei intensiven Anwendungen besticht Mxnet nicht zuletzt durch seine Einfachheit, die an Keras erinnert. Auch im Debugging hat Mxnet seine Stärken, worin es an Pytorch erinnert. Ein weiterer Vorteil ist, dass Amazon mit AWS hervorragendes Cloud-Computing anbietet, auf dem erwartungsgemäss Mxnet perfekt läuft.

CNTK – Microsofts Deep Learning Antwort

CNTK, was für “Cognitive Toolkit” steht, ist ein Framework, welches von Microsoft entwickelt wurde. Es unterstützt Python, C++, C-Sharp und Java, was es zu einem der flexibelsten Frameworks macht. Das Framework ist vor allem für Produkt- und Sprachanwendungen optimiert worden. Auch Apache Spark wird unterstützt. Und, es mag kaum jemanden verwundern, es ist jenes Framework, welches sich am einfachsten in die Azure Cloud integrieren lässt – dem hauseigenen Cloud-Service von Microsoft. Ein Nachteil von CNTK ist, dass Microsoft keine konventionellen Open Source Lizenzen vergibt, wie etwa GPL ESF oder MIT. Zudem stammen die meisten Beiträge zu CNTK von Microsoft-Entwicklern, was allerdings kein Nachteil sein muss. Der Fokus von CNTK liegt hauptsächlich auf Desktop- und Mobile Applikationen.

Deep Learning Frameworks: Nützliche Vielfalt für jeden Anwendungsbereich

Wie sich zeigt, sind in den letzten Jahren gleich eine ganze Reihe von effektiven Frameworks im Bereich Deep Learning verfügbar geworden. Das vorhandene Angebot ist meist Open Source, was es einfach macht, sie für die eigenen Anwendungen kostengünstig zu verwenden. Welches Framework für die jeweilig benötigte Anwendung am besten geeignet ist, muss von Fall zu Fall entschieden werden. Hierbei spielt sowohl die Anwendung eine Rolle, als auch die im Unternehmen bereits genutzte Software. Weitere Informationen rund um das Thema Frameworks, sowie über die Möglichkeiten, Künstliche Intelligenz und Deep Learning effektiv in Ihrem Unternehmen einzusetzen, erhalten Sie gerne auf Anfrage.


 Kostenloses Erstgespräch vereinbaren

comments powered by Disqus

Diese Artikel könnten Sie auch interessieren

Zuverlässige Qualitätssicherung mit KI
23. Juni 2019 - 9 Minuten
Zuverlässige Qualitätssicherung mit KI

Künstliche Intelligenz erobert nach und nach sämtliche Branchen – nicht zuletzt ist gerade die Logistik ein Bereich, in dem KI besonders stark zur Optimierung beitragen kann. Denn die Logistik bietet durch die...

Mehr lesen