Мы работаем над проектом на Java, используя нейронные сети. Мы хотим протестировать различные сетевые структуры на наших наборах данных. Теперь мы оцениваем, какая из Java Neural Networks является лучшей с точки зрения производительности. Мы оцениваем Encog, Neuroph и DL4J. Не могли бы вы рассказать нам о хороших ресурсах или о вашем собственном опыте? БлагодаряПроизводительность Encog vs Deeplearning4J
ответ
Deeplearning4j создатель здесь:
Encog была написана Джеффом Хитон в начале 90-х годов, и была стандартная структура Java DL в течение длительного времени. Я не верю, что Encog обрабатывает распределенные вычисления, работает с графическими процессорами, Hadoop, Spark или Kafka, или принимает во внимание многие алгоритмические достижения в DL с 2006 года. (Джефф, поправьте меня, если я ошибаюсь!)
Deeplearning4j делает все эти вещи. Он работает на распределенных процессорах или графических процессорах, используя Spark в качестве уровня доступа. Он сертифицирован на CDH5 и вскоре на HDP ... И он включает в себя реализации LSTM (RNN), глубоких сверточных сетей, RBM, DBN и word2vec, среди других нейронных сетей. В настоящее время это самый популярный DL-инструмент для JVM и одна из пяти лучших библиотек DL в мире.
Deeplearning4j рассчитан на численное вычисление lib ND4J или n-мерных массивов для Java. В принципе, мы поместили Numpy в JVM. Это делает DL4J расширяемым, и вы увидите, что в ближайшем будущем мы добавим другие альгосы, такие как усиление обучения. ND4J, в свою очередь, работает на libND4J, библиотеке C++, которая быстро вычисляет вычисления. Мы также построили библиотеку векторизации, Canova, которая берет любой тип данных и превращает ее в вектор, который могут понять нейронные сети. Мы пытаемся решить некоторые проблемы с ETL вверх по течению от NN.
Нейроф имеет сильную визуализацию, но я не в состоянии оценить остальную часть их рамок, поэтому я позволю им говорить сами за себя!
https://github.com/deeplearning4j
Есть около 2000 дэвы в канале поддержки пользователей Deeplearning4j на GITTER. Пожалуйста, присоединяйтесь к нам, что если у вас есть вопросы:
У меня есть только некоторый опыт работы с Deeplearning4j и Encog в Java мире, и я думаю, что это очень многое зависит от того, какова ваша цель. Deeplearning4j - это, безусловно, самая сложная структура из 2; он обладает потрясающими инструментами, он работает с графическими процессорами, поддерживает такие вещи, как LSTM и Convolutional NNs, он уже настроен для распределенного обучения и т. д. Но, как сложный и крутой, он также может быть немного PITA. Когда домашняя страница хочет, чтобы вы использовали определенную среду IDE и направляли на длинные руководства по установке зависимых проектов, вы знаете, что это будет не очень просто. Но это того стоит, если вам это нужно.
Это говорит о том, что в некоторых случаях еще многое предстоит сказать для Encog. Он очень легко интегрируется с практически любым проектом java; это всего лишь один .jar для включения и выключения. Это очень быстро и очень эффективно использует процессорные ядра, имеет очень красивый и понятный API.Если вам нужна библиотека java для эффективного внедрения NN с прямой пересылкой или если вы хотите узнать немного больше о работе с машинным обучением в целом, я не могу рекомендовать Encog достаточно. Когда вы сталкиваетесь с ограничениями Encog, попробуйте Deeplearning4j или немного за пределами java и попробуйте что-то вроде Tensorflow (у которого также есть поддержка java).
Я могу рассказать вам о своем опыте.
Еще в 2015 году я искал хорошую Java-платформу для глубокого обучения. После начального исследования я наткнулся на Encog. Вскоре я понял, что ему не хватает многих компонентов современных нейронных сетей, т. Е. Он был довольно устаревшим, а также у меня было много проблем даже при его настройке (это не очень гибко). Кстати, это позволяет проводить параллельные вычисления на процессорах.
Итак, я решил написать свою собственную фреймворк, которую я все еще использую и хорошо работаю. Затем я наткнулся на deeplearning4j, и я могу сказать вам, что он вполне завершен и очень быстро вычисляется. Я бы сказал, если вы хотите посмотреть, какие рамки нейронных сетей выглядели 15 лет назад, используйте Encog, иначе нет причин использовать его, т. Е. используйте deeplayning4j или попробуйте некоторые из python DL framework.
- 1. Neuroph Vs Encog
- 2. Joone vs. Encog - производственные приложения
- 3. Bad INDArray производительность создания с помощью DeepLearning4J
- 4. Ужасная производительность по набору данных Iris с использованием deeplearning4j
- 5. DeepLearning4J NoSuchMethodError
- 6. Производительность - window.onscroll vs setInterval
- 7. URI vs Производительность файла
- 8. Производительность: NaCl vs Emscripten
- 9. Производительность fopen vs stat
- 10. Производительность char vs string
- 11. Производительность памяти vs Использование
- 12. Generics vs Производительность объекта
- 13. Производительность подзапроса vs join
- 14. CALayer vs. drawInRect: производительность?
- 15. Производительность System.IO.File vs System.IO.FileStream
- 16. .Net vs C++ (производительность)
- 17. Asp.net Vs Php Производительность
- 18. LINQ vs datasets - производительность?
- 19. Производительность: Pig vs Hive
- 20. Производительность: BufferedOutputStream vs FileWriter
- 21. Производительность phantom.js vs zombie.js
- 22. Производительность BitmapImage vs. ImageBrush
- 23. Производительность sprintf vs String.Format
- 24. Производительность: Geometry VS Shape
- 25. Весна - Развязка Vs Производительность
- 26. Производительность: Async vs Thread
- 27. Производительность MappedByteBuffer vs ByteBuffer
- 28. VARCHAR vs DECIMAL Производительность
- 29. Javascript - Аргументы Vs Вложенные функции Vs Производительность
- 30. сравнить производительность MathJax vs MathQuill vs Katex
Кстати, в то время также пытался Нейроф ... вы не хотите его использовать. – Diego