Deeplearning4j | |
---|---|
Тип | Обработка естественного языка, глубокое обучение, компьютерное зрение, искусственный интеллект |
Автор | Адам Гибсон, Крис Николсон, Джош Паттерсон |
Разработчик | Various |
Написана на | Java, Scala, CUDA, C, C++, Python, Clojure |
Операционная система | Linux, macOS, Windows, Android |
Языки интерфейса | английский |
Аппаратная платформа | кроссплатформенность |
Последняя версия |
|
Состояние | активный |
Лицензия | Apache 2.0 |
Сайт | deeplearning4j.org |
Deeplearning4j — библиотека программ на языке Java, используемая как фреймворк для глубокого обучения[2][3][4]. Включает реализацию ограниченной машины Больцмана, глубокой сети доверия, глубокого автокодировщика, стекового автокодировщика с фильтрацией шума, рекурсивной тензорной нейронной сети, word2vec, doc2vec, and GloVe. Эти алгоритмы включены также в версии библиотеки, поддерживающие распределённые вычисления, интегрированные с архитектурами Apache Hadoop и Spark[5].
Является открытым программным обеспечением, распространяется под лицензией Apache 2.0[6]; основные разработчики — группа машинного обучения в Сан-Франциско во главе с Адамом Гибсоном[7][8], коммерческие внедрения поддерживают стартап Skymind.
Deeplearning4j реализована на языке Java и выполняется в среде, при этом совместима с Clojure и включает интерфейс (API) для языка Scala. Дополнительная библиотека ND4J открытого доступа обеспечивает вычисления на графических процессорах с поддержкой CUDA[9][10]. Кроме того, имеются средства для работы с библиотекой на языке Python через фреймворк Keras[11].
Фреймворк позволяет комбинировать компоненты, объединяя обычные нейронные сети с машинами Больцмана, свёрточными нейронными сетями, автокодировщиками и рекуррентными сетями в одну систему. Кроме того, поддерживаются расширенные средства визуализации[12]. Обучение проводится как с помощью обычных многослойных нейронных сетей, так и для сложных сетей, в которых определён граф вычислений[13].
Обучение в Deeplearning4j осуществляется через кластеры. Нейронные сети обучаются параллельно по итерациям, процесс поддерживается архитектурами Hadoop-YARN и Spark[7][14]. Deeplearning4j осуществляет также интеграцию с ядром архитектуры CUDA для осуществления чистых операций с GPU и распределения операций на графических процессорах.
Deeplearning4j включает в себя класс для работы с n-мерным массивом данных в библиотеке ND4J. Это облегчает вычисления для научных задач на языках Java и Scala, функциональность при этом соответствует языку NumPy для Pythonа. Использование этих средств позволяет эффективно решать задачи линейной алгебры и матричных преобразований в практических приложениях.
Библиотека DataVec проводит векторизацию файлов в различных входных и выходных форматах методом, подобным MapReduce; при этом данные трансформируются в векторную форму. DataVec векторизирует табличный формат CSV, изображения, звуки, тексты, видео и временные последовательности данных[15][16].
Для обработки больших объёмов текстов с использованием мощности параллельных графических процессоров Deeplearning4j привлекает инструментарий векторного и тематического моделирования на языке Java.
В библиотеку входят реализации частотной инверсии (TF-IDF), глубинное обучение, алгоритм Миколова word2vec[17], doc2vec, и GloVe, которые оптимизированы на Java. При этом используется принцип стохастического встраивания соседей с распределением Стьюдента (t-SNE[en]) для реализации облака слов.
В библиотеку включены средства защиты от внешнего вмешательства и безопасности от взлома, что особенно важно в финансовых задачах[18][19], в промышленных системах, в электронной коммерции и предпринимательстве применяется распознавание аномалий[20] и распознавание образов[21]. Deeplearning4j интегрирован с другими платформами машинного обучения — такими как RapidMiner, Prediction.io[22] и Weka[23].
Сопоставление производительности показывает, что Deeplearning4j сопоставим с Caffe в задачах нетривиального распознавания образов с привлечением параллельных графических процессоров[24]. Для программистов, незнакомых с HPC на JVM, имеется несколько параметров, которые можно регулировать для улучшения производительности обучения нейронных сетей. В эти параметры входит настройка динамической памяти, алгоритм сборки мусора, подкачка памяти и предварительное сохранение данных для ускорения ETL[25]. Комбинируя эти настройки, можно увеличить производительность Deeplearning4j до десяти раз.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .