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