Udostępnij za pośrednictwem


Interfejs API biblioteki CNTK

CNTK udostępnia biblioteki w języku Python, C++ na potrzeby tworzenia i trenowania sieci, a także do oceny modelu. Udostępnia również biblioteki w językach C#/.NET i Java w celu uzyskania dostępu do obiektów oceny modelu CNTK.

Interfejs API języka Python

Interfejs API języka Python CNTK składa się z abstrakcji dla definicji modelu i obliczeń, algorytmów uczenia, odczytywania i trenowania rozproszonego danych.

  • Elastyczność i zwartość: Te abstrakcje ortogonalne redagują zarówno elastyczność, jak i zwięzłość w definicji i trenowaniu dowolnych sieci neuronowych.
  • Wydajne interfejsy danych: proste, ale lekkie interfejsy danych umożliwiają użytkownikom efektywne podawanie danych w postaci macierzy natywnych numpy do aparatu obliczeniowego.
  • Wbudowane czytniki danych: wbudowane, zoptymalizowane i skalowalne czytniki danych CNTK dla obrazów, formatów tekstu i mowy HTK są również dostępne w interfejsach API języka Python w celu ułatwienia bezpośredniego trenowania z istniejącymi danymi bez konieczności tworzenia kodu odczytu danych przez użytkowników.
  • Wysoce skalowalne uczenie: interfejs API uwidacznia wysoce skalowalne możliwości trenowania rozproszonego CNTK (algorytmy przetwarzania równoległego, takie jak 1-Bit SGD). Przykład trenowania rozproszonego ilustruje interfejs API przetwarzania równoległego trenowania.
  • Zwięzła definicja sieci: Interfejs API zawiera bibliotekę warstw wysokiego poziomu, która umożliwia zwięzłą definicję zaawansowanych sieci neuronowych, w tym cykle podobne do CNTK V1. Zestaw narzędzi obsługuje reprezentację cyklicznych modeli w postaci symbolicznej jako cykle w sieci neuronowej zamiast wymagać statycznego wyrejestrowania kroków cyklu. Skutkuje to znacznie bardziej ogólną, zwięzłą i wydajną reprezentacją i wykonywaniem cyklicznych sieci neuronowych.

Wszystkie podstawowe obliczenia, uczenie się i odczytywanie danych abstrakcji interfejsu API w interfejsie API języka Python CNTK są bardzo łatwo rozszerzalne zarówno z języka Python, jak i języka C++, co umożliwia użytkownikom łatwe implementowanie nowych operatorów, uczniów i czytników danych, które swobodnie tworzą wbudowane obiekty biblioteki.

Interfejs API wprowadza nowy format serializacji modelu oparty na buforach protokołu , który obsługuje wsteczne i w górę zgodność zapisanych modeli.

Interfejs API języka C++

Interfejs API języka C++ biblioteki CNTK uwidacznia podstawowe funkcje obliczeniowe, skład sieci neuronowej CNTK & szkolenia, wydajne odczytywanie danych i skalowalne obiekty szkoleniowe modelu dla deweloperów. Interfejsy API języka C++ są w pełni funkcjonalne zarówno do trenowania modelu, jak i oceny, co pozwala zarówno trenować, jak i obsługiwać model na podstawie kodu natywnego. Dzięki temu kod natywny może dostroić model online przy użyciu nowych danych w ramach żądania oceny (tj. uczenia online).

Obecnie najlepsze źródło dokumentacji interfejsu API jest wbudowane w pliku nagłówka interfejsu API (CNTKLibrary.h), który zawiera pełną definicję interfejsu API języka C++. Pliki nagłówków interfejsu API są również uwzględniane w pakiecie wersji binarnej w katalogu Include.

C#/.NET API

Interfejs API zarządzany biblioteki CNTK uwidacznia powiązane interfejsy API trenowania i oceny dla deweloperów przy użyciu języka C# lub innych języków platformy .NET. Jest on dostarczany jako pakiety NuGet. Pakiet NuGet CNTK. Procesor CPUOnly jest przeznaczony tylko dla urządzeń cpu i CNTK. Procesor GPU obsługuje zarówno procesor CPU, jak i procesor GPU firmy NVIDIA.

Szczegółowe informacje dotyczące zarządzanego interfejsu API biblioteki CNTK można znaleźć na stronie interfejsu API zarządzanego biblioteki CNTK .

W projekcie CNTKLibraryEvalExamples.sln przedstawiono kilka przykładów oceny modelu w języku C#.

Przykłady trenowania przy użyciu interfejsu API języka C# można znaleźć w CNTKLibraryCSharpTrainingExamples.sln

Interfejs API języka Java (eksperymentalny)

Interfejs API języka Java CNTK obsługuje ocenę modelu w języku Java. Ten interfejs API jest nadal eksperymentalny i może ulec zmianie. Jest on udostępniany jako plik jar (cntk.jar), który można uwzględnić w projektach Java.

Zapoznaj się z instrukcjami dotyczącymi korzystania z interfejsu API języka Java w systemach Windows i Linux .

W przykładzie języka Java pokazano, jak ocenić model w języku Java.