Iteration Plan for July 2017
sayanpa opened this issue ยท 9 comments
This plan captures our work in parts of June and July. This is a 6 week iteration. We will ship end of July. The main focus of this iteration is to improve documentation and fix bugs identified after V2 release. This plan does not include various bug fixes that could happen during the iteration.
Endgame
- July 24: Code freeze for the end game
- July 30: Release date
Planned items
We plan to ship these items at the end of this iteration.
Legend of annotations:
Icon | Description |
---|---|
Item not started | |
Item finished | |
๐ | Work in progress |
โ | Blocked |
๐ช | Stretch |
Documentation
- Manual on how to train using declarative and imperative API for training
- Manual on how to create user minibatch sources
- Manual on how to feed data into CNTK trainers
- Manual on how to debug
- Manual on how to use learners
- Manual on user deserializer
System
- cuDNN 6 integration. CNTK with cuDNN 6 will be 10% faster on networks like ResNet50.
- Universal Windows Platform (UWP) support for CNTK.
Tutorials
-
Reinforcement learning (DQN) using Keras with CNTK API (flappy bird)
Example
- Faster R-CNN object detection (aim to reproduce same accuracy as Caffe implementation)
Contributions
- Reinforcement learning framework for CNTK (core components)
- More flexible user deserializer (Python-based)
- Caffe to CNTK model converter
Operations
- Update ROI pooling to match Caffe implantation. This is a breaking change.
- Reduction over multiple axes
Performance
-
ResNet 50 performance improvement (reduce memcpy and memset during training). Expect single machine training speed to improve by ~8%.
-
Improve CNTK reader by index caching.
-
Verify CNTK can train ResNet50 and Inception V3 with large minibatch size as recent Facebook paper. (CNTK can do minibatch scaling on speech tasks for over 3 years, but we have never tested on vision tasks.)
Keras
- Stateful recurrent network support
- Recurrent layer with mask
- Fix the batch normalization layer issue.
Others
- Publish course Deep Learning Explained on edX.
- CVPR tutorial on Scalable Deep Learning with Microsoft Cognitive Toolkit. The tutorial is scheduled on 7/26/2017, 1:30-5pm.
Ongoing investigation
We started these work items, but we will not ship them in this iteration.
- Investigate new example on image attention model.
- Redesign the learner interface so that user no longer needs to specify per-sample or per-minibatch learning rate and momentum. This will be a breaking change.
- Intel MKL-DNN support for CPU train/evaluation.
- CNTK object-oriented C API. This will lay the foundation for C#/.NET binding for CNTK training.
- CNTK R binding.
Call for contributions
- CNTK Mac build. We need help creating a Mac build for CNTK (CPU-only to begin with).
Thanks for this organized plan. Are there any plans to release a CNTK <---> Caffe converter anytime soon as well ? #389 mentioned some plans to release such a converter and it has been quite some time since then.
We will release a Caffe --> CNTK converter in this iteration. Just added to the iteration plan.
Great. A 2-way converter would be even better. And thanks.
One of the milestones for July End Game is less than 400 open issues :-)
. It is amazing to see how the open issues have been reduced each days from >750 one week ago to almost >550 today. One way to show "best practice" commitment to CNTK community.
=> It would be great to have a graph showing the speed how the open issues have been reduced over last weeks. :-) to show PROGRESS in customer service.
Update: I wrote above 7 days ago. Today left 436 issues. The CNTK team really "WALK" what they "TalK".
10 days ago, >750 issues, Today 226 open issues for CNTK [meet predicted >400 target], versus >750 open issues with Tensoflow ( CNTK 3 x more engaged :-) )
Have any of the following features been added recently to Python API? I think they were missing last time I checked (about 1.5 months ago):
- Access to Evaluator's total sample count seen since the beginning, aggregated across workers (exists in C++, just needs to be exposed in Python)
- Improvements to Evaluator class to match what is already supported in Trainer:
- Aggregating across workers
- Evaluating multiple metrics
- Evaluating metrics that are not scalars, but arbitrary tensors
- Evaluating arbitrary nodes in the network
Sorry, not yet. Looks like these will slip to the next iteration. Thanks!
We have a monthly release cadence for the binaries. You can always build from source anytime. Master branch is always tested and BVTs are run against every checkin
CNTK 2.1 has been released. This iteration plan is now closed.