Microsoft Research Blog

The Microsoft Research blog provides in-depth views and perspectives from our researchers, scientists and engineers, plus information about noteworthy events and conferences, scholarships, and fellowships designed for academic and scientific communities.

Microsoft improves programming flexibility of its AI toolkit

June 10, 2016 | Posted by Microsoft Research Blog

By Chris Basoglu, Partner Engineering Manager, Microsoft Technology and Research

Earlier this year, Microsoft made its open source Computational Network Toolkit (CNTK), a tool used to speed up advances in artificial intelligence, available on GitHub. Today, with CNTK 1.5, we are adding significant language enhancements, an expanded toolbox of features, and improved readers for text and speech.

One of CNTK’s advantages is its ability to scale efficiently across multiple GPUs and machines. CNTK 1.5 introduces a new parallelism technique known as Block Momentum that takes training scalability to a new level of performance, while still preserving accuracy.

Block Momentum chart

We are also making it easier for developers to program CNTK by updating our network description language, known as BrainScript, with new features.

“Expressing very deep nets, beam decoding, and other complex structures is greatly simplified with BrainScript, which supports infix operators, nested variables and function definitions, recursive function calls, arrays, and even lambdas,” said Frank Seide, principal researcher and one of the architects of CNTK.

Additionally, CNTK 1.5 includes a revamped I/O architecture, including more flexible readers for text and speech, making it easier to input popular formats into the toolkit for deep learning training. This saves users from having to write their own code to parse these formats themselves. We have also included a growing library of standard components, such as Sequence-to-Sequence with Attention and the state-of-the-art Deep Residual Nets for Image Recognition. Features like these expand the toolbox available to CNTK users, giving developers advanced recipes they can use out of the box.

Since CNTK’s initial release on GitHub, we have received an incredible amount of feedback from the community. Many of the improvements in CNTK 1.5 stem directly from community requests and contributions. We will continue working with the community to help advance CNTK, including the addition of more popular programming languages like Python.

The bottom line for developers: With CNTK 1.5, you now have access to efficient and easy-to-use tools to add artificial intelligence capabilities, like speech and image recognition, to your applications.