Microsoft Cognitive Toolkit (CNTK)
C++ Jupyter Notebook Cuda Python Shell PowerShell Other
Latest commit cc7edb6 Jan 19, 2017 Project Philly Integrate sayanpa/cntk102_103 into master
Failed to load latest commit information.
Dependencies/CNTKCustomMKL Windows: switch to Visual Studio 2015 Jan 10, 2017
Documentation Revert some changes back (related to Gaussian and uniform initializer… Nov 22, 2016
Examples Merge branch 'master' into ebarsoum/inception Jan 18, 2017
Scripts Bump version Jan 16, 2017
Source Integrate wilrich/extFunctionUnified into master Jan 19, 2017
Tests CNTK Core: Fix possible Nan accumulation in ElementTimesNode backprop Jan 18, 2017
Tools Replace tab with spaces Jan 13, 2017
Tutorials Updates to CNTK 102 and 103B with CR feedback Jan 18, 2017
bindings Cleanup and test improvement Jan 18, 2017
.clang-format Re-format code using clang-format (plus some post-processing) Jan 18, 2016
.gitattributes Tools/samples.json: initial Jan 3, 2017
.gitignore added test for feature extraction example Jan 11, 2017
.gitmodules Revert "add hyper parameter tuning tool as a sub module to CNTK." Nov 21, 2016
CNTK.Cpp.props Windows: switch to Visual Studio 2015 Jan 10, 2017
CNTK.sln Update Inception V3 to latest version, add more comments and cleanup. Jan 18, 2017 Added to the root directory Feb 17, 2016
CppCntk.vssettings Update CppCntk.vssettings (wolfma) Jan 22, 2016 CNTK custom MKL support Jun 14, 2016
Makefile Introducing training session object Jan 17, 2017 Main ReadMe News, January 16, 2017 Jan 16, 2017
configure Merge remote-tracking branch 'origin/master' into mahilleb/vs2015fi Jan 10, 2017

The CNTK Wiki has all information on CNTK including setup, examples, etc.

Give us feedback through these channels.

Latest news

2016-01-16. V 2.0 Beta 8 Release
Highlights of this Release:

See more in the Release Notes.
Get the Release from the CNTK Releases page.

2017-01-10. CNTK for Windows supports Visual 2015

If you pull or merge the master branch, CNTK will now require Visual Studio 2015 to build on Windows. There are two ways to move your development environment to Visual Studio 2015:

2016-12-22. V 2.0 Beta 7 Release Highlights of this Release:

See more in the Release Notes Get the Release from the CNTK Releases page

2016-12-13. V 2.0 Beta 6 Release Highlights of this Release:

See more in the Release Notes Get the Release from the CNTK Releases page

2016-11-25. V 2.0 Beta 5 Release Highlights of this Release:

  • The Windows binary packages are now created using the NVIDIA CUDA 8 toolkit, see the release notes for details. The CNTK-Linux binary packages are still built with CUDA 7.5. The Linux support for Cuda8 will follow shortly!
  • Performance enhancements for evaluation of bitmap images through the new EvaluateRgbImage function in the managed Eval API.
  • A new version of the CNTK Nuget package is available.
  • Stability Improvements and bug fixes, i.e. decreased memory footprint in CNTK Text Format deserializer.
  • We continue to improve documentation and tutorials on an ongoing basis, in this release we added a Sequence-to-Sequence tutorial.

See more in the Release Notes Get the Release from the CNTK Releases page

See all news.

What is The Microsoft Cognitive Toolkit

The Microsoft Cognitive Toolkit (, is a unified deep-learning toolkit that describes neural networks as a series of computational steps via a directed graph. In this directed graph, leaf nodes represent input values or network parameters, while other nodes represent matrix operations upon their inputs. CNTK allows to easily realize and combine popular model types such as feed-forward DNNs, convolutional nets (CNNs), and recurrent networks (RNNs/LSTMs). It implements stochastic gradient descent (SGD, error backpropagation) learning with automatic differentiation and parallelization across multiple GPUs and servers. CNTK has been available under an open-source license since April 2015. It is our hope that the community will take advantage of CNTK to share ideas more quickly through the exchange of open source working code.

Wiki: Go to the CNTK Wiki for all information on CNTK including setup, examples, etc.

License: See in the root of this repository for the full license information.

Tutorial: Microsoft Computational Network Toolkit (CNTK) @ NIPS 2015 Workshops



The figure below compares processing speed (frames processed per second) of CNTK to that of four other well-known toolkits. The configuration uses a fully connected 4-layer neural network (see our benchmark scripts) and an effective mini batch size (8192). All results were obtained on the same hardware with the respective latest public software versions as of Dec 3, 2015.

Performance chart


If you used this toolkit or part of it to do your research, please cite the work as:

Amit Agarwal, Eldar Akchurin, Chris Basoglu, Guoguo Chen, Scott Cyphers, Jasha Droppo, Adam Eversole, Brian Guenter, Mark Hillebrand, T. Ryan Hoens, Xuedong Huang, Zhiheng Huang, Vladimir Ivanov, Alexey Kamenev, Philipp Kranen, Oleksii Kuchaiev, Wolfgang Manousek, Avner May, Bhaskar Mitra, Olivier Nano, Gaizka Navarro, Alexey Orlov, Hari Parthasarathi, Baolin Peng, Marko Radmilac, Alexey Reznichenko, Frank Seide, Michael L. Seltzer, Malcolm Slaney, Andreas Stolcke, Huaming Wang, Yongqiang Wang, Kaisheng Yao, Dong Yu, Yu Zhang, Geoffrey Zweig (in alphabetical order), "An Introduction to Computational Networks and the Computational Network Toolkit", Microsoft Technical Report MSR-TR-2014-112, 2014.


CNTK is in active use at Microsoft and constantly evolving. There will be bugs.

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.