Apache MXNet - zestawy narzędzi i ekosystem

Aby wspierać badania i rozwój aplikacji Deep Learning w wielu dziedzinach, Apache MXNet zapewnia nam bogaty ekosystem zestawów narzędzi, bibliotek i wiele innych. Pozwól nam je zbadać -

Zestawy narzędzi

Poniżej znajdują się niektóre z najczęściej używanych i najważniejszych zestawów narzędzi dostarczanych przez MXNet -

GluonCV

Jak sama nazwa wskazuje, GluonCV to zestaw narzędzi Gluon do wizji komputerowej obsługiwany przez MXNet. Zapewnia implementację najnowocześniejszych algorytmów DL (Deep Learning) w wizji komputerowej (CV). Z pomocą inżynierów zestawu narzędzi GluonCV, naukowcy i studenci mogą łatwo weryfikować nowe pomysły i uczyć się CV.

Poniżej podano niektóre z features of GluonCV -

  • Szkoli skrypty do odtwarzania najnowocześniejszych wyników zgłoszonych w najnowszych badaniach.

  • Ponad 170+ wysokiej jakości wstępnie wytrenowanych modeli.

  • Przyjmij elastyczny wzorzec rozwoju.

  • GluonCV jest łatwy do optymalizacji. Możemy go wdrożyć bez zachowywania ciężkiego szkieletu DL.

  • Zapewnia starannie zaprojektowane interfejsy API, które znacznie zmniejszają zawiłość implementacji.

  • Społeczność.

  • Łatwe do zrozumienia implementacje.

Poniżej znajdują się pliki supported applications przez zestaw narzędzi GluonCV:

  • Klasyfikacja obrazu

  • Wykrywanie obiektów

  • Segmentacja semantyczna

  • Segmentacja instancji

  • Szacowanie pozycji

  • Rozpoznawanie akcji wideo

Możemy zainstalować GluonCV za pomocą pip w następujący sposób -

pip install --upgrade mxnet gluoncv

GluonNLP

Jak sama nazwa wskazuje, GluonNLP to zestaw narzędzi Gluon do przetwarzania języka naturalnego (NLP) obsługiwany przez MXNet. Zapewnia implementację najnowocześniejszych modeli DL (Deep Learning) w NLP.

Z pomocą inżynierów z zestawu narzędzi GluonNLP, badacze i studenci mogą budować bloki dla potoków danych tekstowych i modeli. Na podstawie tych modeli mogą szybko prototypować pomysły badawcze i produkt.

Poniżej podano niektóre cechy GluonNLP:

  • Szkoli skrypty do odtwarzania najnowocześniejszych wyników zgłoszonych w najnowszych badaniach.

  • Zestaw wstępnie wytrenowanych modeli do typowych zadań NLP.

  • Zapewnia starannie zaprojektowane interfejsy API, które znacznie zmniejszają zawiłość implementacji.

  • Społeczność.

  • Zawiera również samouczki, które pomogą Ci rozpocząć nowe zadania NLP.

Poniżej przedstawiono zadania NLP, które możemy zaimplementować za pomocą zestawu narzędzi GluonNLP -

  • Osadzanie słów

  • Model języka

  • Tłumaczenie maszynowe

  • Klasyfikacja tekstu

  • Analiza nastrojów

  • Wnioskowanie z języka naturalnego

  • Generowanie tekstu

  • Analiza zależności

  • Rozpoznawanie nazwanych jednostek

  • Klasyfikacja intencji i oznaczanie gniazd

Możemy zainstalować GluonNLP za pomocą pip w następujący sposób -

pip install --upgrade mxnet gluonnlp

Kleje

Jak nazwa wskazuje, GluonTS to zestaw narzędzi Gluon do probabilistycznego modelowania szeregów czasowych obsługiwany przez MXNet.

Zapewnia następujące funkcje -

  • Najnowocześniejsze (SOTA) modele głębokiego uczenia się gotowe do szkolenia.

  • Narzędzia do ładowania i iteracji zestawów danych szeregów czasowych.

  • Bloki konstrukcyjne do zdefiniowania własnego modelu.

Z pomocą zestawu narzędzi GluonTS inżynierowie, badacze i studenci mogą trenować i oceniać dowolne z wbudowanych modeli na ich własnych danych, szybko eksperymentować z różnymi rozwiązaniami i wymyślać rozwiązanie dla swoich zadań szeregów czasowych.

Mogą również używać dostarczonych abstrakcji i bloków konstrukcyjnych do tworzenia niestandardowych modeli szeregów czasowych i szybko porównywać je z algorytmami bazowymi.

Możemy zainstalować GluonTS za pomocą pip w następujący sposób -

pip install gluonts

GluonFR

Jak sama nazwa wskazuje, jest to zestaw narzędzi Apache MXNet Gluon dla FR (Rozpoznawanie twarzy). Zapewnia następujące funkcje -

  • Najnowocześniejsze modele uczenia głębokiego (SOTA) w rozpoznawaniu twarzy.

  • Wdrożenie SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss i LGM Loss itp.

Aby zainstalować Gluon Face, potrzebujemy Pythona 3.5 lub nowszego. Najpierw musimy również zainstalować GluonCV i MXNet w następujący sposób -

pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed

Po zainstalowaniu zależności możesz użyć następującego polecenia, aby zainstalować GluonFR -

From Source

pip install git+https://github.com/THUFutureLab/gluon-face.git@master

Pip

pip install gluonfr

Ekosystem

Teraz poznajmy bogate biblioteki, pakiety i frameworki MXNet -

Trener RL

Coach, platforma uczenia się w Pythonie (RL) stworzona przez laboratorium Intel AI. Umożliwia łatwe eksperymentowanie z najnowocześniejszymi algorytmami RL. Coach RL obsługuje Apache MXNet jako zaplecze i umożliwia prostą integrację nowego środowiska do rozwiązania.

W celu łatwego rozszerzania i ponownego wykorzystywania istniejących komponentów, Coach RL bardzo dobrze oddzielił podstawowe komponenty uczenia się o wzmocnieniu, takie jak algorytmy, środowiska, architektury NN, zasady eksploracji.

Poniżej znajdują się agenci i obsługiwane algorytmy dla platformy Coach RL -

Agenci optymalizacji wartości

  • Sieć Deep Q (DQN)

  • Sieć Double Deep Q (DDQN)

  • Dueling Q Network

  • Mieszane Monte Carlo (MMC)

  • Persistent Advantage Learning (PAL)

  • Kategoryczna sieć Deep Q (C51)

  • Regresja kwantowa Deep Q Network (QR-DQN)

  • N-Step Q Learning

  • Neuralna kontrola epizodyczna (NEC)

  • Znormalizowane funkcje przewagi (NAF)

  • Rainbow

Agenci optymalizacji zasad

  • Gradienty zasad (PG)

  • Asynchroniczny aktor-krytyk przewagi (A3C)

  • Głębokie deterministyczne gradienty polityki (DDPG)

  • Proksymalna optymalizacja polityki (PPO)

  • Obcięta proksymalna optymalizacja polityki (CPPO)

  • Uogólnione szacowanie przewagi (GAE)

  • Przykładowy skuteczny aktor-krytyk z powtórką doświadczenia (ACER)

  • Soft Actor-Critic (SAC)

  • Podwójny opóźniony, głęboki, deterministyczny gradient polityki (TD3)

Agenci generalni

  • Bezpośrednie przewidywanie przyszłości (DFP)

Agenci naśladujący uczenie się

  • Klonowanie behawioralne (BC)

  • Warunkowe uczenie się naśladowania

Agenty uczenia się ze wzmocnieniem hierarchicznym

  • Hierarchical Actor Critic (HAC)

Biblioteka Deep Graph

Deep Graph Library (DGL), opracowana przez zespoły NYU i AWS z Szanghaju, to pakiet Pythona, który zapewnia łatwą implementację Graph Neural Networks (GNN) na szczycie MXNet. Zapewnia również łatwą implementację GNN na tle innych istniejących głównych bibliotek głębokiego uczenia, takich jak PyTorch, Gluon itp.

Deep Graph Library to darmowe oprogramowanie. Jest dostępny we wszystkich dystrybucjach Linuksa późniejszych niż Ubuntu 16.04, macOS X i Windows 7 lub nowszy. Wymaga również wersji Python 3.5 lub nowszej.

Oto cechy DGL -

No Migration cost - Korzystanie z DGL nie wiąże się z żadnymi kosztami migracji, ponieważ jest on oparty na popularnych istniejących platformach DL.

Message Passing- DGL zapewnia przekazywanie wiadomości i ma nad nią wszechstronną kontrolę. Przekazywanie wiadomości obejmuje operacje niskiego poziomu, takie jak wysyłanie wzdłuż wybranych krawędzi, do kontroli wysokiego poziomu, takiej jak aktualizacje funkcji na całym wykresie.

Smooth Learning Curve - Dość łatwo jest nauczyć się i używać DGL, ponieważ potężne funkcje definiowane przez użytkownika są elastyczne i łatwe w użyciu.

Transparent Speed Optimization - DGL zapewnia przejrzystą optymalizację prędkości, wykonując automatyczne grupowanie obliczeń i rzadkie mnożenie macierzy.

High performance - Aby osiągnąć maksymalną wydajność, DGL automatycznie grupuje szkolenia DNN (głębokich sieci neuronowych) na jednym lub wielu wykresach jednocześnie.

Easy & friendly interface - DGL zapewnia nam łatwe i przyjazne interfejsy do dostępu do funkcji brzegowych, a także manipulacji strukturą wykresu.

InsightFace

InsightFace, zestaw narzędzi do głębokiego uczenia się do analizy twarzy, który zapewnia implementację algorytmu analizy twarzy SOTA (state-of-the-art) w wizji komputerowej obsługiwanej przez MXNet. Zapewnia -

  • Wysokiej jakości duży zestaw wstępnie wytrenowanych modeli.

  • Najnowocześniejsze skrypty szkoleniowe (SOTA).

  • InsightFace jest łatwy do optymalizacji. Możemy go wdrożyć bez zachowywania ciężkiego szkieletu DL.

  • Zapewnia starannie zaprojektowane interfejsy API, które znacznie zmniejszają zawiłość implementacji.

  • Bloki konstrukcyjne do zdefiniowania własnego modelu.

Możemy zainstalować InsightFace za pomocą pip w następujący sposób -

pip install --upgrade insightface

Należy pamiętać, że przed zainstalowaniem InsightFace należy zainstalować poprawny pakiet MXNet zgodnie z konfiguracją systemu.

Keras-MXNet

Ponieważ wiemy, że Keras to wysokopoziomowy interfejs API sieci neuronowej (NN) napisany w Pythonie, Keras-MXNet zapewnia nam wsparcie zaplecza dla Keras. Może działać w oparciu o wysokowydajną i skalowalną strukturę Apache MXNet DL.

Funkcje Keras-MXNet są wymienione poniżej -

  • Umożliwia użytkownikom łatwe, płynne i szybkie prototypowanie. Wszystko dzieje się dzięki łatwości obsługi, modułowości i rozszerzalności.

  • Obsługuje zarówno CNN (Convolutional Neural Networks), jak i RNN (Recurrent Neural Networks), a także kombinację obu.

  • Działa bezbłędnie zarówno na jednostce centralnej (CPU), jak i graficznej (GPU).

  • Może działać na jednym lub wielu GPU.

Aby pracować z tym backendem, musisz najpierw zainstalować keras-mxnet w następujący sposób -

pip install keras-mxnet

Teraz, jeśli używasz GPU, zainstaluj MXNet z obsługą CUDA 9 w następujący sposób -

pip install mxnet-cu90

Ale jeśli używasz tylko procesora, zainstaluj podstawową MXNet w następujący sposób -

pip install mxnet

MXBoard

MXBoard to narzędzie do rejestrowania, napisane w Pythonie, które służy do rejestrowania ramek danych MXNet i wyświetlania w TensorBoard. Innymi słowy, MXBoard ma działać zgodnie z interfejsem API tensorboard-pytorch. Obsługuje większość typów danych w TensorBoard.

Niektóre z nich są wymienione poniżej -

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Precyzyjna krzywa przypominania

MXFusion

MXFusion to modułowa biblioteka probabilistycznego programowania z głębokim uczeniem się. MXFusion pozwala nam w pełni wykorzystać modułowość, która jest kluczową cechą bibliotek głębokiego uczenia się, do programowania probabilistycznego. Jest prosty w użyciu i zapewnia użytkownikom wygodny interfejs do projektowania modeli probabilistycznych i stosowania ich do rzeczywistych problemów.

MXFusion jest weryfikowany w wersji 3.4 języka Python i nowszych w systemach MacOS i Linux. Aby zainstalować MXFusion, musimy najpierw zainstalować następujące zależności -

  • MXNet> = 1.3

  • Networkx> = 2.1

Za pomocą następującego polecenia pip możesz zainstalować MXFusion -

pip install mxfusion

TVM

Apache TVM, kompleksowy zestaw kompilatorów do głębokiego uczenia się typu open source dla zaplecza sprzętowego, takiego jak procesory, procesory graficzne i wyspecjalizowane akceleratory, ma na celu wypełnienie luki między strukturami uczenia głębokiego skupiającego się na produktywności a zapleczem sprzętowym zorientowanym na wydajność . Dzięki najnowszej wersji MXNet 1.6.0 użytkownicy mogą wykorzystać Apache (inkubujący) program TVM do implementacji wydajnych jąder operatorskich w języku programowania Python.

Apache TVM faktycznie rozpoczął się jako projekt badawczy w grupie SAMPL Paul G. Allen School of Computer Science & Engineering, University of Washington, a teraz jest to wysiłek podlegający inkubacji w The Apache Software Foundation (ASF), który jest napędzany przez OSC ( społeczność open source), która obejmuje wiele branż, a także instytucje akademickie w ramach Apache.

Oto główne cechy Apache (inkubujący) TVM -

  • Upraszcza poprzedni proces programowania oparty na C ++.

  • Umożliwia współdzielenie tej samej implementacji w wielu backendach sprzętowych, takich jak procesory, procesory graficzne itp.

  • TVM zapewnia kompilację modeli DL w różnych platformach, takich jak Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet w postaci minimalnych modułów, które można wdrożyć na różnych zapleczach sprzętowych.

  • Zapewnia nam również infrastrukturę do automatycznego generowania i optymalizacji operatorów tensorów z lepszą wydajnością.

XFer

Xfer, platforma uczenia transferowego, została napisana w języku Python. Zasadniczo przyjmuje model MXNet i trenuje meta-model lub modyfikuje model również dla nowego docelowego zestawu danych.

Mówiąc najprościej, Xfer to biblioteka Pythona, która pozwala użytkownikom na szybki i łatwy transfer wiedzy przechowywanej w DNN (głębokie sieci neuronowe).

Xfer może być używany -

  • Do klasyfikacji danych w dowolnym formacie liczbowym.

  • Do typowych przypadków obrazów lub danych tekstowych.

  • Jako potok, który przechodzi od wyodrębniania funkcji do szkolenia repurposera (obiektu, który przeprowadza klasyfikację w zadaniu docelowym).

Oto cechy Xfera:

  • Efektywne gospodarowanie zasobami

  • Wydajność danych

  • Łatwy dostęp do sieci neuronowych

  • Modelowanie niepewności

  • Szybkie prototypowanie

  • Narzędzia do ekstrakcji funkcji z NN