Deeplearning4j - Deeplearning4j

Eclipse Deeplearning4j
Originalautor(en) Alex D. Black, Adam Gibson, Vyacheslav Kokorin, Josh Patterson
Entwickler Kondiut KK und Mitwirkende
Vorschauversion
1.0.0-beta7 / 13. Mai 2020 ; vor 17 Monaten ( 2020-05-13 )
Repository
Geschrieben in Java , CUDA , C , C++ ,
Betriebssystem Linux , macOS , Windows , Android , iOS
Plattform CUDA , x86 , ARM , PowerPC
Verfügbar in Englisch
Typ Natural Language Processing , Deep Learning , Machine Vision , künstliche Intelligenz
Lizenz Apache-Lizenz 2.0
Webseite www .deeplearning4j .org Bearbeiten Sie dies auf Wikidata

Eclipse - Deeplearning4j ist eine Programmierbibliothek in geschrieben Java für die Java Virtual Machine (JVM). Es ist ein Framework mit breiter Unterstützung für Deep-Learning-Algorithmen. Deeplearning4j umfasst Implementierungen des eingeschränkten Boltzmann - Maschine , tiefen Glauben Netz , tiefen Autoencoder, gestapelt Entrauschen Autoencoder und rekursive neuronale Tensor Netzwerk , word2vec , doc2vec und Handschuh . Diese Algorithmen umfassen alle verteilte parallele Versionen, die sich in Apache Hadoop und Spark integrieren lassen .

Deeplearning4j ist Open-Source-Software, die unter der Apache-Lizenz 2.0 veröffentlicht wird und hauptsächlich von einer Gruppe für maschinelles Lernen mit Sitz in San Francisco entwickelt wurde . Es wird kommerziell vom Startup Skymind unterstützt, das DL4J, TensorFlow , Keras und andere Deep-Learning-Bibliotheken in einer Enterprise-Distribution namens Skymind Intelligence Layer bündelt . Deeplearning4j wurde im Oktober 2017 in die Eclipse Foundation eingebracht.

Einführung

Deeplearning4j basiert auf der weit verbreiteten Programmiersprache Java , ist jedoch mit Clojure kompatibel und enthält eine Scala- Anwendungsprogrammierschnittstelle (API). Es wird von seiner eigenen Open-Source-Bibliothek für numerische Computer, ND4J , angetrieben und arbeitet sowohl mit zentralen Prozessoren (CPUs) als auch mit Grafikprozessoren (GPUs).

Deeplearning4j wurde in mehreren kommerziellen und akademischen Anwendungen verwendet. Der Code wird auf GitHub gehostet . Auf Gitter wird ein Support-Forum unterhalten .

Das Framework ist zusammensetzbar, was bedeutet, dass flache neuronale Netze wie eingeschränkte Boltzmann-Maschinen, Faltungsnetze, Autoencoder und rekurrente Netze miteinander hinzugefügt werden können, um tiefe Netze unterschiedlicher Art zu erstellen. Es verfügt auch über umfangreiche Visualisierungstools und eine Berechnungsgrafik.

Verteilt

Das Training mit Deeplearning4j erfolgt in einem Cluster. Neuronale Netze werden parallel über iteratives Reduce trainiert, das auf Hadoop- YARN und auf Spark funktioniert . Deeplearning4j lässt sich auch in CUDA-Kernel integrieren, um reine GPU-Operationen durchzuführen, und arbeitet mit verteilten GPUs.

Wissenschaftliches Rechnen für das JVM

Deeplearning4j enthält eine n-dimensionale Array-Klasse, die ND4J verwendet , die wissenschaftliches Rechnen in Java und Scala ermöglicht, ähnlich den Funktionen, die NumPy für Python bereitstellt . Es basiert effektiv auf einer Bibliothek für lineare Algebra und Matrixmanipulation in einer Produktionsumgebung.

DataVec-Vektorisierungsbibliothek für maschinelles Lernen

DataVec vektorisiert verschiedene Dateiformate und Datentypen unter Verwendung eines Eingabe-/Ausgabeformatsystems , das der Verwendung von MapReduce durch Hadoop ähnelt; das heißt, es wandelt verschiedene Datentypen in Skalarspalten um, die als Vektoren bezeichnet werden . DataVec wurde entwickelt, um CSVs, Bilder, Ton, Text, Video und Zeitreihen zu vektorisieren.

Text und NLP

Deeplearning4j enthält einen Vektorraum Modellierung und Thema Modellierung Toolkit, in Java implementiert und mit parallelen GPUs für die Leistung zu integrieren. Es wurde entwickelt, um große Textmengen zu verarbeiten.

Deeplearning4j umfasst Implementierungen von Begriffshäufigkeit – inverse Dokumenthäufigkeit ( tf – idf ), Deep Learning und Mikolovs word2vec-Algorithmus, doc2vec und GloVe, neu implementiert und in Java optimiert. Es basiert auf der t-verteilten stochastischen Nachbareinbettung (t-SNE) für Wortwolken-Visualisierungen.

Anwendungsfälle und Integrationen aus der Praxis

Zu den realen Anwendungsfällen für Deeplearning4j gehören die Erkennung von Netzwerkeinbrüchen und Cybersicherheit, die Betrugserkennung für den Finanzsektor, die Erkennung von Anomalien in Branchen wie der Fertigung, Empfehlungssysteme in E-Commerce und Werbung sowie Bilderkennung. Deeplearning4j hat sich in andere Plattformen für maschinelles Lernen wie RapidMiner, Prediction.io und Weka integriert .

Modellserver für maschinelles Lernen

Deeplearning4j bietet Machine-Learning-Modelle zur Inferenz in der Produktion mit der kostenlosen Developer Edition von SKIL, dem Skymind Intelligence Layer. Ein Modellserver dient den parametrischen Machine-Learning-Modellen, die Entscheidungen über Daten treffen. Es wird für die Inferenzphase eines Machine-Learning-Workflows nach Datenpipelines und Modelltraining verwendet. Ein Modellserver ist das Werkzeug, mit dem Data Science-Forschung in einer realen Produktionsumgebung bereitgestellt werden kann.

Was ein Webserver für das Internet ist, ist ein Modellserver für die KI. Wenn ein Webserver eine HTTP-Anfrage empfängt und Daten zu einer Website zurückgibt, empfängt ein Modellserver Daten und gibt eine Entscheidung oder Vorhersage zu diesen Daten zurück: z oder Tiere auf Fotos.

Der SKIL-Modellserver ist in der Lage, Modelle aus Python-Frameworks wie Tensorflow, Keras, Theano und CNTK zu importieren, wodurch eine große Hürde bei der Bereitstellung von Deep-Learning-Modellen überwunden wird.

Benchmarks

Deeplearning4j ist so schnell wie Caffe für nicht triviale Bilderkennungsaufgaben mit mehreren GPUs. Für Programmierer, die mit HPC auf der JVM nicht vertraut sind, müssen mehrere Parameter angepasst werden, um die Trainingszeit für neuronale Netze zu optimieren. Dazu gehören das Festlegen des Heap-Speicherplatzes, des Garbage-Collection-Algorithmus, die Verwendung von Off-Heap-Speicher und das Vorspeichern von Daten (Beizen) für eine schnellere ETL. Zusammen können diese Optimierungen mit Deeplearning4j zu einer 10-fachen Beschleunigung der Leistung führen.

API-Sprachen: Java, Scala, Python, Clojure & Kotlin

Deeplearning4j kann über mehrere API-Sprachen verwendet werden, darunter Java, Scala, Python, Clojure und Kotlin. Seine Scala-API heißt ScalNet. Keras dient als seine Python-API. Und sein Clojure-Wrapper ist als DL4CLJ bekannt. Die Kernsprachen, die die umfangreichen mathematischen Operationen ausführen, die für Deep Learning erforderlich sind, sind C, C++ und CUDA C.

Tensorflow, Keras & Deeplearning4j

Tensorflow, Keras und Deeplearning4j arbeiten zusammen. Deeplearning4j kann Modelle aus Tensorflow und anderen Python-Frameworks importieren, wenn sie mit Keras erstellt wurden.

Siehe auch

Verweise