API библиотеки CNTK
CNTK предоставляет библиотеки в Python, C++ для создания и обучения сети, а также для оценки модели. Он также предоставляет библиотеки в C#/.NET и Java для доступа к средствам оценки моделей CNTK.
API Python
API Python CNTK состоит из абстракций для определения модели и вычислений, алгоритмов обучения, чтения данных и распределенного обучения.
- Гибкость и компактность. Эти абстракции ортогонально составляют, обеспечивая гибкость и краткость в определении и обучении произвольных нейронных сетей.
- Эффективные интерфейсы данных. Простые, но легкие интерфейсы данных позволяют пользователям эффективно передавать данные в виде собственных массивов numpy в подсистему вычислений.
- Встроенные средства чтения данных. Встроенные оптимизированные и масштабируемые средства чтения данных CNTK для форматов данных HTK изображений, текста и речи также доступны в API Python для упрощения непосредственного обучения с существующими данными без необходимости создавать код для чтения данных.
- Высокомасштабируемое обучение. API предоставляет возможности распределенного обучения CNTK с высокой степенью масштабирования (алгоритмы параллелизации, такие как 1-bit SGD). Пример распределенного обучения иллюстрирует API параллелизации обучения.
- Краткое определение сети. API включает библиотеку высокоуровневых уровней , которая обеспечивает краткое расширенное определение нейронных сетей, включая повторения, аналогичные CNTK V1. Этот набор средств поддерживает представление повторяющихся моделей в символьной форме в виде циклов в нейронной сети, а не требует статического развертывания шагов повторения. Это приводит к гораздо более общему, краткому и эффективному представлению и выполнению повторяющихся нейронных сетей.
Все основные абстракции API вычислений, обучения и чтения данных в API Python CNTK очень легко расширяемы из Python и C++, что позволяет пользователям легко реализовывать новые операторы, учащихся и средства чтения данных, которые свободно составляются с помощью встроенных средств библиотеки.
API представляет новый формат сериализации модели на основе буферов протоколов , который поддерживает обратную и восходящую совместимость для сохраненных моделей.
API C++
API библиотеки CNTK C++ предоставляет разработчикам основные вычислительные компоненты, нейронные сети & обучения, эффективного чтения данных и масштабируемых моделей. API C++ полностью доступны как для обучения модели, так и для оценки, что позволяет управлять как обучением, так и обслуживанием модели на основе машинного кода. Это позволяет машинному коду настраивать онлайн-модель с использованием новых данных в рамках запроса на оценку (т. е. онлайн-обучение).
В настоящее время лучший источник документации по API находится в файле заголовка API (CNTKLibrary.h), который содержит полное определение API C++. Файлы заголовков API также включаются в двоичный пакет выпуска в каталоге Include.
C#/.NET API
Управляемый API библиотеки CNTK предоставляет api, связанные с обучением и оценкой, для разработчиков, использующих C# или другие языки .NET. Он предоставляется в виде пакетов NuGet. CNTK пакета NuGet. CpuOnly предназначен только для устройств ЦП и CNTK. GPU поддерживает как ЦП, так и GPU NVIDIA.
Дополнительные сведения об управляемом API библиотеки CNTK см. на странице Управляемого API библиотеки CNTK .
В проекте CNTKLibraryEvalExamples.sln показано, как оценить модель на C#, есть несколько примеров Eval.
Обучающие примеры использования API C# можно найти в CNTKLibraryCSharpTrainingExamples.sln
API Java (экспериментальный)
API CNTK Java поддерживает оценку модели в Java. Этот API по-прежнему является экспериментальным и может быть изменен. Он предоставляется в виде JAR-файла (cntk.jar), который можно включить в проекты Java.
Инструкции по использованию API Java см. в инструкциях по Windows и Linux .
В примере Java показано, как оценить модель в Java.