Home

Chris Basoglu edited this page Jan 20, 2017 · 83 revisions
Clone this wiki locally

The Microsoft Cognitive Toolkit

The Microsoft Cognitive Toolkit - CNTK - is a unified deep-learning toolkit by Microsoft Research. This video provides a high-level view of the toolkit.

It can be included as a library in your Python or C++ programs, or used as a standalone machine learning tool through its own model describtion language (BrainScript).

CNTK supports 64-bit Linux or 64-bit Windows operating systems. To install you can either choose pre-compiled binary packages, or compile the Toolkit from the source provided in Github.

Here are a few pages to get started:

Note to search the pages of this Wiki, in the search box, type: Language:Markdown yourSearchText

This Wiki is the most up-to-date information about the Microsoft Cognitive Toolkit. For more background refer to the tutorials provided. A general introduction to computational networks and the core algorithms in CNTK, or to cite the work, please refer to the Microsoft Technical Report MSR-TR-2014-112: "An Introduction to Computational Networks and the Computational Network Toolkit". The source of this report is in the Git repository folder.
It is updated less frequently and shouldn't be used the most up-to-date source of information.

What's New

January 2017

2017-01-20. V 2.0 Beta 9 Release
Highlights of this Release:

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

2017-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:

Migrate VS2013 to VS2015: This gives you a fine grained control over where components are installed

Script driven setup: This gives you an mostly automated migration to Visual Studio 2015

December 2016

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

November 2016

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

2016-11-21. V 2.0 Beta 4 Release

  • New ASGD/Hogwild! training using Microsoft’s Parameter Server (Project Multiverso)
  • Distributed Scenarios now supported in CNTK Python API
  • New Memory Compression mode to reduce memory usage on GPU
  • CNTK Docker image with 1bit-SGD support
  • Stability Improvements and bug fixes

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

2016-11-11. V 2.0 Beta 3 Release

  • Integration with NVIDIA NCCL. Works with Linux when building CNTK from sources. See here how to enable
  • The first V.2.0 Prerelease Nuget Package for CNTK Evaluation library
  • Stability Improvements and bug fixes

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

2016-11-03. V 2.0 Beta 2 Release

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

October 2016

2016-10-25. New CNTK Name, new Web Site and V 2.0 Beta 1 Release

CNTK becomes The Microsoft Cognitive Toolkit. See more at our new Web Site.

With the today's Release we start delivering CNTK V2 - a major upgrade of Microsoft Cognitive Toolkit.

Expect a set of Beta Releases in the Coming Weeks.

  • CNTK can now be used as a library with brand new C++ and Python APIs
  • New Python Examples and Tutorials
  • Support of Protocol Buffers serialization
  • Support of Fast R-CNN algorithm
  • New automated installation procedures
  • Improvements in CNTK Evaluation library including support of CNTK APIs

See more in the Release Notes. You will find there links to the materials about the new features.
Get the Release from the CNTK Releases page

September 2016

2016-09-28. V 1.7.1 Binary release

  • Two Breaking Changes related to Layers library default initialization and fsAdagrad gradient-normalization scheme
  • Improvements in BrainScript
  • Enabling of Deterministic Algorithm enforcement
  • Improvements in Model Evaluation including the support of Evaluation for Azure Applications
  • Different Performance improvements
  • Multiple bug fixes

See more in the Release Notes (including the full list of bugs fixed)
Get the Release from the CNTK Releases page

August 2016

2016-08-31. V 1.7 Binary release

  • Improvements in BrainScript (New library of predefined common layer types, Support of cuDNN5 RNN and Common random-initialization types, improved handling of GRUs)
  • Support of NVIDIA cuDNN 5.1
  • Improvements in Readers and Deserializers
  • Additions to Evaluator Library (Eval Client Sample, Strong Name for EvalWrapper)
  • New in Unit Tests (Linux support, Randomization engines)
  • Python API Preview (since V.1.5)
  • Multiple bug fixes

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

2016-08-29. Two new Tutorials are available:
Image recognition (CIFAR-10) and Language understanding (ATIS).

2016-08-10. We have significantly simplified handling of Gated Recurrent Units (GRU). Read more in the corresponding article.

July 2016

2016-07-15. V 1.6 Binary release
CNTK v.1.6 binaries are on the CNTK Releases page

2016-07-12. We have further expanded Licensing options for CNTK 1bit-SGD and related components. See the details at the Wiki page. These new options are an extension of the new CNTK 1bit-SGD License that we have announced on Jun 23, 2016.

2016-07-05. CNTK now supports Deconvolution and Unpooling.

June 2016

2016-06-23. New License Terms for CNTK 1bit-SGD and related components.
Effective immediately the License Terms for CNTK 1bit-SGD and related components have changed. The new Terms provide more flexibility and enable new usage scenarios, especially in commercial environments. Read the new Terms at the standard location. Please note, that while the new Terms are significantly more flexible comparing to the previous ones, they are still more restrictive than the main CNTK License. Consequently everything described in Enabling 1bit-SGD section of the Wiki remains valid.

2016-06-20. A post on Intel MKL and CNTK is published in the Intel IT Peer Network

2016-06-16. V 1.5 Binary release. NuGet Package with CNTK Model Evaluation Libraries.
NuGet Package is added to CNTK v.1.5 binaries. See CNTK Releases page and NuGet Package description.

2016-06-15. CNTK now supports building against a custom Intel® Math Kernel Library (MKL). See setup instructions on how to set this up for your platform.

2016-06-10. See CNTK v.1.5 binary release announcement in the official Microsoft Research Blog

2016-06-08. V 1.5 Binary release
CNTK v.1.5 binaries are on the CNTK Releases page

2016-06-01. An updated version of the network-description language has been made available under the new BrainScript Network Builder, which features full expression parsing, recursive functions, and more.

May 2016

2016-05-19. A 1-hour talk describing CNTK, how to use it, and how it works, has been posted at Presentations.

2016-05-16. An example illustrating Using CNTK with ResNet is added to the codebase. The example contains some pre-trained models that can be used in various applications.

2016-05-16. CNTK Wiki now has FAQ Page

2016-05-05. CNTK now supports BlockMomentum Stochastic Gradient Descent (SGD) algorithm.
See the details in the Multiple GPUs and machines Wiki section

2016-05-03. New transformations are implemented for Image Reader.
See the description in the Image Reader Wiki section

April 2016

2016-04-25. V 1.1 Binary release
CNTK v.1.1 binaries are on the CNTK Releases page

2016-04-12. CNTK is available as Azure Virtual Machines and Docker Containers

2016-04-12. Added support for ND convolution and ND pooling and CPU support for cudnn layout in convolution, pooling and batch normalization nodes.
Read documentation on convolution, pooling and batch normalization nodes.

2016-04-05. CUDA7.5 support for Windows Build: Windows project files have been updated to automatically utilize CUDA 7.5 if present

March 2016

2016-03-24. New Text Reader (CNTKTextFormatReader) is available
Read description here https://github.com/Microsoft/CNTK/wiki/CNTKTextFormat-Reader

February 2016

2016-02-29. Added ZIP files support to the ImageReader
Examples: https://github.com/Microsoft/CNTK/wiki/Image-reader
Updated build steps at https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-your-machine

2016-02-29. Added documentation for the ImageReader https://github.com/Microsoft/CNTK/wiki/Image-reader

2016-02-17. CNTK Contribution Guidelines are published
Check it out here: https://github.com/Microsoft/CNTK/wiki/Contributing-to-CNTK

2016-02-15. The first part of CNTK tutorial is published.
You can find it here: https://github.com/Microsoft/CNTK/wiki/Tutorial

2016-02-10. Binary release
Most up-to-date binaries are on the CNTK Releases page

January 2016

2016-01-26. First binary release after the move to GitHub is published (GPU only).

2016-01-25 13:00 GMT. CNTK new repository in GitHub went public! Together with GitHub repository a new CNTK web site http://www.cntk.ai/ also became available.