3

Мы работаем над проектом на Java, используя нейронные сети. Мы хотим протестировать различные сетевые структуры на наших наборах данных. Теперь мы оцениваем, какая из Java Neural Networks является лучшей с точки зрения производительности. Мы оцениваем Encog, Neuroph и DL4J. Не могли бы вы рассказать нам о хороших ресурсах или о вашем собственном опыте? БлагодаряПроизводительность Encog vs Deeplearning4J

ответ

6

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.

  • Нейроф имеет сильную визуализацию, но я не в состоянии оценить остальную часть их рамок, поэтому я позволю им говорить сами за себя!

    http://deeplearning4j.org

    https://github.com/deeplearning4j

    https://github.com/deeplearning4j/nd4j

    https://github.com/deeplearning4j/libnd4j

Есть около 2000 дэвы в канале поддержки пользователей Deeplearning4j на GITTER. Пожалуйста, присоединяйтесь к нам, что если у вас есть вопросы:

https://gitter.im/deeplearning4j/deeplearning4j

1

У меня есть только некоторый опыт работы с Deeplearning4j и Encog в Java мире, и я думаю, что это очень многое зависит от того, какова ваша цель. Deeplearning4j - это, безусловно, самая сложная структура из 2; он обладает потрясающими инструментами, он работает с графическими процессорами, поддерживает такие вещи, как LSTM и Convolutional NNs, он уже настроен для распределенного обучения и т. д. Но, как сложный и крутой, он также может быть немного PITA. Когда домашняя страница хочет, чтобы вы использовали определенную среду IDE и направляли на длинные руководства по установке зависимых проектов, вы знаете, что это будет не очень просто. Но это того стоит, если вам это нужно.

Это говорит о том, что в некоторых случаях еще многое предстоит сказать для Encog. Он очень легко интегрируется с практически любым проектом java; это всего лишь один .jar для включения и выключения. Это очень быстро и очень эффективно использует процессорные ядра, имеет очень красивый и понятный API.Если вам нужна библиотека java для эффективного внедрения NN с прямой пересылкой или если вы хотите узнать немного больше о работе с машинным обучением в целом, я не могу рекомендовать Encog достаточно. Когда вы сталкиваетесь с ограничениями Encog, попробуйте Deeplearning4j или немного за пределами java и попробуйте что-то вроде Tensorflow (у которого также есть поддержка java).

0

Я могу рассказать вам о своем опыте.

Еще в 2015 году я искал хорошую Java-платформу для глубокого обучения. После начального исследования я наткнулся на Encog. Вскоре я понял, что ему не хватает многих компонентов современных нейронных сетей, т. Е. Он был довольно устаревшим, а также у меня было много проблем даже при его настройке (это не очень гибко). Кстати, это позволяет проводить параллельные вычисления на процессорах.

Итак, я решил написать свою собственную фреймворк, которую я все еще использую и хорошо работаю. Затем я наткнулся на deeplearning4j, и я могу сказать вам, что он вполне завершен и очень быстро вычисляется. Я бы сказал, если вы хотите посмотреть, какие рамки нейронных сетей выглядели 15 лет назад, используйте Encog, иначе нет причин использовать его, т. Е. используйте deeplayning4j или попробуйте некоторые из python DL framework.

+0

Кстати, в то время также пытался Нейроф ... вы не хотите его использовать. – Diego

Смежные вопросы