factograf
UK
Увійти

програмне забезпечення

Deeplearning4j

Усі дані картки 11
Тип
обробка природної мови, глибоке навчання, комп'ютерний зір, штучний інтелект
Автор
Адам Ґібсон, Кріс Ніколсон, Джош Паттерсон
Розробник
Адам Ґібсонd
Платформа
віртуальна машина Java
Операційна система
Linux, macOS і Windows
Мова програмування
Java і Scala
Доступні мови
англійська
Стан розробки
активний
Ліцензія
Apache Software License 2.0d
Репозиторій
github.com/deeplearning4j/deeplearning4j
Вебсайт
deeplearning4j.konduit.ai

Deeplearning4j — бібліотека програм мовою Java, яка використовується як фреймворк для глибокого навчання. Включає реалізацію через обмежену машину Больцмана, глибоку мережу переконань, глибокий автокодувальник, стековий автокодувальник з фільтрацією шуму, рекурсивну тензорну нейронну мережу, word2vec, doc2vec та GloVe. Ці алгоритми включено також у версії бібліотеки, що підтримують розподілені обчислення, інтегровані з архітектурою Apache Hadoop і Spark.

Є відкритим програмним забезпеченням, поширюється під ліцензією Apache 2.0; головні розробники — група машинного навчання в Сан-Франциско на чолі з Адамом Ґібсоном, комерційні впровадження підтримує стартап Skymind.

Технологія

Deeplearning4j реалізована мовою Java і виконується в середовищі, при цьому сумісна з Clojure і включає інтерфейс (API) для мови Scala. Додаткова бібліотека ND4J відкритого доступу забезпечує обчислення на графічних процесорах з підтримкою CUDA. Крім того, є засоби для роботи з бібліотекою мовою Python через фреймворк Keras.

Фреймворк дозволяє комбінувати компоненти, об'єднуючи звичайні нейронні мережі з машинами Больцмана, згортковими нейронними мережами, автокодувальниками і рекурентними мережами в одну систему. Крім того, підтримуються розширені засоби візуалізації. Навчання відбувається як за допомогою звичайних багатошарових нейронних мереж, так і для складних мереж, в яких визначено граф обчислень.

Розподілені обчислення

Навчання в Deeplearning4j здійснюється через кластери. Нейронні мережі навчаються паралельно з застосуванням ітерації, процес підтримується архітектурою Hadoop-YARN та Spark. Deeplearning4j здійснює також інтеграцію з ядром архітектури CUDA для проведення чистих операцій з GPU і розподілу операцій на графічних процесорах.

Наукові розрахунки для JVM

Deeplearning4j включає клас для роботи з n-вимірним масивом даних у бібліотеці ND4J. Це полегшує обчислення для наукових задач мовами Java і Scala, функціональність при цьому подібна до функціональності, яку бібліотека NumPy забезпечує для мови Python. Ефективність у практичних застосуваннях досягається завдяки використанню бібліотек лінійної алгебри і матричних перетворень.

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

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

Обробка природної мови і текстів

Для обробки великих обсягів текстів з використанням потужності паралельних графічних процесорів Deeplearning4j залучає інструментарій векторного і тематичного моделювання мовою Java.

Бібліотека містить реалізації частотної інверсії (TF-IDF), глибоке навчання, алгоритм Міколова word2vec, doc2vec, і GloVe, оптимізовані на Java. При цьому використовується принцип стохастичного вбудовування сусідів з розподілом Стьюдента (t-SNE) для реалізації хмари слів.

Безпека

У бібліотеку додано засоби захисту від зовнішнього втручання і безпеки від злому, що особливо важливо у фінансових задачах, у промислових системах, в електронній комерції та підприємництві, застосовується розпізнавання аномалій і розпізнавання образів. Deeplearning4j інтегрований з іншими платформами машинного навчання — такими як RapidMiner, Prediction.io і Weka.

Тести продуктивності

Зіставлення продуктивності показує, що Deeplearning4j можна порівняти з Caffe в задачах нетривіального розпізнавання образів із залученням паралельних графічних процесорів. Для програмістів, які незнайомі з HPC на JVM, є кілька параметрів, які можна регулювати для поліпшення продуктивності навчання нейронних мереж. Серед них — налаштування динамічної пам'яті, алгоритм збирання сміття, підкачка пам'яті і попереднє збереження даних для прискорення ETL. Комбінуючи ці налаштування, можна збільшити продуктивність Deeplearning4j до десяти разів.

Читати далі

12 мовами

Текст із Вікіпедії, CC BY-SA 4.0 · Стаття-джерело