Deep Learning with Microsoft Cognitive Toolkit CNTK


image

Extracting value from large amounts of data {and making human sense of it is one of the primary challenge of data science

 

Introduction to Data Science

1.Find the data

2.Extract and acquire the data

3.Clean and transform the data

4.Understand the relationships in the data
and build a model

5.Mine for additional data

6.Evaluate and refine the model

7.Communicate the results

 

Applied Data Science at Microsoft

image

Cortana {contextual understanding}

Bing {ranking, recommendations}

Windows 10 {Insider telemetry}

Windows Hello {next gen security}

Skype Translator {voice input}

HoloLens {object recognition}

Xbox {gamer matchmaking}

Microsoft Research {innovation}

 

Microsoft Cognitive Toolkit

Speed & scalability {while maintaining accuracy}

Commercial-grade AI {used in Cortana & Bing}

Familiar {use Python on Linux or Windows}

C#, R, Spark, Docker, and other open source coming soon

So What is CNTK

CNTK expresses (nearly) arbitrary neural networks by composing simple building blocks into complex computational networks, supporting relevant network types and applications.

CNTK is production-ready: State-of-the-art accuracy, efficient, and scales to multi-GPU/multi-server.

Lego-like composability allows CNTK to support a wide range of networks, e.g.

  • feed-forward DNN
  • RNN, LSTM, GRU
  • convolution
  • DSSM

sequence-to-sequence

CNTK is ideal for a range of applications including

  1. speech
  2. vision
  3. text
  4. and combinations
  5. Large data sets is the key here; performant

Microsoft’s open-source deep-learning toolkit

image

  • Ease of use: what, not how
  • Fast
  • Flexible
  • First class on Linux and Windows
  • OpenSource

 

Getting Started with CNTK

https://notebooks.azure.com/n/1zbIwzaANic/notebooks/CNTK_101_LogisticRegression.ipynb

1.Configure reader, network, learner

2.Train & evaluate (multi-phase for layer building)

3.Deploy offline from Python

image

Binaries & Tutorials

https://github.com/Microsoft/CNTK/wiki

Deep-learning VM Toolkit https://azure.microsoft.com/en-us/marketplace/partners/microsoft-ads/dsvm-deep-learningtoolkit/

Deep-dive lecture & labs

https://www.youtube.com/watch?v=pl-kbFJ1KzU

Team Q&A

http://stackoverflow.com/questions/tagged/cntk

Escience Whats New in CNTK 2.0 https://esciencegroup.com/2016/11/10/cntk-revisited-a-new-deep-learning-toolkit-release-from-microsoft/ 

CNTK with GPU Example Using Azure NV12 Series Servers with 12 Cores 128GB Ram and 2 x M60 NVIDIA GPU

image

 

Getting Started with Microsoft Cognitive Toolkit  Webinar

Comments (2)

  1. Lee Stott says:

    Great example of CNTK In action. In this case study, we described how we built an object detection model using the CNTK implementation of the Fast-RCNN algorithm. As demonstrated above, the algorithm is generic and can be easily trained on different datasets and various classes of objects.
    We hope that this write-up, as well as the accompanying code, can benefit other developers looking to build their own object detection pipelines. https://www.microsoft.com/reallifecode/2017/04/10/object-detection-using-cntk/

  2. Lee Stott says:

    Microsoft Cognitive Toolkit version 2.0 is now in full release with general availability. Cognitive Toolkit enables enterprise-ready, production-grade AI by allowing users to create, train, and evaluate their own neural networks that can then scale efficiently across multiple GPUs and multiple machines on massive data sets.

    Upgrades include a preview of Keras support natively running on Cognitive Toolkit, Java bindings and Spark support for model evaluation, and model compression to increase the speed to evaluating a trained model on CPUs, along with performance improvements making it the fastest deep learning framework.

    The open-source toolkit can be found on GitHub. Hundreds of new features, performance improvements and fixes have been added since beta was introduced. The performance of Cognitive toolkit was recently independently measured, and on a single GPU it performed best amongst other similar platforms. Source: http://dlbench.comp.hkbu.edu.hk/

    As a part of this general availability release, we are excited to highlight three new features below.

    Keras Support (public preview): The Keras API was designed for users to develop AI applications and is optimized for the user experience. Keras follows best practices for reducing cognitive load: it offers consistent and simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear and actionable feedback upon user error. Keras has opened deep learning to thousands of people with no prior machine learning experience. We are delighted to announce that many thousands of Keras users are now able to benefit from the performance of Cognitive Toolkit without any changes to their existing Keras recipes. Keras support is currently in public preview as we continue to refine this capability.

    Java Bindings and Spark Support: After training a model using either Python or BrainScript, Cognitive Toolkit had always provided many ways to evaluate the model in either Python, BrainScript, or C#. Now with the GA release, users can evaluate Cognitive toolkit models with a new Java API. This makes it ideal for users wishing to integrate deep learning models into their Java based applications or for evaluation at scale on platforms like Spark.

    Model Compression: Evaluating a trained model on lower end CPUs found in mobile products can make real time performance difficult to achieve. This is especially true attempting to evaluate models trained for image learning on real time video coming from a camera. With the Cognitive Toolkit GA, we are including extensions that allow quantized implementations of several FP operations, which are several times faster compared to full precision counterparts. The speedup is great enough to enable evaluating Cognitive Toolkit models much faster on server and low-power embedded devices with little loss of evaluation accuracy.

    Download https://github.com/Microsoft/CNTK

Skip to main content