Kit de herramientas cognitivas de Microsoft (CNTK) - Introducción

En este capítulo, aprenderemos qué es CNTK, sus características, la diferencia entre su versión 1.0 y 2.0 y aspectos destacados importantes de la versión 2.7.

¿Qué es Microsoft Cognitive Toolkit (CNTK)?

Microsoft Cognitive Toolkit (CNTK), anteriormente conocido como Computational Network Toolkit, es un juego de herramientas gratuito, fácil de usar, de código abierto y de calidad comercial que nos permite entrenar algoritmos de aprendizaje profundo para aprender como el cerebro humano. Nos permite crear algunos sistemas populares de aprendizaje profundo comofeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

Para un rendimiento óptimo, sus funciones de marco están escritas en C ++. Aunque podemos llamar a su función usando C ++, pero el enfoque más comúnmente usado para el mismo es usar un programa Python.

Características de CNTK

A continuación, se muestran algunas de las características y capacidades que se ofrecen en la última versión de Microsoft CNTK:

Componentes integrados

  • CNTK tiene componentes integrados altamente optimizados que pueden manejar datos multidimensionales densos o escasos de Python, C ++ o BrainScript.

  • Podemos implementar CNN, FNN, RNN, Batch Normalization y Sequence-to-Sequence con atención.

  • Nos proporciona la funcionalidad para agregar nuevos componentes centrales definidos por el usuario en la GPU de Python.

  • También proporciona ajuste automático de hiperparámetros.

  • Podemos implementar el aprendizaje por refuerzo, las redes generativas adversarias (GAN), el aprendizaje supervisado y no supervisado.

  • Para conjuntos de datos masivos, CNTK tiene lectores optimizados integrados.

Uso de recursos de manera eficiente

  • CNTK nos proporciona un paralelismo con alta precisión en múltiples GPU / máquinas a través de SGD de 1 bit.

  • Para adaptarse a los modelos más grandes en memoria de GPU, proporciona uso compartido de memoria y otros métodos integrados.

Expresar nuestras propias redes fácilmente

  • CNTK tiene API completas para definir su propia red, alumnos, lectores, capacitación y evaluación de Python, C ++ y BrainScript.

  • Usando CNTK, podemos evaluar fácilmente modelos con Python, C ++, C # o BrainScript.

  • Proporciona API tanto de alto nivel como de bajo nivel.

  • Según nuestros datos, puede dar forma automáticamente a la inferencia.

  • Tiene bucles simbólicos de red neuronal recurrente (RNN) completamente optimizados.

Medir el rendimiento del modelo

  • CNTK proporciona varios componentes para medir el rendimiento de las redes neuronales que crea.

  • Genera datos de registro de su modelo y el optimizador asociado, que podemos usar para monitorear el proceso de entrenamiento.

Versión 1.0 vs Versión 2.0

La siguiente tabla compara las versiones 1.0 y 2.0 de CNTK:

Versión 1.0 Versión 2.0
Fue lanzado en 2016. Es una reescritura significativa de la versión 1.0 y se lanzó en junio de 2017.
Utilizaba un lenguaje de programación patentado llamado BrainScript. Sus funciones de marco se pueden llamar usando C ++, Python. Podemos cargar fácilmente nuestros módulos en C # o Java. BrainScript también es compatible con la versión 2.0.
Se ejecuta en sistemas Windows y Linux, pero no directamente en Mac OS. También se ejecuta en sistemas Windows (Win 8.1, Win 10, Server 2012 R2 y posteriores) y Linux, pero no directamente en Mac OS.

Aspectos destacados importantes de la versión 2.7

Version 2.7es la última versión principal lanzada de Microsoft Cognitive Toolkit. Tiene soporte completo para ONNX 1.4.1. A continuación se presentan algunos aspectos destacados importantes de esta última versión lanzada de CNTK.

  • Soporte completo para ONNX 1.4.1.

  • Soporte para CUDA 10 para sistemas Windows y Linux.

  • Es compatible con el bucle avanzado de redes neuronales recurrentes (RNN) en la exportación ONNX.

  • Puede exportar modelos de más de 2GB en formato ONNX.

  • Es compatible con FP16 en la acción de entrenamiento del lenguaje de scripting BrainScript.