Microsoft Cognitive Toolkit (CNTK) - Introduction

Dans ce chapitre, nous allons apprendre ce qu'est CNTK, ses fonctionnalités, la différence entre sa version 1.0 et 2.0 et les points forts importants de la version 2.7.

Qu'est-ce que Microsoft Cognitive Toolkit (CNTK)?

Microsoft Cognitive Toolkit (CNTK), anciennement connue sous le nom de Computational Network Toolkit, est une boîte à outils gratuite, facile à utiliser, open source et de qualité commerciale qui nous permet de former des algorithmes d'apprentissage en profondeur pour apprendre comme le cerveau humain. Cela nous permet de créer des systèmes d'apprentissage en profondeur populaires tels quefeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

Pour des performances optimales, ses fonctions de framework sont écrites en C ++. Bien que nous puissions appeler sa fonction en utilisant C ++, l'approche la plus couramment utilisée pour la même chose est d'utiliser un programme Python.

Caractéristiques de CNTK

Voici quelques-unes des fonctionnalités et capacités offertes dans la dernière version de Microsoft CNTK:

Composants intégrés

  • CNTK a des composants intégrés hautement optimisés qui peuvent gérer des données multidimensionnelles denses ou éparses de Python, C ++ ou BrainScript.

  • Nous pouvons implémenter CNN, FNN, RNN, la normalisation de lots et la séquence à séquence avec attention.

  • Il nous fournit la fonctionnalité pour ajouter de nouveaux composants de base définis par l'utilisateur sur le GPU à partir de Python.

  • Il fournit également un réglage automatique des hyperparamètres.

  • Nous pouvons mettre en œuvre l'apprentissage par renforcement, les réseaux d'adversaires génératifs (GAN), l'apprentissage supervisé et non supervisé.

  • Pour les ensembles de données massifs, CNTK a des lecteurs optimisés intégrés.

Utilisation efficace des ressources

  • CNTK nous fournit un parallélisme de haute précision sur plusieurs GPU / machines via SGD 1 bit.

  • Pour s'adapter aux plus grands modèles de la mémoire GPU, il fournit le partage de mémoire et d'autres méthodes intégrées.

Exprimez facilement nos propres réseaux

  • CNTK dispose d'API complètes pour définir votre propre réseau, les apprenants, les lecteurs, la formation et l'évaluation à partir de Python, C ++ et BrainScript.

  • En utilisant CNTK, nous pouvons facilement évaluer des modèles avec Python, C ++, C # ou BrainScript.

  • Il fournit à la fois des API de haut niveau et de bas niveau.

  • Sur la base de nos données, il peut automatiquement façonner l'inférence.

  • Il a des boucles de réseau neuronal récurrent (RNN) symboliques entièrement optimisées.

Mesurer les performances du modèle

  • CNTK fournit divers composants pour mesurer les performances des réseaux de neurones que vous créez.

  • Génère des données de journal à partir de votre modèle et de l'optimiseur associé, que nous pouvons utiliser pour surveiller le processus de formation.

Version 1.0 par rapport à la version 2.0

Le tableau suivant compare CNTK version 1.0 et 2.0:

Version 1.0 Version 2.0
Il est sorti en 2016. Il s'agit d'une réécriture importante de la version 1.0 et a été publiée en juin 2017.
Il utilisait un langage de script propriétaire appelé BrainScript. Ses fonctions de framework peuvent être appelées en utilisant C ++, Python. Nous pouvons facilement charger nos modules en C # ou Java. BrainScript est également pris en charge par la version 2.0.
Il fonctionne à la fois sur les systèmes Windows et Linux mais pas directement sur Mac OS. Il fonctionne également sur les systèmes Windows (Win 8.1, Win 10, Server 2012 R2 et versions ultérieures) et Linux, mais pas directement sur Mac OS.

Points forts importants de la version 2.7

Version 2.7est la dernière version principale publiée de Microsoft Cognitive Toolkit. Il a un support complet pour ONNX 1.4.1. Voici quelques faits saillants importants de cette dernière version publiée de CNTK.

  • Prise en charge complète d'ONNX 1.4.1.

  • Prise en charge de CUDA 10 pour les systèmes Windows et Linux.

  • Il prend en charge la boucle avancée de réseaux de neurones récurrents (RNN) dans l'exportation ONNX.

  • Il peut exporter plus de modèles de 2 Go au format ONNX.

  • Il prend en charge FP16 dans l'action de formation du langage de script BrainScript.