Samples for getting started with deep learning across TensorFlow, CNTK, Theano and more.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 252fd4d Oct 15, 2018


Simplified Chinese (简体中文)

Traditional Chinese (正體中文)

Samples in Visual Studio solution format are provided for users to get started with deep learning using Microsoft Visual Studio Tools for AI. Each solution has one or more sample projects. Solutions are separated by different deep learning frameworks they use:

  • CNTK (both BrainScript and Python languages)
  • TensorFlow
  • PyTorch
  • Caffe2
  • Keras
  • MXNet
  • Chainer
  • Theano


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Getting Started

Prerequisites to run the samples

Preparing development environment

Before training deep learning models on your local or remote computer, please make sure you have the deep learning software installed. This includes the latest drivers and libraries for your NVIDIA GPU (if you have one). You also need to install Python and libraries such as NumPy, SciPy, Python support for Visual Studio, and frameworks such as Microsoft Cognitive Toolkit (CNTK), TensorFlow, Caffe2, MXNet, Keras, Theano, PyTorch and/or Chainer.

Please visit here for detailed instruction.

Using a one-click installer to setup deep learning frameworks

Currently, this installer works on Windows, macOS and Linux:

  • Install latest NVIDIA GPU driver, CUDA 9.0, and cuDNN 7.0 if applicable.
  • Install latest Python 3.5 or 3.6. Other Python versions are not supported.
  • Run the following commands in a terminal:


    • If your Python distribution is installed in the system directory (e.g. the one shipped with Visual Studio 2017, or the built-in one on Linux), administrative permission (e.g. "sudo" on Linux) is required to launch the installer.
    • Pass "--user" argument, if you want to install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows.
    • The installer will detect whether NVIDIA GPU cards are available and set up software for CUDA 9.0 by default. You can pass "--cuda80" argument to force installing software for CUDA 8.0 .
  • Windows
    git clone
    cd samples-for-ai
    cd installer
  • Linux and macOS
    git clone
    cd samples-for-ai
    cd installer

Runing samples locally

  • CNTK BrainScript Projects

    • Set the project you want to run as "Startup Project".
    • Set the script you want to run as "Startup File".
    • Click "Run CNTK Brain Script".
  • Python Projects

    • Set the "Startup File".
    • Right click the startup Python script, and click "Start without Debugging" or "Start with Debugging" context menus.

Submit samples to Microsoft PAI platform

Microsoft OpenPAI is an open source platform that provides complete AI model training and resource management capabiliies. These samples can submit to OpenPAI cluster. for each project, a json file is provided as an example to show how to configure the submit information. You can just use the example json file or set your specified configuration.

How to submit job to OpenPAI

  • Right-Click project name -> "Submit Job...".
  • In the pop-up dialog window, select your OpenPAI cluster.
  • Write your own configuration or "Import" json file.
    • If you want use example json file as configuration: Click "Import..." button, select one json file
  • Click "Submit".


The samples scripts are from official github of each framework. They are under different licenses.

The scripts of CNTK are under MIT license.

The scripts of Tensorflow samples are under Apache 2.0 license. There are no changes on the original code.

For the scripts of Caffe2, different versions released with different licenses. Currently, the master branch is under Apache 2.0 license. But the version 0.7 and 0.8.1 were released with BSD 2-Clause license. The scripts in our solution are based on caffe2 github source tree version 0.7 and 0.8.1, with BSD 2-Clause license.

The scripts of Keras are under MIT license.

The scripts of Theano are under BSD license.

The scripts of MXNet are under Apache 2.0 license. There are no changes on the original code.

The scripts of Chainer are under MIT license.