Deeplearning4j

Deeplearning4j або DL4J відрізняється від інших ML / DL фреймворків і бібліотек. Це сучасна відкрита, розповсюджена бібліотека DL, реалізована на Java (JVM), спрямована на промислову екосистему розвитку Java та обробку Big Data

Фреймворк DL4J має вбудовану підтримку графічних процесорів, що є важливою особливістю процесу навчання та підтримує YARN, розподілену систему управління додатками Hadoop [DL4J] [Skymind 2017]. Бібліотека складається з декількох підпроектів для розробників, таких як перетворення необроблених даних у вектори ознак (DataVec), інструменти для конфігурації нейронних мереж (DeepLearning4j), імпорт сторонніх моделей (моделі Python та Keras), підтримка власних бібліотек для швидкої обробки даних на CPU і GPU (ND4J), обгортка Scala, що працює на кластері GPU з Spark (ScalNet), бібліотека алгоритмів навчання з підкріпленням (RL4J), інструмент пошуку простору гіперпараметрів для пошуку найкращої конфігурації NN та робочі приклади (DL4J-Examples) . Deeplearning4j має Java, Scala, а також Python API.

Підтримуються різні типи та формати вхідних даних, які легко розширюються іншими спеціалізованими типами та форматами. Інструментарій DataVec приймає на вході “сирі” дані, такі як зображення, відео, аудіо, текстові чи часові ряди та дозволяє їх обробку, нормалізацію та перетворення у вектори ознак. Він також може завантажувати дані в Spark RDD. DataVec містить зчитувачі записів для різних поширених форматів. DL4J включає в себе деякі основні інструменти NLP, такі як SentenceIterator (для подачі тексту по частинах в природний мовний процесор), Tokenizer (для сегментації тексту на рівні окремих слів або n-грам), Vocab (кеш для зберігання метаданих). Спеціалізовані формати можна подавати на вхід, застосовуючи власні формати введення так само, як це реалізовано в Hadoop через InputFormat.

Сильні сторони:

  • Визначною перевагою DL4j є те, що він використовує всю потужність екосистеми Java для ефективної роботи DL [Varangaonkar 2017]. Він може бути реалізований поверх популярних інструментів Big Data, таких як Apache Hadoop / Spark / Kafka з довільною кількістю графічних процесорів або процесорів. DL4J – це вибір для багатьох комерційних, галузевих розподілених платформ DL, де екосистема Java переважає в розробці бізнес-програмного забезпечення.
  • Багатий набір архітектур DL: CNN, RNN (RNTN, LSTM), RBM та DBN, тобто відмінні можливості для розпізнавання зображень, виявлення шахрайства та NLP.

Слабкі сторони:

  • Java / Scala – не найпопулярніша мова в DL / ML-спільноті, на відміну від Python.
  • В даний час має менший загальний інтерес, ніж H2O у спільноті Big Data and Spark.