Deeplearning4j - Deeplearning4j

Затмение Deeplearning4j
Автор (ы) оригинала Алекс Д. Блэк, Адам Гибсон, Вячеслав Кокорин, Джош Паттерсон
Разработчики) Kondiut KK и вкладчики
Предварительный выпуск
1.0.0-beta7 / 13 мая 2020 г . ; 17 месяцев назад ( 2020-05-13 )
Репозиторий
Написано в Java , CUDA , C , C ++ ,
Операционная система Linux , macOS , Windows , Android , iOS
Платформа CUDA , x86 , ARM , PowerPC
Доступно в английский
Тип Обработка естественного языка , глубокое обучение , машинное зрение , искусственный интеллект
Лицензия Лицензия Apache 2.0
Веб-сайт www .deeplearning4j .org Отредактируйте это в Викиданных

Eclipse Deeplearning4j - это библиотека программирования, написанная на Java для виртуальной машины Java (JVM). Это фреймворк с широкой поддержкой алгоритмов глубокого обучения. Deeplearning4j включает в себя реализации ограниченной машины Больцмана , сети глубоких убеждений , глубокого автоэнкодера, составного шумоподавляющего автоэнкодера и рекурсивной нейронной тензорной сети , word2vec , doc2vec и GloVe . Все эти алгоритмы включают в себя распределенные параллельные версии, которые интегрируются с Apache Hadoop и Spark .

Deeplearning4j - это программное обеспечение с открытым исходным кодом, выпущенное под лицензией Apache License 2.0, разработанное в основном группой машинного обучения со штаб-квартирой в Сан-Франциско . Она поддерживается на коммерческой основе запуска Skymind, который Связки DL4J, TensorFlow , Keras и другие глубокие библиотеки обучения в распределении предприятия под названием Skymind Intelligence Layer. Deeplearning4j был внесен в фонд Eclipse Foundation в октябре 2017 года.

Вступление

Deeplearning4j опирается на широко используемый язык программирования Java , хотя он совместим с Clojure и включает интерфейс прикладного программирования Scala (API). Он основан на собственной библиотеке численных вычислений с открытым исходным кодом ND4J и работает как с центральными процессорами (ЦП), так и с графическими процессорами (ГП).

Deeplearning4j использовался в нескольких коммерческих и академических приложениях. Код размещен на GitHub . Форум поддержки поддерживается на Gitter .

Структура является компонуемой, что означает, что мелкие нейронные сети, такие как ограниченные машины Больцмана, сверточные сети, автоэнкодеры и повторяющиеся сети, могут быть добавлены друг к другу для создания глубоких сетей различных типов. Он также имеет обширные инструменты визуализации и граф вычислений.

Распространено

Обучение с Deeplearning4j происходит в кластере. Нейронные сети обучаются параллельно с помощью итеративного сокращения, которое работает в Hadoop -YARN и Spark . Deeplearning4j также интегрируется с ядрами CUDA для выполнения чистых операций с графическим процессором и работает с распределенными графическими процессорами.

Научные вычисления для JVM

Deeplearning4j включает класс n-мерного массива с использованием ND4J, который позволяет выполнять научные вычисления на Java и Scala, аналогично функциям, которые NumPy предоставляет для Python . Он эффективно основан на библиотеке для линейной алгебры и манипуляций с матрицами в производственной среде.

Библиотека векторизации DataVec для машинного обучения

DataVec векторизует различные форматы файлов и типы данных, используя систему форматов ввода / вывода , аналогичную тому, как Hadoop использует MapReduce; то есть он превращает различные типы данных в столбцы скаляров, называемые векторами . DataVec предназначен для векторизации файлов CSV, изображений, звука, текста, видео и временных рядов.

Текст и НЛП

Deeplearning4j включает набор инструментов для моделирования векторного пространства и тематического моделирования , реализованный на Java и интегрирующийся с параллельными графическими процессорами для повышения производительности. Он предназначен для работы с большими текстовыми наборами.

Deeplearning4j включает в себя реализации термина «частота - обратная частота документа» ( tf – idf ), глубокое обучение и алгоритм word2vec Миколова, doc2vec и GloVe, переопределенный и оптимизированный на Java. Он основан на t-распределенном стохастическом встраивании соседей (t-SNE) для визуализации облака слов.

Реальные варианты использования и интеграции

Реальные варианты использования Deeplearning4j включают обнаружение сетевых вторжений и кибербезопасность, обнаружение мошенничества в финансовом секторе, обнаружение аномалий в таких отраслях, как производство, системы рекомендаций в электронной коммерции и рекламе, а также распознавание изображений. Deeplearning4j интегрирован с другими платформами машинного обучения, такими как RapidMiner, Prediction.io и Weka .

Сервер моделей машинного обучения

Deeplearning4j обслуживает модели машинного обучения для вывода в производственной среде с помощью бесплатной версии SKIL для разработчиков, Skymind Intelligence Layer. Сервер моделей обслуживает параметрические модели машинного обучения, которые принимают решения о данных. Он используется на этапе вывода рабочего процесса машинного обучения после конвейеров данных и обучения модели. Сервер моделей - это инструмент, который позволяет проводить исследования в области науки о данных в реальной производственной среде.

То, что веб-сервер для Интернета, - образцовый сервер для ИИ. Если веб-сервер получает HTTP-запрос и возвращает данные о веб-сайте, сервер модели получает данные и возвращает решение или прогноз относительно этих данных: например, отправил изображение, сервер модели может вернуть метку для этого изображения, идентифицирующую лица или животных на фотографиях.

Сервер моделей SKIL может импортировать модели из фреймворков Python, таких как Tensorflow, Keras, Theano и CNTK, преодолевая серьезный барьер при развертывании моделей глубокого обучения.

Контрольные точки

Deeplearning4j работает так же быстро, как Caffe, для нетривиальных задач распознавания изображений с использованием нескольких графических процессоров. Для программистов, не знакомых с HPC на JVM, есть несколько параметров, которые необходимо настроить, чтобы оптимизировать время обучения нейронной сети. К ним относятся установка пространства кучи, алгоритм сборки мусора, использование памяти вне кучи и предварительное сохранение данных (обработка) для более быстрого ETL. Вместе эти оптимизации могут привести к 10-кратному увеличению производительности с Deeplearning4j.

Языки API: Java, Scala, Python, Clojure и Kotlin

Deeplearning4j можно использовать на нескольких языках API, включая Java, Scala, Python, Clojure и Kotlin. Его Scala API называется ScalNet. Keras служит его API Python. А его оболочка Clojure известна как DL4CLJ. Основными языками, выполняющими крупномасштабные математические операции, необходимые для глубокого обучения, являются C, C ++ и CUDA C.

Tensorflow, Keras и Deeplearning4j

Tensorflow, Keras и Deeplearning4j работают вместе. Deeplearning4j может импортировать модели из Tensorflow и других фреймворков Python, если они были созданы с помощью Keras.

Смотрите также

использованная литература