microsoft / CNTK

Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

Home Page:https://docs.microsoft.com/cognitive-toolkit/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Iteration Plan for July 2017

sayanpa opened this issue · 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

    System

    • cuDNN 6 integration. CNTK with cuDNN 6 will be 10% faster on networks like ResNet50.
    • Universal Windows Platform (UWP) support for CNTK.

    Tutorials

    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!

    Hi

    CTC tutorial is already checked with this tutorial. But following instructions in this tutorial cause exception as mentioned here.

    Is there any plan to release a micro version that stuffs like this are builded? If yes please tell how long does it take. Is it better to wait for it or not?

    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.