Tutorials

The tutorials provide step-by-step instructions for creating models for specific types of applications.

They explain what each step accomplishes and why, and some include related information to enrich your understanding. Instead of procedures for creating your own model, some of the tutorials provide fully trained models or examples of models that you can use to create your own output.

Examples

These tutorials cover use cases and applications of MXNet, organized by type and by language. To create your own applications, you can customize the commands provided.

Python

Basics

The following tutorials walks throught the basic usage of MXNet, including manipulating arrays, building networks, loading and preprocessing data, etc.

  • CPU/GPU Array Manipulation How to use mxnet.ndarray (similar to numpy array but supports GPU) for tensor computation. Also explains MXNet’s powerful automatic parallelization feature.
  • Neural Network Graphs How to use mxnet.symbol for building neural network graphs. Introduces usage of basic operators (layers) and shows how to build new ones.
  • Training and Inference with Module Train a simple deep neural network with the Module interface. The Module package provides intermediate-level and high-level interface for executing predefined networks.
  • Mixing Array and Graphs (Advanced) Show cases MXNet’s signature support for mixing imperative and symbolic programming. Note that Module already provides a high-level interface by wrapping around these functionalities. So this tutorial is mainly for users who want to build things from scratches for extra flexibility.

IO

  • Data Loading How to write a data iterator to feed your custom data to Module (and other interfaces)
  • Image IO How to prepare, load, and pre-process images for training image classification networks.
  • Record IO (Advanced) How to pack free format data into a single binary file using MXNet’s RecordIO format for easy and efficient IO.
  • Custom Image IO (Advanced) How to use mxnet.image package to easily write high performance and flexible data pipeline. mxnet.image uses MXNet’s dependency engine to bypass python’s slowness so you don’t have to use multiprocessing.

Computer Vision

The following tutorials explain how to develop applications that use machine learning to modify, classify, and segment images and video.

Natural Language Processing

The following tutorials explain how to develop applications that understand, generate, and summarize text-based data.

Speech Recognition

The following tutorials explain how to develop applications that map natural speech to text.

  • Speech LSTM An example of training an LSTM acoustic model on the TIMIT dataset to recognize speech
  • Baidu Warp CTC An advanced example to training an LSTM to recognize speech with Baidu’s implementation of the Connectionist Temporal Classification loss function

Generative Networks

The following tutorial explains how to develop applications that generate content as data sets, such as images, text, music, and more.

Unsupervised Machine Learning

The following tutorials explain how to develop applications for discovering existing structures and relationships in datasets.

  • Matrix Factorization An example using matrix factorization to discover user preferences in the MovieLens dataset
  • Auto Encoders An example using a non-linear deep autoencoder to find low dimensional representations for the MNIST dataset
  • Recommendation Systems An example of using an autoencoder and matrix factorization to make a complete end to end recommendation system

R

Computer Vision

The following tutorials explain how to develop applications that use machine learning to modify, classify, and segment images and video.

Natural Language Processing

The following tutorials explain how to develop applications that understand, generate, and summarize text-based data.

Supervised Machine Learning

Applications that use traditional methods to model classification and regression problems.

Scala