évaluation CNTK à l’aide de cntk.exe
Évaluation d’un modèle à l’aide de cntk.exe
L’évaluation d’un modèle à l’aide de l’exécutable CNTK lui-même, c’est-à-dire cntk.exe, est similaire au processus d’entraînement. Mais au lieu d’utiliser la commande « train », la commande « eval » est placée dans le fichier de configuration.
L’utilisation de l’exécutable CNTK pour l’évaluation présente les avantages suivants :
Fonctionnalité processeur/GPU
Comme l’entraînement, CNTK peut tirer parti du GPU pendant l’évaluation. Pour plus d’informations, consultez la page Vue d’ensemble du fichier de configuration .
Lecteurs (et leurs transformations)
Comme pour l’entraînement de modèle, les plug-ins de lecteur (par exemple, ImageReader) peuvent effectuer des transformations de données sur les données d’entrée avant de l’alimenter sur le réseau pendant l’entraînement. Ces transformations ne font pas partie de CNTK (par se), mais des lecteurs. Pour nourrir les mêmes données transformées lors de l’évaluation, les transformations doivent se produire avant l’alimentation. Lors de l’évaluation à l’aide de l’exécutable CNTK, le même lecteur (que celui utilisé lors de l’évaluation) peut être utilisé, et ainsi la même transformation peut être appliquée. Comme nous allons couvrir plus loin dans cette page, lorsque vous utilisez l’approche programmatique, ces transformations doivent être effectuées par programmation en dehors du moteur d’évaluation avant d’envoyer les données pour l’évaluation (en supposant que le modèle a été formé avec des données transformées).
Ajustement du modèle
Lorsque vous utilisez CNTK pour l’évaluation, il est possible de modifier la disposition du modèle à l’aide de BrainScript. Cela permet d’ajouter des fonctionnalités supplémentaires, telles que l’exposition de couches masquées pour l’évaluation. Pour plus d’informations, consultez la page BrainScript.
L’utilisation de l’exécutable CNTK pour l’évaluation présente les inconvénients suivants :
Temps de rotation du processus
L’exécutable CNTK (par nature) s’exécute en tant que processus et prend donc un certain temps pour tourner. Pour les services où de nombreuses demandes doivent être traitées dynamiquement, la meilleure option consisterait à utiliser la bibliothèque d’évaluation dans un service.
Entrée/sortie basées sur un fichier
L’exécutable CNTK lit les données d’entrée à partir de fichiers et écrit les données de sortie dans un fichier. Pour les services exécutés dans le cloud, cela peut entraîner des problèmes de performances.
Remarque : si vous effectuez l’évaluation d’un modèle CNTK avec l’exécutable CNTK, assurez-vous que vos paramètres sont adéquats pour l’évaluation. En particulier, en spécifiant une taille appropriée pour miniBatchSize. Pour plus d’informations, reportez-vous à la page Résoudre les problèmes de CNTK.