© Rawpixel.com/Shutterstock.com
Java Magazin
Training von TensorFlow-Modellen mit JVM-Sprachen

Deep Learning: nicht nur in Python

Zwar gibt es mit Frameworks wie DL4J mächtige und umfangreiche Machine-Learning-Lösungen für die JVM, dennoch kann es in der Praxis vorkommen, dass der Einsatz von TensorFlow notwendig wird. Das kann beispielsweise der Fall sein, wenn es einen bestimmten Algorithmus nur in einer TensorFlow-Implementierung gibt und der Portierungsaufwand in ein anderes Framework zu hoch ist. Zwar interagiert man mit TensorFlow über ein Python API, die zugrunde liegende Engine jedoch ist in C++ geschrieben. Mit Hilfe der TensorFlow-Java-Wrapper-Bibliothek kann man deshalb sowohl Training als auch Inferenz von TensorFlow-Modellen aus der JVM heraus betreiben, ohne auf Python angewiesen zu sein. So können bestehende Schnittstellen, Datenquellen und Infrastruktur mit TensorFlow integriert werden, ohne die JVM zu verlassen.

Christoph Henkelmann


KI und Deep Learning sind immer noch in aller Munde und trotz einiger erster Rückschläge, beispielsweise im Bereich selbstfahrender Autos, ist das Potenzial von Deep Learning noch lange nicht ausgeschöpft. Auch gibt es noch viele Bereiche der IT, in denen das Thema gerade erst richtig Fahrt aufnimmt. Daher ist es besonders wichtig, zu schauen, wie man Deep-Learning-Systeme auf der JVM realisieren kann, denn Java (sowohl die Sprache als auch die Plattform) sind immer noch dominierende Technologien im Enterprise-Bereich.

TensorFlow ist eins der wichtigsten Frameworks im Deep-Learning-Bereich und trotz der steigenden Popularität von Keras noch immer nicht wegzudenken, insbesondere da KI-Platzhirsch Google die Entwicklung weiter vorantreibt. In diesem Artikel wird gezeigt, wie TensorFlow aus einer JVM heraus sowohl für das Training von TensorFlow-Modellen als auch für die Inferenz genutzt werden kann.

Wofür ist die Kombination aus TensorFlow und JVM geeignet?

Möchte man auf der JVM Deep Learning betreiben, ist normalerweise DL4J das Mittel der Wahl, da es als einziges professionelles Deep Learning Framework wirklich auf der JVM zu Hause ist. TensorFlow wird hauptsächlich – wie viele Machine Learning Frameworks – mit Python genutzt. Es gibt jedoch Gründe, TensorFlow aus einem JVM-Kontext heraus zu nutzen:

Man möchte ein Verfahren nutzen, für das es bei TensorFlow, nicht aber bei DL4J eine Implementierung gibt, und für das der Portierungsaufwand zu hoch ist. Man arbeitet mit einem Data-Science-Team, das gewohnt ist, mit TensorFlow und Python zu arbeiten, aber die Zielinfrastruktur läuft auf der JVM. Die für das Training notwendigen Daten liegen in einer Java-Infrastruktur (Datenbanken, eigene Dateiformate, APIs), und um an die Daten zu gelangen, müsste existierender Schnittstellencode von Java nach Python portiert werden.

Die JVM-TensorFlow-Kombination ist also immer dann sinnvoll, wenn eine existierende Java-Umgebung vorhanden ist und aus personellen oder projekttechnischen Gründen trotzdem TensorFlow für Deep Learning genutzt werden sollte (Kasten: „TensorFlow und JVM – immer eine gute Idee?“).

TensorFlow und JVM – immer eine gute Idee?Auch wenn es gute Gründe für diese Kombination geben kann, ist es auch wichtig, anzusprechen, was dagegensprechen kann. Insbesondere die Wahl von TensorFlow sollte gut bedacht sein:TensorFlow ist kein geeignetes Framework für Deep- oder Machine-Learning-Anfänger.TensorFlow ist nicht benutzerfreundlich: Das API ändert sich schnell...

Java Magazin
Training von TensorFlow-Modellen mit JVM-Sprachen

Deep Learning: nicht nur in Python

Zwar gibt es mit Frameworks wie DL4J mächtige und umfangreiche Machine-Learning-Lösungen für die JVM, dennoch kann es in der Praxis vorkommen, dass der Einsatz von TensorFlow notwendig wird. Das kann beispielsweise der Fall sein, wenn es einen bestimmten Algorithmus nur in einer TensorFlow-Implementierung gibt und der Portierungsaufwand in ein anderes Framework zu hoch ist. Zwar interagiert man mit TensorFlow über ein Python API, die zugrunde liegende Engine jedoch ist in C++ geschrieben. Mit Hilfe der TensorFlow-Java-Wrapper-Bibliothek kann man deshalb sowohl Training als auch Inferenz von TensorFlow-Modellen aus der JVM heraus betreiben, ohne auf Python angewiesen zu sein. So können bestehende Schnittstellen, Datenquellen und Infrastruktur mit TensorFlow integriert werden, ohne die JVM zu verlassen.

Christoph Henkelmann


KI und Deep Learning sind immer noch in aller Munde und trotz einiger erster Rückschläge, beispielsweise im Bereich selbstfahrender Autos, ist das Potenzial von Deep Learning noch lange nicht ausgeschöpft. Auch gibt es noch viele Bereiche der IT, in denen das Thema gerade erst richtig Fahrt aufnimmt. Daher ist es besonders wichtig, zu schauen, wie man Deep-Learning-Systeme auf der JVM realisieren kann, denn Java (sowohl die Sprache als auch die Plattform) sind immer noch dominierende Technologien im Enterprise-Bereich.

TensorFlow ist eins der wichtigsten Frameworks im Deep-Learning-Bereich und trotz der steigenden Popularität von Keras noch immer nicht wegzudenken, insbesondere da KI-Platzhirsch Google die Entwicklung weiter vorantreibt. In diesem Artikel wird gezeigt, wie TensorFlow aus einer JVM heraus sowohl für das Training von TensorFlow-Modellen als auch für die Inferenz genutzt werden kann.

Wofür ist die Kombination aus TensorFlow und JVM geeignet?

Möchte man auf der JVM Deep Learning betreiben, ist normalerweise DL4J das Mittel der Wahl, da es als einziges professionelles Deep Learning Framework wirklich auf der JVM zu Hause ist. TensorFlow wird hauptsächlich – wie viele Machine Learning Frameworks – mit Python genutzt. Es gibt jedoch Gründe, TensorFlow aus einem JVM-Kontext heraus zu nutzen:

Man möchte ein Verfahren nutzen, für das es bei TensorFlow, nicht aber bei DL4J eine Implementierung gibt, und für das der Portierungsaufwand zu hoch ist. Man arbeitet mit einem Data-Science-Team, das gewohnt ist, mit TensorFlow und Python zu arbeiten, aber die Zielinfrastruktur läuft auf der JVM. Die für das Training notwendigen Daten liegen in einer Java-Infrastruktur (Datenbanken, eigene Dateiformate, APIs), und um an die Daten zu gelangen, müsste existierender Schnittstellencode von Java nach Python portiert werden.

Die JVM-TensorFlow-Kombination ist also immer dann sinnvoll, wenn eine existierende Java-Umgebung vorhanden ist und aus personellen oder projekttechnischen Gründen trotzdem TensorFlow für Deep Learning genutzt werden sollte (Kasten: „TensorFlow und JVM – immer eine gute Idee?“).

TensorFlow und JVM – immer eine gute Idee?Auch wenn es gute Gründe für diese Kombination geben kann, ist es auch wichtig, anzusprechen, was dagegensprechen kann. Insbesondere die Wahl von TensorFlow sollte gut bedacht sein:TensorFlow ist kein geeignetes Framework für Deep- oder Machine-Learning-Anfänger.TensorFlow ist nicht benutzerfreundlich: Das API ändert sich schnell...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang