API de la bibliothèque CNTK
CNTK fournit des bibliothèques en Python, C++ pour la composition et l’entraînement réseau, ainsi que pour l’évaluation du modèle. Il fournit également des bibliothèques en C#/.NET et Java pour accéder aux fonctionnalités d’évaluation du modèle CNTK.
API Python
L’API Python CNTK se compose d’abstractions pour la définition de modèle et le calcul, les algorithmes d’apprentissage, la lecture de données et l’entraînement distribué.
- Flexibilité et compacité : ces abstractions composent de façon orthogonale offrant à la fois flexibilité et concision dans la définition et l’entraînement de réseaux neuronaux arbitraires.
- Interfaces de données efficaces : les interfaces de données simples mais légères permettent aux utilisateurs de fournir efficacement des données sous la forme de tableaux numpy natifs au moteur de calcul.
- Lecteurs de données intégrés : les lecteurs de données intégrés optimisés et évolutifs de CNTK pour les formats de données HTK d’image, de texte et de reconnaissance vocale sont également disponibles à partir des API Python pour faciliter l’apprentissage direct avec des données existantes sans que les utilisateurs n’ont à créer de code de lecture de données.
- Apprentissage hautement évolutif : l’API expose les fonctionnalités d’entraînement distribué hautement scalables de CNTK (algorithmes de parallélisation tels que SGD 1 bits). L’exemple de formation distribuée illustre l’API de parallélisation d’entraînement.
- Définition de réseau concise : l’API inclut une bibliothèque de couches de haut niveau qui permet une définition concise de réseaux neuronaux avancés, y compris des périodicités similaires à CNTK V1. Le kit de ressources prend en charge la représentation de modèles récurrents sous forme symbolique sous forme de cycles dans le réseau neuronal au lieu de nécessiter un déroulage statique des étapes de périodicité. Cela se traduit par une représentation et une exécution beaucoup plus générales, concises et efficaces des réseaux neuronaux récurrents.
Toutes les abstractions d’API de calcul, d’apprentissage et de lecture de données de base dans l’API Python CNTK sont très facilement extensibles à partir de Python et de C++, ce qui permet aux utilisateurs d’implémenter facilement de nouveaux opérateurs, apprenants et lecteurs de données qui composent librement avec les fonctionnalités intégrées de la bibliothèque.
L’API introduit un nouveau format de sérialisation de modèle basé sur les tampons de protocole qui prend en charge la compatibilité descendante et ascendante pour les modèles enregistrés.
API C++
L’API CNTK Library C++ expose les principales fonctionnalités de calcul de CNTK, la composition du réseau neuronal & l’entraînement, la lecture efficace des données et les fonctionnalités d’entraînement de modèle évolutives pour les développeurs. Les API C++ sont entièrement proposées pour l’apprentissage et l’évaluation du modèle, ce qui permet à l’entraînement et au service du modèle d’être piloté à partir du code natif. Cela permet à votre code natif d’ajuster le modèle en ligne à l’aide de nouvelles données dans le cadre d’une demande d’évaluation (par exemple, l’apprentissage en ligne).
Actuellement, la meilleure source de documentation d’API est inline dans le fichier d’en-tête d’API (CNTKLibrary.h) qui contient la définition complète de l’API C++. Les fichiers d’en-tête d’API sont également inclus dans le package de mise en production binaire sous le répertoire Include.
C#/.NET API
L’API managée de la bibliothèque CNTK expose les API associées à la formation et à l’évaluation pour les développeurs utilisant C# ou d’autres langages .NET. Il est fourni sous forme de packages NuGet. CNTK du package NuGet. CPUOnly est destiné aux appareils processeur uniquement et au CNTK. GPU prend en charge à la fois l’UC et le GPU NVIDIA.
Pour plus d’informations sur l’API managée de la bibliothèque CNTK, reportez-vous à la page API managée de la bibliothèque CNTK .
Il existe plusieurs exemples Eval dans le projet CNTKLibraryEvalExamples.sln montre comment évaluer un modèle en C#.
Vous trouverez des exemples de formation utilisant l’API C# dans CNTKLibraryCSharpTrainingExamples.sln
API Java (expérimental)
L’API Java CNTK prend en charge l’évaluation de modèle dans Java. Cette API est encore expérimentale et peut faire l’objet de modifications. Il est fourni sous la forme d’un fichier jar (cntk.jar) qui peut être inclus dans des projets Java.
Reportez-vous aux instructions Windows et Linux pour savoir comment utiliser l’API Java.
L’exemple Java montre comment évaluer un modèle dans Java.