Has Microsoft abandoned CNTK?

妖精的绣舞 提交于 2020-05-25 06:37:47


I want to know if CNTK dead? Release notes on GitHub dated 03/31/2019: "Today’s 2.7 release will be the last main release of CNTK." I've spent months developing software using CNTK and now it appears to be a waste of time and money. I've search for an answer on numerous sites and still no answer. stackoverflow is one of the sites recommend by Microsoft.


From KedengMS, one of the maintainers for CNTK. Reposted from github.

Thanks for all the CNTK supporters, and I am privileged to have worked on it, and learned a lot in the process. You can continue to use CNTK for training and inference in the way it currently is, as other Microsoft internal teams that still runs old models even in BrainScript or NDL. Stopping adding new features does not mean CNTK is no longer open source, it just means that going forward, there will be no new GPU support (say, CUDA 11+), and no major new features added. For different user scenarios, I think you may have different choices:

  • Deep learning newcomers: IMO CNTK is still a good entry to understand basics of deep learning, if you found CNTK documents/tutorials/examples useful. Once you learnt the basic, it won't be too hard to switch between frameworks. However, the DL field is changing rapidly and CNTK has already lagged behind in a lot of ways, so if you need more advanced features like dynamic graph, PyTorch would be a better choice.

  • Model maintainers: If you already have CNTK models working, and to maintain it just means training with new data, you can continue to use CNTK the way you currently use it. Actually, teams inside Microsoft are doing this too. If there are serious bugs preventing productivity, they still will be fixed. For inference, you can continue to use CNTK C/C++/Python/C#/Java APIs, or you may export CNTK models in ONNX format, and use ONNX Runtime or ORT as a slimmer and faster inference engine. You'll be surprised to find how much faster it is comparing to CNTK, and how slimmer the setup is (forget about OpenMPI when you just need inference!). ORT currently provides C/C++/Python/C# interfaces.

  • Model builders: If you have CNTK model, and want to use features that are not currently supported in CNTK, please consider switch to other frameworks like TensorFlow/PyTorch/etc. Our team has done lots of data reader work inside PyTorch to ensure teams in Microsoft can switch from CNTK to PyTorch. Besides, we are also in the process of migrating CNTK specific distributed trainer like BMUF to PyTorch. Hopefully you'll find that useful too when migrating your model.

The good thing about open source is that the community can continue to fork/evolve if needed, unlike other Microsoft products that only ship binaries (Win7 I am looking at you).