Deeplearning4j - Deeplearning4j

Eclipse Deeplearning4j
Původní autoři Alex D. Black, Adam Gibson, Vyacheslav Kokorin, Josh Patterson
Vývojáři Kondiut KK a přispěvatelé
Náhled vydání
1.0.0-beta7 / 13. května 2020 ; Před 17 měsíci ( 2020-05-13 )
Úložiště
Napsáno Java , CUDA , C , C ++ ,
Operační systém Linux , macOS , Windows , Android , iOS
Plošina CUDA , x86 , ARM , PowerPC
K dispozici v Angličtina
Typ Zpracování přirozeného jazyka , hluboké učení , strojové vidění , umělá inteligence
Licence Licence Apache 2.0
webová stránka www .deeplearning4j .org Upravte to na Wikidata

Eclipse Deeplearning4j je programovací knihovna napsaná v jazyce Java pro virtuální stroj Java (JVM). Jedná se o rámec s širokou podporou pro algoritmy hlubokého učení. Deeplearning4j zahrnuje implementace omezeného Boltzmannova stroje , sítě s hlubokou vírou , hlubokého autoenkodéru, skládaného denoizujícího autoenkodéru a rekurzivní neurální tenzorové sítě , word2vec , doc2vec a GloVe . Všechny tyto algoritmy zahrnují distribuované paralelní verze, které se integrují s Apache Hadoop a Spark .

Deeplearning4j je open-source software vydávaný pod licencí Apache License 2.0, vyvinutý převážně skupinou strojového učení se sídlem v San Francisku . Komerčně je podporován startupem Skymind, který sdružuje knihovny DL4J, TensorFlow , Keras a další knihovny hlubokého učení v podnikové distribuci zvané Skymind Intelligence Layer. Deeplearning4j byl přispěn nadaci Eclipse v říjnu 2017.

Úvod

Deeplearning4j se spoléhá na široce používaný programovací jazyk Java , přestože je kompatibilní s Clojure a obsahuje rozhraní API pro programování Scala . Je poháněn vlastní open-source numerickou výpočetní knihovnou ND4J a pracuje s centrálními procesorovými jednotkami (CPU) i grafickými procesorovými jednotkami (GPU).

Deeplearning4j byl použit v několika komerčních a akademických aplikacích. Kód je hostován na GitHubu . Na Gitteru je udržováno fórum podpory .

Rámec je skládatelný, což znamená, že k vytvoření hlubokých sítí různých typů lze vzájemně přidávat mělké neurální sítě, jako jsou omezené Boltzmannovy stroje, konvoluční sítě, autoenkodéry a rekurentní sítě. Má také rozsáhlé vizualizační nástroje a výpočetní graf.

Distribuováno

Trénink s Deeplearning4j probíhá v klastru. Neuronové sítě jsou vyškoleni paralelně pomocí iterativní snížit, který pracuje na Hadoop -příze a Spark . Deeplearning4j se také integruje s jádry CUDA pro provádění čistých operací GPU a pracuje s distribuovanými GPU.

Vědecké výpočty pro JVM

Deeplearning4j obsahuje třídu n-dimenzionálních polí využívající ND4J, která umožňuje vědecké výpočty v jazycích Java a Scala, podobně jako funkce, které NumPy poskytuje Pythonu . Je efektivně založen na knihovně pro manipulaci s lineární algebrou a maticí v produkčním prostředí.

Knihovna vektorizace DataVec pro strojové učení

DataVec vektorizuje různé formáty souborů a datové typy pomocí systému vstupního/výstupního formátu podobného tomu, jakým Hadoop používá MapReduce; to znamená, že mění různé datové typy na sloupce skalárů nazývaných vektory . DataVec je určen k vektorizaci CSV, obrázků, zvuku, textu, videa a časových řad.

Text a NLP

Deeplearning4j obsahuje sadu nástrojů pro vektorové prostorové modelování a modelování témat , implementovanou v Javě a integrující s paralelními GPU pro výkon. Je navržen tak, aby zvládl velké sady textů.

Deeplearning4j zahrnuje implementace výrazu frekvence – inverzní frekvence dokumentu ( tf – idf ), deep learning a Mikolovův algoritmus word2vec, doc2vec a GloVe, reimplementovaný a optimalizovaný v Javě. Pro vizualizace cloudu slov se spoléhá na t-distribuované stochastické sousední vkládání (t-SNE).

Případy a integrace v reálném světě

Skutečné případy použití Deeplearning4j zahrnují detekci narušení sítě a kybernetickou bezpečnost, detekci podvodů pro finanční sektor, detekci anomálií v průmyslových odvětvích, jako je výroba, systémy doporučení v elektronickém obchodování a reklamě a rozpoznávání obrázků. Deeplearning4j se integroval s dalšími platformami strojového učení, jako jsou RapidMiner, Prediction.io a Weka .

Server Machine Learning Model Server

Deeplearning4j nabízí modely strojového učení pro odvození ve výrobě pomocí bezplatné vývojářské edice SKIL, Skymind Intelligence Layer. Server modelu slouží parametrickým modelům strojového učení, které rozhodují o datech. Používá se pro inferenční fázi pracovního postupu strojového učení, po datových kanálech a školení modelu. Modelový server je nástroj, který umožňuje nasazení výzkumu datové vědy v reálném produkčním prostředí.

Co je webový server pro internet, to je model serveru pro AI. Tam, kde webový server přijímá požadavek HTTP a vrací data o webu, modelový server přijímá data a vrací rozhodnutí nebo předpověď o těchto datech: např. Odeslání obrázku, server modelu může vrátit popisek pro tento obrázek, identifikaci tváří nebo zvířata na fotografiích.

Server modelu SKIL je schopen importovat modely z rámců Pythonu, jako jsou Tensorflow, Keras, Theano a CNTK, čímž překonává hlavní bariéru v zavádění modelů hlubokého učení.

Srovnávací testy

Deeplearning4j je stejně rychlý jako Caffe pro netriviální úlohy rozpoznávání obrazu pomocí více GPU. Pro programátory, kteří nejsou obeznámeni s HPC na JVM, existuje několik parametrů, které je třeba upravit, aby se optimalizoval čas školení neuronových sítí. Patří mezi ně nastavení prostoru haldy, algoritmu shromažďování odpadků, využití paměti mimo hromadu a předběžné ukládání dat (moření) pro rychlejší ETL. Dohromady mohou tyto optimalizace vést k 10násobnému zrychlení výkonu s Deeplearning4j.

Jazyky API: Java, Scala, Python, Clojure a Kotlin

Deeplearning4j lze používat ve více jazycích API, včetně Java, Scala, Python, Clojure a Kotlin. Jeho Scala API se nazývá ScalNet. Keras slouží jako jeho Python API. A jeho Clojure wrapper je známý jako DL4CLJ. Základní jazyky provádějící rozsáhlé matematické operace nezbytné pro hloubkové učení jsou C, C ++ a CUDA C.

Tensorflow, Keras & Deeplearning4j

Tensorflow, Keras a Deeplearning4j spolupracují. Deeplearning4j může importovat modely z Tensorflow a dalších rámců Pythonu, pokud byly vytvořeny pomocí Keras.

Viz také

Reference