CNTK stands for “Computational Network Toolkit”. This toolkit is a creation from the Microsoft Research team, which main focus is to describe neural networks as a series of computational steps via a directed graph (short resume I know)
So, during the past days I spend some hours playing around with the toolkit. First step is probably to read something about or go directly to the Get Started section on GitHub.
Unless you are an expert on C++, you like to compile graphics drivers, you want to learn about OpenCV and more, I strongly recommend to start directly with the local installation and go to the samples section.
Important: The setup on Windows section describes all the necessary steps to clone, build and deploy all in local mode. However, I tried to do this, and basically broke other local projects from my own.
So, at this moment the Samples section can give you some ideas to start learning the toolkit. In the Examples section we can find
- Other/Simple2d, Synthetic 2d data
- Speech/AN4, Speech data (CMU AN4)
- Image/MNIST, Image data (MNIST handwritten digit recognition)
- Text/PennTreebank, Text data (penn treebank)
So, as you can see in the samples, the main focus of CNTK is Speech. And Microsoft has a long story on this, products like Cortana, Skype Translation or Project Oxford Speech APIs are the final result of years of investigation on Speech recognition. (I really need to write some posts about Project Oxford Audio APIs, so far my focus was on video and face detection)
Another important point in the toolkit is the Azure support. Using a combination of CNTK and Azure GPU Lab, the research team created a distributed GPU platform to be used by the community to advance AI research.
As an example, in a TechNet article, they describe a comparison between four other popular computational toolkits and CNTK. (Torch, Theano and Caffe, as just recently open sourced toolkits from Google and IBM). The results are exposed in below chart and, CNTK has proved to be more efficient than the others.
Finally, this is not (by far) my main expertise but is something which I really like and also where I really think, every developer must play around and start to know the basis / technology / platform.
Greetings @ Toronto