Review: Microsoft takes on TensorFlow

Microsoft Cognitive Toolkit is fast and easy to use, but a little wet behind the ears

Become An Insider

Sign up now and get FREE access to hundreds of Insider articles, guides, reviews, interviews, blogs, and other premium content. Learn more.
At a Glance

Like Google, Microsoft has been differentiating its products by adding machine learning features. In the case of Cortana, those features are speech recognition and language parsing. In the case of Bing, speech recognition and language parsing are joined by image recognition. Google’s underlying machine learning technology is TensorFlow. Microsoft’s is the Cognitive Toolkit. 

Both TensorFlow and Cognitive Toolkit have been released to open source. Both are complex frameworks that implement many neural network and deep learning algorithms. Both present challenges to developers new to the area. Cognitive Toolkit has recently become easier to install and deploy than it was, thanks to an automatic installation script. Cognitive Toolkit may be a little easier to use than TensorFlow right now, but that is balanced by TensorFlow’s wider applicability.

The Microsoft Cognitive Toolkit (formerly known as CNTK, the Computational Network Toolkit) is a unified deep learning toolkit that describes neural networks as a series of computational steps via a directed graph. The new version, CNTK v.2.0 Beta 1, can now be used as a library with new C++ and Python APIs. It retains its use of BrainScript as its own language for configuring models. The CNTK core libraries are written in C++.

The Python API in particular helps bring the Cognitive Toolkit to mainstream Python-writing, deep learning researchers. The API contains abstractions for model definition and compute, learning algorithms, data reading, and distributed training. As a supplement to the Python API, CNTK 2 has new Python examples and tutorials, along with support of Google protocol buffers serialization. The tutorials are implemented as Jupyter notebooks.

CNTK 2 supports the Fast R-CNN algorithm, an object-detection algorithm proposed by Ross Girshick in 2015. Fast R-CNN builds on deep convolutional networks and adds a region of interest pooling scheme that allows it to reuse the computations from the convolutional layers.

CNTK 2 sports improvements in the CNTK evaluation library, including the use of the CNTK APIs, as well as support for multiple threads and evaluation on a GPU device. The evaluation library is used after training is complete.

To continue reading this article register now