Are Microsoft CNTK models going to be supported in the DNN module anytime soon?

asked 2017-08-13 10:56:36 -0600

xgirones gravatar image

updated 2017-08-15 02:57:59 -0600

Are there plans to support Microsoft Cognitive Toolkit (CNTK) models in the OpenCV DNN module?

edit retag flag offensive close merge delete

Comments

Hi, @xgirones! First of all we need to know that mentioned framework will be interesting for computer vision community. Feel free to do a research: find interesting models trained in CNTK. We'll use it for tests and tutorials.

dkurtaev gravatar imagedkurtaev ( 2017-08-16 01:07:59 -0600 )edit

Thanks for your answer. I have already tried CNTK and I plan to use it in my current project. CNTK is supported by Microsoft and it seems that they are putting a lot of effort on it.

https://docs.microsoft.com/en-us/cognitive-toolkit/

They already provide a separate DLL for model evaluation, but it would be great to evaluate the models using OpenCV. In this way I could train my models using both TensorFlow and CNTK and pick the one that performs better for each specific case.

If you want to take a look at some popular models trained with CNTK you can take a look at the following URL

https://www.microsoft.com/en-us/cognitive-toolkit/features/model-gallery/

xgirones gravatar imagexgirones ( 2017-08-17 04:38:52 -0600 )edit

Hm, may I ask a question? What do you mean by "pick the one that performs better for each specific case"?

dkurtaev gravatar imagedkurtaev ( 2017-08-17 05:26:40 -0600 )edit

I meant the framework that performs better for each specific problem. Apparently, both have similar accuracy, but TensorFlow performs slightly better for conv nets, and CNTK is a lot faster when using LSTM.

https://github.com/szilard/benchm-dl/blob/master/keras_backend.md

xgirones gravatar imagexgirones ( 2017-08-17 05:40:57 -0600 )edit

Am I right that you want to achieve faster training? Because this benchmarks seems to me about it. Let me help you with making a decision. If you train you model in TensorFlow you have to spend more time for training (according to benchmark) but (+1) you may convert it to CNTK format (using their tools), (+2) run it in OpenCV right now. But if you train model in CNTK you have only faster training time. I haven't found CNTK->TF converter and OpenCV is not supports it. So, model trained in CNTK seems to be used inside CNTK. If training time is critical, you'd better you CNTK.

dkurtaev gravatar imagedkurtaev ( 2017-08-17 06:01:54 -0600 )edit

Yes, I want to achieve the fastest training available for LSTM, and CNTK appears to be the best at it. However, I find their model evaluator less convenient (Windows and Linux only, no OpenCL) and I would like to leverage the capabilities of the OpenCV dnn module.

I am sure that many other OpenCV + DNN users share the same needs as me: fastest possible training + portable and efficient model evaluation.

xgirones gravatar imagexgirones ( 2017-08-17 08:54:52 -0600 )edit