API de biblioteca de CNTK
CNTK proporciona bibliotecas en Python, C++ para la composición y el entrenamiento de red, así como para la evaluación del modelo. También proporciona bibliotecas en C#/.NET y Java para acceder a los servicios de evaluación de modelos de CNTK.
API de Python
La API de Python de CNTK consta de abstracciones para la definición del modelo y el proceso, los algoritmos de aprendizaje, la lectura de datos y el entrenamiento distribuido.
- Flexibilidad y compactación: estas abstracciones componen ortogonalmente ofrecen flexibilidad y concisa en la definición y el entrenamiento de redes neuronales arbitrarias.
- Interfaces de datos eficaces: las interfaces de datos sencillas pero ligeras permiten a los usuarios alimentar eficazmente los datos en forma de matrices numpy nativas al motor de proceso.
- Lectores de datos integrados: los lectores de datos integrados y escalables de CNTK para formatos de datos de imagen, formato de texto y HTK de voz también están disponibles en las API de Python para facilitar el entrenamiento directo con datos existentes sin que los usuarios tengan que crear ningún código de lectura de datos.
- Aprendizaje altamente escalable: la API expone las funcionalidades de entrenamiento distribuido altamente escalables de CNTK (algoritmos de paralelización como SGD de 1 bits). En el ejemplo de entrenamiento distribuido se muestra la API de paralelización de entrenamiento.
- Definición de red concisa: la API incluye una biblioteca de capas de alto nivel que permite una definición de redes neuronales avanzadas concisa, incluidas las periodicidades similares a CNTK V1. El kit de herramientas admite la representación de modelos recurrentes en forma simbólica como ciclos en la red neuronal en lugar de requerir la anulación estática de los pasos de periodicidad. Esto da como resultado una representación y ejecución mucho más general, concisa y eficaz de redes neuronales recurrentes.
Todas las abstracciones básicas de la API de cálculo, aprendizaje y lectura de datos en la API de Python de CNTK son muy fácilmente extensibles desde Python y C++, lo que permite a los usuarios implementar fácilmente nuevos operadores, aprendices y lectores de datos que se componen libremente con las instalaciones integradas de la biblioteca.
La API presenta un nuevo formato de serialización de modelos basado en búferes de protocolo que admite la compatibilidad con versiones anteriores y ascendentes para los modelos guardados.
API de C++
La API de CNTK Library C++ expone el cálculo básico de CNTK, la composición de red neuronal & entrenamiento, lectura de datos eficaz y instalaciones de entrenamiento de modelos escalables para desarrolladores. Las API de C++ están totalmente destacadas tanto para el entrenamiento del modelo como para la evaluación, lo que permite que tanto el entrenamiento como el modelo sirvan para controlarse desde código nativo. Esto permite que el código nativo ajuste el modelo en línea mediante nuevos datos como parte de una solicitud de evaluación (es decir, aprendizaje en línea).
Actualmente, el mejor origen de documentación de API está alineado en el archivo de encabezado de API (CNTKLibrary.h) que contiene la definición completa de la API de C++. Los archivos de encabezado de API también se incluyen en el paquete de versión binaria en el directorio Include.
C#/.NET API
La API administrada de la biblioteca CNTK expone las API relacionadas con entrenamiento y evaluación para desarrolladores que usan C# u otros lenguajes .NET. Se proporciona como paquetes NuGet. CNTK del paquete NuGet. CPUOnly es solo para dispositivos de CPU y CNTK. GPU admite CPU y GPU NVIDIA.
Para obtener más información sobre la API administrada de la biblioteca CNTK, consulte la página api administrada de la biblioteca CNTK .
Hay varios ejemplos de Eval dentro del proyecto de CNTKLibraryEvalExamples.sln muestra cómo evaluar un modelo en C#.
Puede encontrar ejemplos de entrenamiento con la API de C# dentro de CNTKLibraryCSharpTrainingExamples.sln
API de Java (Experimental)
La API de Java de CNTK admite la evaluación de modelos en Java. Esta API sigue siendo experimental y está sujeta a cambios. Se proporciona como un archivo JAR (cntk.jar) que se puede incluir en proyectos de Java.
Consulte las instrucciones de Windows y Linux para obtener información sobre cómo usar la API de Java.
En el ejemplo de Java se muestra cómo evaluar un modelo en Java.