Поделиться через


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.