Microsoft Cognitive Toolkit (CNTK) - Wprowadzenie
W tym rozdziale dowiemy się, czym jest CNTK, jakie są jego funkcje, jaka jest różnica między wersją 1.0 i 2.0 oraz najważniejsze informacje dotyczące wersji 2.7.
Co to jest Microsoft Cognitive Toolkit (CNTK)?
Microsoft Cognitive Toolkit (CNTK), wcześniej znany jako Computational Network Toolkit, to darmowy, łatwy w użyciu, komercyjny zestaw narzędzi o otwartym kodzie źródłowym, który pozwala nam trenować algorytmy głębokiego uczenia, aby uczyć się jak ludzki mózg. Umożliwia nam tworzenie popularnych systemów uczenia głębokiego, takich jakfeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.
Aby uzyskać optymalną wydajność, jego funkcje ramowe są napisane w C ++. Chociaż możemy wywołać jego funkcję za pomocą C ++, ale najczęściej stosowanym podejściem do tego samego jest użycie programu w języku Python.
Funkcje CNTK
Poniżej przedstawiono niektóre funkcje i możliwości oferowane w najnowszej wersji Microsoft CNTK:
Wbudowane komponenty
CNTK ma wysoce zoptymalizowane wbudowane komponenty, które mogą obsługiwać wielowymiarowe, gęste lub rzadkie dane z Pythona, C ++ lub BrainScript.
Z uwagą możemy wdrożyć CNN, FNN, RNN, Batch Normalization i Sequence-to-Sequence.
Zapewnia nam funkcjonalność dodawania nowych zdefiniowanych przez użytkownika podstawowych komponentów do GPU z Pythona.
Zapewnia również automatyczne dostrajanie hiperparametrów.
Możemy wdrożyć uczenie się ze wzmocnieniem, generatywne sieci przeciwstawne (GAN), uczenie nadzorowane i nienadzorowane.
W przypadku ogromnych zbiorów danych CNTK ma wbudowane zoptymalizowane czytniki.
Efektywne wykorzystanie zasobów
CNTK zapewnia nam równoległość z wysoką dokładnością na wielu GPU / maszynach za pośrednictwem 1-bitowego SGD.
Aby zmieścić największe modele w pamięci GPU, zapewnia współdzielenie pamięci i inne wbudowane metody.
Łatwo wyrażaj własne sieci
CNTK ma pełne interfejsy API do definiowania własnej sieci, osób uczących się, czytelników, szkoleń i oceny w językach Python, C ++ i BrainScript.
Używając CNTK, możemy łatwo oceniać modele w Pythonie, C ++, C # lub BrainScript.
Zapewnia zarówno interfejsy API wysokiego, jak i niskiego poziomu.
Na podstawie naszych danych może automatycznie kształtować wnioskowanie.
Posiada w pełni zoptymalizowane symboliczne pętle rekurencyjnych sieci neuronowych (RNN).
Mierzenie wydajności modelu
CNTK zapewnia różne komponenty do pomiaru wydajności budowanych sieci neuronowych.
Generuje dane dziennika z Twojego modelu i powiązanego optymalizatora, których możemy użyć do monitorowania procesu uczenia.
Wersja 1.0 vs wersja 2.0
Poniższa tabela porównuje wersje CNTK 1.0 i 2.0:
Wersja 1.0.0 | Wersja 2.0.0 |
---|---|
Został wydany w 2016 roku. | Jest to znacząca przeróbka wersji 1.0 i została wydana w czerwcu 2017 roku. |
Używał zastrzeżonego języka skryptowego o nazwie BrainScript. | Jego funkcje ramowe można wywołać za pomocą C ++, Python. Nasze moduły możemy łatwo załadować w języku C # lub Javie. BrainScript jest również obsługiwany przez wersję 2.0. |
Działa w systemach Windows i Linux, ale nie bezpośrednio w systemie Mac OS. | Działa również w systemach Windows (Win 8.1, Win 10, Server 2012 R2 i nowsze) i Linux, ale nie bezpośrednio w systemie Mac OS. |
Ważne informacje o wersji 2.7
Version 2.7jest ostatnią główną wydaną wersją Microsoft Cognitive Toolkit. Posiada pełne wsparcie dla ONNX 1.4.1. Poniżej znajduje się kilka ważnych informacji dotyczących ostatniej wydanej wersji CNTK.
Pełne wsparcie dla ONNX 1.4.1.
Obsługa CUDA 10 dla systemów Windows i Linux.
Obsługuje zaawansowaną pętlę rekurencyjnych sieci neuronowych (RNN) w eksporcie ONNX.
Może eksportować ponad 2 GB modeli w formacie ONNX.
Obsługuje FP16 w działaniu szkoleniowym języka skryptowego BrainScript.