Głębokie uczenie4j - Deeplearning4j
Pierwotny autor (autorzy) | Alex D. Black, Adam Gibson, Wiaczesław Kokorin, Josh Patterson |
---|---|
Deweloper(zy) | Kondiut KK i współpracownicy |
Wersja zapoznawcza | 1.0.0-beta7 / 13 maja 2020
|
Magazyn | |
Napisane w | Java , CUDA , C , C++ , |
System operacyjny | Linux , macOS , Windows , Android , iOS |
Platforma | CUDA , x86 , ramię , PowerPC |
Dostępne w | język angielski |
Rodzaj | Przetwarzanie języka naturalnego , głębokie uczenie , widzenie maszynowe , sztuczna inteligencja |
Licencja | Licencja Apache 2.0 |
Strona internetowa |
www |
Część serii na |
Uczenie maszynowe i eksploracja danych |
---|
Eclipse Deeplearning4j to biblioteka programistyczna napisana w języku Java dla wirtualnej maszyny Java (JVM). Jest to framework z szerokim wsparciem dla algorytmów głębokiego uczenia. Deeplearning4j obejmuje implementacje ograniczonej maszyny Boltzmanna , głębokiej sieci przekonań , głębokiego autoenkodera, ułożonego autokodera odszumiającego i rekurencyjnej sieci tensora neuronowego , word2vec , doc2vec i GloVe . Wszystkie te algorytmy obejmują rozproszone wersje równoległe, które integrują się z Apache Hadoop i Spark .
Deeplearning4j to oprogramowanie typu open source wydane na licencji Apache License 2.0, opracowane głównie przez grupę zajmującą się uczeniem maszynowym z siedzibą w San Francisco . Jest wspierany komercyjnie przez startup Skymind, który łączy DL4J, TensorFlow , Keras i inne biblioteki głębokiego uczenia się w dystrybucji korporacyjnej zwanej Skymind Intelligence Layer. Deeplearning4j został wniesiony do Fundacji Eclipse w październiku 2017 roku.
Wstęp
Deeplearning4j opiera się na powszechnie używanym języku programowania Java , chociaż jest kompatybilny z Clojure i zawiera interfejs programowania aplikacji Scala (API). Jest zasilany przez własną bibliotekę obliczeniową typu open source ND4J i współpracuje zarówno z jednostkami centralnymi (CPU), jak i procesorami graficznymi (GPU).
Deeplearning4j został wykorzystany w kilku zastosowaniach komercyjnych i akademickich. Kod jest hostowany na GitHub . Na Gitterze prowadzone jest forum pomocy technicznej .
Szkielet można komponować, co oznacza, że płytkie sieci neuronowe, takie jak ograniczone maszyny Boltzmanna, sieci konwolucyjne, autokodery i sieci rekurencyjne, można dodawać do siebie, aby tworzyć głębokie sieci różnych typów. Posiada również rozbudowane narzędzia do wizualizacji i wykres obliczeniowy.
Rozpowszechniane
Trening z Deeplearning4j odbywa się w klastrze. Sieci neuronowe są trenowane równolegle za pomocą iteracyjnej redukcji, która działa na Hadoop -YARN i na Spark . Deeplearning4j integruje się również z jądrami CUDA w celu prowadzenia czystych operacji GPU i współpracuje z rozproszonymi GPU.
Obliczenia naukowe dla JVM
Deeplearning4j zawiera n-wymiarową klasę tablicy używającą ND4J, która umożliwia obliczenia naukowe w Javie i Scali, podobnie jak funkcje, które NumPy zapewnia Pythonowi . Skutecznie opiera się na bibliotece do algebry liniowej i manipulacji macierzami w środowisku produkcyjnym.
Biblioteka wektoryzacji DataVec do uczenia maszynowego
DataVec wektoryzuje różne formaty plików i typy danych przy użyciu systemu formatów wejścia/wyjścia podobnego do MapReduce w Hadoop; oznacza to, że przekształca różne typy danych w kolumny skalarów zwane wektorami . DataVec jest przeznaczony do wektoryzacji plików CSV, obrazów, dźwięku, tekstu, wideo i szeregów czasowych.
Tekst i NLP
Deeplearning4j zawiera zestaw narzędzi do modelowania przestrzeni wektorowej i tematu , zaimplementowany w języku Java i integrujący się z równoległymi procesorami graficznymi w celu zapewnienia wydajności. Jest przeznaczony do obsługi dużych zestawów tekstu.
Deeplearning4j zawiera implementacje terminu częstotliwość-odwrotna częstotliwość dokumentu ( tf-idf ), głębokie uczenie oraz algorytm word2vec Mikolova, doc2vec i GloVe, ponownie zaimplementowany i zoptymalizowany w Javie. Opiera się na t-distributed stochastycznym osadzeniu sąsiadów (t-SNE) dla wizualizacji chmur słów.
Rzeczywiste przypadki użycia i integracje
Rzeczywiste przypadki użycia Deeplearning4j obejmują wykrywanie włamań do sieci i cyberbezpieczeństwo, wykrywanie oszustw w sektorze finansowym, wykrywanie anomalii w branżach takich jak produkcja, systemy rekomendacji w handlu elektronicznym i reklamie oraz rozpoznawanie obrazów. Deeplearning4j zintegrował się z innymi platformami uczenia maszynowego, takimi jak RapidMiner, Prediction.io i Weka .
Serwer modelu uczenia maszynowego
Deeplearning4j obsługuje modele uczenia maszynowego do wnioskowania w produkcji przy użyciu bezpłatnej wersji dla programistów SKIL, Skymind Intelligence Layer. Serwer modelu obsługuje parametryczne modele uczenia maszynowego, które podejmują decyzje dotyczące danych. Jest używany na etapie wnioskowania w przepływie pracy uczenia maszynowego, po potokach danych i uczeniu modelu. Serwer modelowy to narzędzie, które umożliwia wdrażanie badań w zakresie analizy danych w rzeczywistym środowisku produkcyjnym.
Czym serwer WWW jest dla Internetu, serwer modelowy jest dla AI. Gdy serwer WWW otrzymuje żądanie HTTP i zwraca dane o witrynie WWW, serwer modelowy otrzymuje dane i zwraca decyzję lub prognozę dotyczącą tych danych: np. wysłał obraz, serwer modelowy może zwrócić etykietę dla tego obrazu, identyfikującą twarze lub zwierzęta na zdjęciach.
Serwer modeli SKIL może importować modele z frameworków Pythona, takich jak Tensorflow, Keras, Theano i CNTK, pokonując główną barierę we wdrażaniu modeli uczenia głębokiego.
Benchmarki
Deeplearning4j jest tak szybki jak Caffe do nietrywialnych zadań rozpoznawania obrazu przy użyciu wielu procesorów graficznych. Dla programistów niezaznajomionych z HPC na maszynie JVM istnieje kilka parametrów, które należy dostosować, aby zoptymalizować czas uczenia sieci neuronowych. Obejmują one ustawienie miejsca na stercie, algorytm zbierania śmieci, wykorzystanie pamięci poza stertą i wstępne zapisywanie danych (wytrawianie) w celu szybszego ETL. Razem te optymalizacje mogą doprowadzić do 10-krotnego przyspieszenia wydajności dzięki Deeplearning4j.
Języki API: Java, Scala, Python , Clojure i Kotlin
Deeplearning4j może być używany przez wiele języków API, w tym Java, Scala, Python, Clojure i Kotlin. Jego API Scala nazywa się ScalNet. Keras służy jako jego API Pythona. A jego opakowanie Clojure jest znane jako DL4CLJ. Podstawowe języki wykonujące operacje matematyczne na dużą skalę niezbędne do głębokiego uczenia się to C, C++ i CUDA C.
Tensorflow, Keras i głębokie uczenie4j
Tensorflow, Keras i Deeplearning4j współpracują ze sobą. Deeplearning4j może importować modele z Tensorflow i innych frameworków Pythona, jeśli zostały utworzone za pomocą Keras.
Zobacz też
- Porównanie oprogramowania do głębokiego uczenia
- Sztuczna inteligencja
- Nauczanie maszynowe
- Głęboka nauka