CNTK is the Microsoft Cognitive Toolkit. CNTK is a collection of software that can do classification prediction using regular feed-forward neural networks, deep neural networks, and convolutional neural networks.
The tool itself is very complex. A few months ago, I took a first look at CNTK v1.6. I noticed that a beta of v2.0 had been released on GitHub so I thought I’d revisit CNTK to see what was new.
The first thing I noticed was that the documentation for CNTK is very weak. The organization is bad, much published information is out of date, and a lot of important information doesn’t exist. I suspect the CNTK team is just releasing too fast, without taking into account the fact that potential end users will be utterly frustrated by inconsistent and out-of-date information.
Another thing that irks me is the name of CNTK itself. CNTK originally stood for “Computational Network Toolkit”. OK, but “toolkit” is one word so why wasn’t the acronym “CNT”? And what possible advantage is there to changing the name to Microsoft Cognitive Toolkit? And why is the acronym for Microsoft Cognitive Toolkit still CNTK? Why not MCT?
Now naming isn’t all that important, but it suggests a lack of attention to detail by the CNTK team (or perhaps that the team is just over-extended).
The CNTK installation instructions were pretty awful. I had to follow link, after link, after link, and I never really did find clear instructions. How hard could it be to create a simple end-to-end install and run-a-demo Quick Start? In the end I just downloaded a zip file and extracted it. On my first attempt to run a CNTK script, I got a “msmpi.dll is missing from your computer” error in a popup window. After a bit a googling I found an installation page for that dependency and was able to get an example running.
CNTK has great potential, but the documentation needs lots of work. I’ve talked to quite a few of my colleagues who attempted to use CNTK but gave up because of the lack of clear documentation. When the CNTK people get their documentation act together, I suspect CNTK could become my neural network tool of choice.