Microsoft Cognitive Toolkit CNTK Introduction

Abhijeet P

5 months ago

Microsoft Cognitive Toolkit CNTK Introduction | insideAIML
Table of Contents
  • What is Microsoft Cognitive Toolkit (CNTK)?
  • CNTK’s Features
               1. Built-in components
               2. Usage of resources efficiently
               3. Express our own networks easily
               4. Measuring model performance
  • Version 1.0 vs Version 2.0
  • Important Highlights of Version 2.7
          In this chapter, we will learn what is CNTK, its features, difference between its version 1.0 and 2.0 and important highlights of version 2.7.

What is Microsoft Cognitive Toolkit (CNTK)?

          Microsoft Cognitive Toolkit (CNTK), formerly known as Computational Network Toolkit, is a free, easy-to-use, open-source, commercial-grade toolkit that enables us to train deep learning algorithms to learn like the human brain. It enables us to create some popular deep learning systems like feed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.
For optimal performance, its framework functions are written in C++. Although we can call its function using C++, but the most commonly used approach for the same is to use a Python program.

CNTK’s Features

          Following are some of the features and capabilities offered in the latest version of Microsoft CNTK:

1. Built-in components

  • CNTK has highly optimised built-in components that can handle multi-dimensional dense or sparse data from Python, C++ or BrainScript.
  • We can implement CNN, FNN, RNN, Batch Normalisation and Sequence-to-Sequence with attention.
  • It provides us the functionality to add new user-defined core-components on the GPU from Python.
  • It also provides automatic hyperparameter tuning.
  • We can implement Reinforcement learning, Generative Adversarial Networks (GANs), Supervised as well as Unsupervised learning.
  • For massive datasets, CNTK has built-in optimised readers.

2. Usage of resources efficiently

  • CNTK provides us parallelism with high accuracy on multiple GPUs/machines via 1-bit SGD.
  • To fit the largest models in GPU memory, it provides memory sharing and other built-in methods.

3. Express our own networks easily

  • CNTK has full APIs for defining your own network, learners, readers, training and evaluation from Python, C++, and BrainScript.
  • Using CNTK, we can easily evaluate models with Python, C++, C# or BrainScript.
  • It provides both high-level as well as low-level APIs.
  • Based on our data, it can automatically shape the inference.
  • It has fully optimised symbolic Recurrent Neural Network (RNN) loops.

4. Measuring model performance

  • CNTK provides various components to measure the performance of neural networks you build.
  • Generates log data from your model and the associated optimiser, which we can use to monitor the training process.

Version 1.0 vs Version 2.0

Following table compares CNTK Version 1.0 and 2.0:
Version 1.0 vs Version 2.0 | insideAIML

Important Highlights of Version 2.7

          Version 2.7 is the last main released version of Microsoft Cognitive Toolkit. It has full support for ONNX 1.4.1. Following are some important highlights of this last released version of CNTK.
  • Full support for ONNX 1.4.1.
  • Support for CUDA 10 for both Windows and Linux systems.
  • It supports advance Recurrent Neural Networks (RNN) loop in ONNX export.
  • It can export more than 2GB models in ONNX format.
  • It supports FP16 in BrainScript scripting language’s training action.
  
Enjoyed reading this blog? Then why not share it with others. Help us make this AI community stronger. 
To learn more about such concepts related to Artificial Intelligence, visit our insideAIML blog page.
You can also ask direct queries related to Artificial Intelligence, Deep Learning, Data Science and Machine Learning on our live insideAIML discussion forum.
Keep Learning. Keep Growing. 

Submit Review