2016-05-13 19 views
3

Wir arbeiten an einem Projekt in Java mit neuronalen Netzen. Wir wollen verschiedene Netzwerkstrukturen in unseren Datensätzen testen. Jetzt bewerten wir, welches der Java Neural Networks in Bezug auf die Leistung am besten ist. Wir evaluieren Encog, Neuroph und DL4J. Kannst du uns bitte ein paar gute Ressourcen oder deine eigenen Erfahrungen dazu sagen? DankPerformance Encog vs Deeplearning4J

Antwort

6

Deeplearning4j Schöpfer hier:

  • Encog von Jeff Heaton in den frühen 90er Jahren geschrieben wurde, und war der Standard-Java-DL Rahmen für eine lange Zeit. Ich glaube nicht, dass Encog verteiltes Rechnen handhabt, mit GPUs, Hadoop, Spark oder Kafka arbeitet oder viele der algorithmischen Fortschritte in DL seit 2006 berücksichtigt. (Jeff, korrigiere mich, wenn ich falsch liege!)

  • Deeplearning4j macht all diese Dinge. Es funktioniert auf verteilten CPUs oder GPUs, die Spark als Zugriffsebene verwenden. Es ist zertifiziert auf CDH5 und bald auf HDP ... Und es enthält Implementierungen von LSTMs (RNNs), tiefe Faltungsnetze, RBMs, DBNs und Word2vec, neben anderen neuronalen Netzen. Es ist derzeit das beliebteste DL-Tool für die JVM und eine der Top-5-DL-Bibliotheken der Welt.

  • Deeplearning4j wird von der numerischen Rechenbibliothek ND4J oder n-dimensionalen Arrays für Java betrieben. Grundsätzlich haben wir Numpy zur JVM portiert. Das macht DL4J erweiterbar, und Sie werden sehen, dass wir in naher Zukunft weitere Algorithmen wie Verstärkungslernen hinzufügen. ND4J läuft wiederum auf libND4J, einer C++ - Bibliothek, die die Berechnung beschleunigt. Wir haben auch die Vektorisierungsbibliothek Canova erstellt, die jede Art von Daten aufnimmt und sie in einen Vektor umwandelt, den neuronale Netze verstehen können. Wir versuchen, einige der ETL-Probleme stromaufwärts von NNs zu lösen.

  • Neurop hat starke Visualisierung, aber ich bin nicht in der Lage, den Rest ihres Rahmens zu beurteilen, also werde ich sie für sich sprechen lassen!

    http://deeplearning4j.org

    https://github.com/deeplearning4j

    https://github.com/deeplearning4j/nd4j

    https://github.com/deeplearning4j/libnd4j

Es gibt fast 2000 Devs in Deeplearning4j des Benutzers Support-Kanal auf Gitter. Bitte besuchen Sie uns dort, wenn Sie Fragen haben:

https://gitter.im/deeplearning4j/deeplearning4j

1

ich nur einige Erfahrung mit Deeplearning4j und Encog in der Java-Welt, und ich denke, es ist sehr viel hängt davon ab, was Ihr Ziel ist. Deeplearning4j ist sicherlich der anspruchsvollste Rahmen der 2; es hat tolle Werkzeuge, es funktioniert mit GPUs, es unterstützt Dinge wie LSTMs und Convolutional NNs, es ist bereits für verteiltes Training eingerichtet, etc. Aber so anspruchsvoll und cool wie es ist, kann es auch ein bisschen wie ein PITA sein. Wenn die Homepage möchte, dass Sie eine bestimmte IDE verwenden und zu langen Installationshandbüchern von abhängigen Projekten verweisen, wissen Sie, dass es nicht sehr einfach sein wird. Aber es ist es wert, wenn Sie es brauchen.

Das heißt, in einigen Fällen gibt es für Encog noch eine Menge zu sagen. Es lässt sich sehr einfach in so ziemlich jedes Java-Projekt integrieren; es ist nur ein .jar zum Einschließen und los geht's. Es ist sehr schnell und nutzt Ihre CPU-Kerne sehr effizient, es hat eine sehr schöne und leicht zu verstehende API.Wenn Sie eine Java-Bibliothek benötigen, um ein Feed-Forward-NN effizient zu implementieren, oder wenn Sie ein bisschen mehr über das maschinelle Lernen im Allgemeinen lernen möchten, kann ich Encog nicht genug empfehlen. Wenn Sie auf Einschränkungen von Encog stoßen, versuchen Sie Deeplearning4j oder schauen Sie ein wenig hinter Java und versuchen Sie etwas wie Tensorflow (die auch einige Java-Unterstützung hat).

0

Ich kann Ihnen meine Erfahrung erzählen.

Im Jahr 2015 suchte ich nach einem guten Java Framework für Deep Learning. Nach einer ersten Recherche stieß ich auf Encog. Ich erkannte bald, dass es an vielen Komponenten moderner neuronaler Netze fehlte, d. H. Es war ziemlich veraltet und ich hatte auch viele Schwierigkeiten, es sogar einzurichten (es ist nicht sehr flexibel). Btw es erlaubt parallele Berechnung auf CPUs.

Also entschied ich mich, mein eigenes Framework zu schreiben, das ich immer noch benutze und gut funktioniert. Dann stieß ich auf deeplearning4j und ich kann Ihnen sagen, dass es ziemlich vollständig ist und sehr schnelle Berechnungen durchführt. Ich würde sagen, wenn Sie sehen möchten, was Neuronale Netze Frameworks vor 15 Jahren zurückblickten, verwenden Sie Encog, sonst gibt es keinen Grund, warum Sie es verwenden, d. Verwenden Sie deeplearning4j oder versuchen Sie einige der Python DL-Frameworks.

+0

Btw hat auch damals versucht Neuroph ... du willst es nicht benutzen. – Diego