Microsoft Cognitive Toolkit (CNTK) - Introduzione

In questo capitolo impareremo cos'è CNTK, le sue caratteristiche, la differenza tra la sua versione 1.0 e 2.0 e importanti punti salienti della versione 2.7.

Che cos'è Microsoft Cognitive Toolkit (CNTK)?

Microsoft Cognitive Toolkit (CNTK), precedentemente noto come Computational Network Toolkit, è un toolkit gratuito, di facile utilizzo, open source e di livello commerciale che ci consente di addestrare algoritmi di deep learning per imparare come il cervello umano. Ci consente di creare alcuni popolari sistemi di deep learning comefeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

Per prestazioni ottimali, le sue funzioni del framework sono scritte in C ++. Sebbene possiamo chiamare la sua funzione usando C ++, ma l'approccio più comunemente usato per lo stesso è usare un programma Python.

Caratteristiche di CNTK

Di seguito sono riportate alcune delle caratteristiche e delle capacità offerte nell'ultima versione di Microsoft CNTK:

Componenti incorporati

  • CNTK dispone di componenti integrati altamente ottimizzati in grado di gestire dati multidimensionali densi o sparsi da Python, C ++ o BrainScript.

  • Possiamo implementare CNN, FNN, RNN, Batch Normalization e Sequence-to-Sequence con attenzione.

  • Ci fornisce la funzionalità per aggiungere nuovi componenti core definiti dall'utente sulla GPU da Python.

  • Fornisce inoltre l'ottimizzazione automatica degli iperparametri.

  • Possiamo implementare l'apprendimento per rinforzo, le reti generative antagoniste (GAN), l'apprendimento supervisionato e non supervisionato.

  • Per enormi set di dati, CNTK dispone di lettori ottimizzati incorporati.

Utilizzo efficiente delle risorse

  • CNTK ci fornisce parallelismo con elevata precisione su più GPU / macchine tramite SGD a 1 bit.

  • Per adattarsi ai modelli più grandi nella memoria della GPU, fornisce la condivisione della memoria e altri metodi integrati.

Esprimi facilmente le nostre reti

  • CNTK dispone di API complete per la definizione della propria rete, studenti, lettori, formazione e valutazione da Python, C ++ e BrainScript.

  • Usando CNTK, possiamo facilmente valutare modelli con Python, C ++, C # o BrainScript.

  • Fornisce API sia di alto livello che di basso livello.

  • Sulla base dei nostri dati, può modellare automaticamente l'inferenza.

  • Dispone di loop simbolici Recurrent Neural Network (RNN) completamente ottimizzati.

Misurazione delle prestazioni del modello

  • CNTK fornisce vari componenti per misurare le prestazioni delle reti neurali create.

  • Genera dati di registro dal tuo modello e dall'ottimizzatore associato, che possiamo utilizzare per monitorare il processo di addestramento.

Versione 1.0 vs Versione 2.0

La tabella seguente confronta CNTK versione 1.0 e 2.0:

Versione 1.0.0 Versione 2.0
È stato rilasciato nel 2016. È una riscrittura significativa della versione 1.0 ed è stata rilasciata a giugno 2017.
Utilizzava un linguaggio di scripting proprietario chiamato BrainScript. Le sue funzioni di framework possono essere chiamate usando C ++, Python. Possiamo facilmente caricare i nostri moduli in C # o Java. BrainScript è supportato anche dalla versione 2.0.
Funziona su entrambi i sistemi Windows e Linux ma non direttamente su Mac OS. Funziona anche su sistemi Windows (Win 8.1, Win 10, Server 2012 R2 e versioni successive) e Linux, ma non direttamente su Mac OS.

Punti salienti importanti della versione 2.7

Version 2.7è l'ultima versione principale rilasciata di Microsoft Cognitive Toolkit. Ha pieno supporto per ONNX 1.4.1. Di seguito sono riportati alcuni importanti punti salienti di quest'ultima versione rilasciata di CNTK.

  • Pieno supporto per ONNX 1.4.1.

  • Supporto per CUDA 10 per sistemi Windows e Linux.

  • Supporta il ciclo avanzato RNN (Recurrent Neural Networks) nell'esportazione ONNX.

  • Può esportare più di 2 GB di modelli in formato ONNX.

  • Supporta FP16 nell'azione di addestramento del linguaggio di scripting BrainScript.