Microsoft Cognitive Toolkit 简明教程
Microsoft Cognitive Toolkit (CNTK) - Introduction
在本章中,我们将了解什么是 CNTK,它的特点,其 1.0 和 2.0 版本之间的区别,以及 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),以前称为 Computational Network Toolkit,是一个免费、易于使用、开源、商业级别的工具包,使我们能够训练深度学习算法,以像人脑一样学习。它使我们能够创建一些流行的深度学习系统,如 feed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers 。
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.
为了获得最佳性能,其框架功能以 C 语言编写。虽然可以使用 C 调用其功能,但最常用的方法是使用 Python 程序。
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
以下是 Microsoft CNTK 最新版本中提供的一些功能:
Following are some of the features and capabilities offered in the latest version of Microsoft CNTK:
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.
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.
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.
Version 1.0 vs Version 2.0
下表比较了 CNTK V1.0 和 V2.0:
Following table compares CNTK Version 1.0 and 2.0:
Version 1.0 |
Version 2.0 |
It was released in 2016. |
It is a significant rewrite of the 1.0 Version and was released in June 2017. |
It used a proprietary scripting language called BrainScript. |
Its framework functions can be called using C++, Python. We can easily load our modules in C# or Java. BrainScript is also supported by Version 2.0. |
It runs on both Windows and Linux systems but not directly on Mac OS. |
It also runs on both Windows (Win 8.1, Win 10, Server 2012 R2 and later) and Linux systems but not directly on Mac OS. |
Important Highlights of Version 2.7
Version 2.7 是 Microsoft Cognitive Toolkit 的最新主版本。它完全支持 ONNX 1.4.1。以下是这个 CNTK 最新版本的几个重要要点。
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.