This is the first production release of the Microsoft Cognitive Toolkit V2. We want to thank everybody who provided valuable feedback and contribution. This release would not have happened without them.
Highlights of this Release
- CNTK backend for Keras
- Extremely fast binary convolution with Halide
- Java API
CNTK backend for Keras
We are happy to bring CNTK as a backend for Keras as a beta release to our fans asking for this feature. While there is still feature and performance work remaining to be done, we appreciate early feedback that would help us bake Keras support. For installation instructions and additional details see this page.
Binary convolution with Halide
This release includes an example that implements training of a binary convolution network (see BinaryConnect by Courbariaux et al.), and a highly optimized native C++ implementation for fast evaluation of binary convolution models. The C++ binary convolution implementation utilizes the Halide framework for making optimal use of multi-threading and vector instructions available on modern CPUs. It runs up to 10x faster than an equivalent convolution network trained and evaluated at 32-bit floating point precision.
CNTK Java API
Starting from CNTK V.2.0 RC 3, a Java API is added to support model evaluation in Java on Windows and Linux. Note that the API is still experimental and subject to change. Feedback from the community is greatly appreciated. See the details at this page.
New additional features
- Random variables can now be used as a part of the graph. The following are now under the
gumbelas well as their corresponding ones with
- New learner: Universal learner uses a CNTK graph as the update mechanism.
- New high-level
test()functions that wrap
Evaluator. For usage examples see Examples/1stSteps and Tutorials/CNTK_200_GuidedTour.ipynb.
test()now also accept data in the form of numpy/scipy arrays (in addition to data reader). Built on the basis of the new class
MinibatchSourceFromDatathat wraps numpy/scipy arrays in a reader.
This release contains the following breaking changes:
- Starting from CNTK V.2.0 RC3,
cntk.ops.sequence.inputhave been deprecated. We have reverted back to using
sequence.input_variable. The difference from the old
input_variablebehavior is that
cntk.ops.input_variableno longer has a dynamic axis by default.
CrossValidationConfighave been renamed to
minibatch_size. Deprecation messages are shown if the old parameters are used.
CNTK NuGet package
A new set of NuGet Packages (version 2.0.0) is provided with this release.