blob: 01c59b16def733db243e10a93b1528ed90318a32 [file] [log] [blame] [view]
<!--- Licensed to the Apache Software Foundation (ASF) under one -->
<!--- or more contributor license agreements. See the NOTICE file -->
<!--- distributed with this work for additional information -->
<!--- regarding copyright ownership. The ASF licenses this file -->
<!--- to you under the Apache License, Version 2.0 (the -->
<!--- "License"); you may not use this file except in compliance -->
<!--- with the License. You may obtain a copy of the License at -->
<!--- http://www.apache.org/licenses/LICENSE-2.0 -->
<!--- Unless required by applicable law or agreed to in writing, -->
<!--- software distributed under the License is distributed on an -->
<!--- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -->
<!--- KIND, either express or implied. See the License for the -->
<!--- specific language governing permissions and limitations -->
<!--- under the License. -->
# Tutorials
```eval_rst
.. toctree::
:hidden:
basic/index.md
c++/index.md
control_flow/index.md
embedded/index.md
gluon/index.md
java/index.md
mkldnn/index.md
nlp/index.md
onnx/index.md
python/index.md
r/index.md
scala/index.md
sparse/index.md
speech_recognition/index.md
tensorrt/index.md
unsupervised_learning/index.md
vision/index.md
```
MXNet tutorials can be found in this section. A variety of language bindings are available for MXNet (including Python, Scala, Java, Clojure, C++ and R) and we have a different tutorial section for each language.
Are you new to MXNet, and don't have a preference on language? We currently recommend starting with Python, and specifically the Gluon APIs (versus Module APIs) as they're more flexible and easier to debug.
Another great resource for learning MXNet is our [examples section](https://github.com/apache/incubator-mxnet/tree/master/example) which includes a wide variety of models (from basic to state-of-the-art) for a wide variety of tasks including: object detection, style transfer, reinforcement learning, and many others.
**Contents:**
* [Python Tutorials](#python-tutorials)
* [Scala Tutorials](#scala-tutorials)
* [Java Tutorials](#java-tutorials)
* [Clojure Tutorials](#clojure-tutorials)
* [C++ Tutorials](#c---tutorials)
* [R Tutorials](#r-tutorials)
* [Perl Tutorials](#perl-tutorials)
* [Contributing Tutorials](#contributing-tutorials)
<hr>
## Python Tutorials
We have two types of API available for Python: Gluon APIs and Module APIs. [See here](/api/python/gluon/gluon.html) for a comparison.
A comprehensive introduction to Gluon can be found at [Dive into Deep Learning](http://www.d2l.ai/). Structured like a book, it build up from first principles of deep learning and take a theoretical walkthrough of progressively more complex models using the Gluon API. Also check out the [60-Minute Gluon Crash Course](http://gluon-crash-course.mxnet.io/) if you're short on time or have used other deep learning frameworks before.
Use the tutorial selector below to filter to the relevant tutorials. You might see a download link in the top right corner of some tutorials. Use this to download a Jupyter Notebook version of the tutorial, and re-run and adjust the code as you wish.
<script type="text/javascript" src='../_static/js/options.js'></script>
<!-- Gluon vs Module -->
Select API:&nbsp;
<div class="btn-group opt-group" role="group">
<button type="button" class="btn btn-default opt active" style="font-size:22px">Gluon</button>
<button type="button" class="btn btn-default opt" style="font-size:22px">Module</button>
</div>
<!-- END - Main Menu -->
<br>
<div class="gluon">
* Getting Started
* [60-Minute Gluon Crash Course](http://gluon-crash-course.mxnet.io/) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [MNIST Handwritten Digit Classification](/tutorials/gluon/mnist.html)
* Models
* [Model Zoo: using pre-trained models](/tutorials/gluon/pretrained_models.html)
* [Linear Regression](http://gluon.mxnet.io/chapter02_supervised-learning/linear-regression-gluon.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [Logistic Regression](/tutorials/gluon/logistic_regression_explained.html)
* [Word-level text generation with RNN, LSTM and GRU](http://gluon.mxnet.io/chapter05_recurrent-neural-networks/rnns-gluon.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [Visual Question Answering](http://gluon.mxnet.io/chapter08_computer-vision/visual-question-answer.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [Image similiarity search with InfoGAN](/tutorials/gluon/info_gan.html)
* Practitioner Guides
* [Gotchas using NumPy](/tutorials/gluon/gotchas_numpy_in_mxnet.html)
* [Multi-GPU training](http://gluon.mxnet.io/chapter07_distributed-learning/multiple-gpus-gluon.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [Checkpointing and Model Serialization (a.k.a. saving and loading)](/tutorials/gluon/save_load_params.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/> ([Alternative](http://gluon.mxnet.io/chapter03_deep-neural-networks/serialization.html))
* [Distributed Training](https://github.com/apache/incubator-mxnet/tree/master/example/distributed_training)
* [Inference using an ONNX model](/tutorials/onnx/inference_on_onnx_model.html)
* [Fine-tuning an ONNX model on Gluon](/tutorials/onnx/fine_tuning_gluon.html)
* [Visualizing Decisions of Convolutional Neural Networks](/tutorials/vision/cnn_visualization.html)
* [Learning Rate Finder](/tutorials/gluon/learning_rate_finder.html)
* [Learning Rate Schedules](/tutorials/gluon/learning_rate_schedules.html)
* [Advanced Learning Rate Schedules](/tutorials/gluon/learning_rate_schedules_advanced.html)
* [Profiling MXNet Models](/tutorials/python/profiler.html)
* [Module to Gluon API](/tutorials/python/module_to_gluon.html)<span style="color:red"> (new!)</span>
* [Gluon end to end from training to inference](/tutorials/gluon/gluon_from_experiment_to_deployment.html)
* API Guides
* Core APIs
* NDArray
* [NDArray API](/tutorials/gluon/ndarray.html) ([Alternative](http://gluon.mxnet.io/chapter01_crashcourse/ndarray.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>)
* [Advanced NDArray API](/tutorials/basic/ndarray.html)
* [Difference between reshape and transpose](/tutorials/basic/reshape_transpose.html)
* [NDArray Indexing](https://mxnet.incubator.apache.org/tutorials/basic/ndarray_indexing.html)
* Sparse NDArray
* [Sparse Gradient Updates (RowSparseNDArray)](/tutorials/sparse/row_sparse.html)
* [Compressed Sparse Row Storage Format (CSRNDArray)](/tutorials/sparse/csr.html)
* [Linear Regression with Sparse Symbols](/tutorials/sparse/train.html)
* Symbol
* [Symbol API](/tutorials/basic/symbol.html) (Caution: written before Gluon existed)
* KVStore
* [Key-Value Store API](/tutorials/python/kvstore.html)
* Gluon APIs
* Blocks and Operators
* [Blocks](/tutorials/gluon/gluon.html) ([Alternative](http://gluon.mxnet.io/chapter03_deep-neural-networks/plumbing.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>)
* [Custom Blocks](/tutorials/gluon/custom_layer.html) ([Alternative](http://gluon.mxnet.io/chapter03_deep-neural-networks/custom-layer.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>)
* [HybridBlocks](/tutorials/gluon/hybrid.html) ([Alternative](http://gluon.mxnet.io/chapter07_distributed-learning/hybridize.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>)
* [Block Naming](/tutorials/gluon/naming.html)
* [Custom Operators](/tutorials/gluon/customop.html)
* [Control Flow operators](/tutorials/control_flow/ControlFlowTutorial.html)<span style="color:red"> (new!)</span>
* Autograd
* [AutoGrad API](/tutorials/gluon/autograd.html)
* [AutoGrad API with chain rule](http://gluon.mxnet.io/chapter01_crashcourse/autograd.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* [AutoGrad API with Python control flow](http://gluon-crash-course.mxnet.io/autograd.html) <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/External_link_font_awesome.svg" alt="External link" height="15px" style="margin: 0px 0px 3px 3px;"/>
* Data
* [Datasets and DataLoaders](/tutorials/gluon/datasets.html)
* [Applying Data Augmentation](/tutorials/gluon/data_augmentation.html)
* [Data Augmentation with Masks (for Object Segmentation)](https://mxnet.incubator.apache.org/tutorials/python/data_augmentation_with_masks.html)
</div> <!--end of gluon-->
<div class="module">
* Getting Started
* [Module API](/tutorials/basic/module.html)
* [MNIST Handwritten Digit Classification](/tutorials/python/mnist.html)
* Models
* [Linear Regression](/tutorials/python/linear-regression.html)
* [Linear Regression with Sparse Symbols](/tutorials/sparse/train.html)
* [MNIST Handwritten Digit Classification](/tutorials/python/mnist.html)
* [Movie Review Classification using Convolutional Networks](/tutorials/nlp/cnn.html)
* [Generative Adversarial Networks (GANs)](/tutorials/unsupervised_learning/gan.html)
* [Speech Recognition with Connectionist Temporal Classification Loss](/tutorials/speech_recognition/ctc.html)
* Practitioner Guides
* [Predicting on new images using a pre-trained ImageNet model](/tutorials/python/predict_image.html)
* [Fine-Tuning a pre-trained ImageNet model with a new dataset](/faq/finetune.html)
* [Large-Scale Multi-Host Multi-GPU Image Classification](/tutorials/vision/large_scale_classification.html)
* [Importing an ONNX model into MXNet](/tutorials/onnx/super_resolution.html)
* [Optimizing Deep Learning Computation Graphs with TensorRT](/tutorials/tensorrt/inference_with_trt.html)
* [How to build and install MXNet with MKL-DNN backend](/tutorials/mkldnn/MKLDNN_README.html)
* API Guides
* Core APIs
* NDArray
* [NDArray API](/tutorials/gluon/ndarray.html)
* [Advanced NDArray API](/tutorials/basic/ndarray.html)
* [NDArray Indexing](/tutorials/basic/ndarray_indexing.html)
* Sparse NDArray
* [Sparse Gradient Updates (RowSparseNDArray)](/tutorials/sparse/row_sparse.html)
* [Compressed Sparse Row Storage Format (CSRNDArray)](/tutorials/sparse/csr.html)
* [Linear Regression with Sparse Symbols](/tutorials/sparse/train.html)
* Symbol
* [Symbol API](/tutorials/basic/symbol.html)
* KVStore
* [Key-Value Store API](/tutorials/python/kvstore.html)
* Module APIs
* [Module API](/tutorials/basic/module.html)
* Data
* [Data Iterators](/tutorials/basic/data.html)
* [Applying Data Augmentation](/tutorials/python/data_augmentation.html)
* [Types of Data Augmentation](/tutorials/python/types_of_data_augmentation.html)
</div> <!--end of module-->
<hr>
## Scala Tutorials
* [MXNet-Scala Tutorials Overview](/tutorials/scala/)
* Getting Started
* [MXNet and JetBrain's IntelliJ](/tutorials/scala/mxnet_scala_on_intellij.html)
* Models
* [MNIST Handwritten Digit Recognition with Fully Connected Network](/tutorials/scala/mnist.html)
* [Barack Obama speech generation with Character-level LSTM](/tutorials/scala/char_lstm.html)
* [MXNet-Scala Examples](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/src/main/scala/org/apache/mxnetexamples)
<hr>
## Java Tutorials
* Getting Started
* [Developer Environment Setup on IntelliJ IDE](/tutorials/java/mxnet_java_on_intellij.html)
* [Multi Object Detection using pre-trained Single Shot Detector (SSD) Model](/tutorials/java/ssd_inference.html)
* [MXNet-Java Examples](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/src/main/java/org/apache/mxnetexamples/javaapi/infer)
<hr>
## Clojure Tutorials
* [How to use the NDArray API to perform vector/matrix/tensor operations](../api/clojure/ndarray.html)
* [Multi-GPU and multi-host distributed training with the KVStore API](../api/clojure/kvstore.html)
* [How to use the Symbol API to assemble neural networks from layers](../api/clojure/symbol.html)
* [How to use the Module API](../api/clojure/module.html) (deprecated)
<hr>
## C++ Tutorials
* Models
* [MNIST Handwritten Digit Recognition with Fully Connected Network](/tutorials/c%2B%2B/basics.html)
* Backends
* [Subgraph API](/tutorials/c%2B%2B/subgraphAPI.html)
* Inference
* [C++ Inference](/tutorials/c%2B%2B/mxnet_cpp_inference_tutorial.html)
<hr>
## R Tutorials
* Getting Started
* [Basic Classification & Regression](/tutorials/r/fiveMinutesNeuralNetwork.html)
* [Using a pre-trained model for Image Classification](/tutorials/r/classifyRealImageWithPretrainedModel.html)
* Models
* [MNIST Handwritten Digit Classification with Convolutional Network](/tutorials/r/mnistCompetition.html)
* [Shakespeare generation with Character-level RNN](/tutorials/r/charRnnModel.html)
* API Guides
* [NDArray API](/tutorials/r/ndarray.html)
* [Symbol API](/tutorials/r/symbol.html)
* [Callbacks](/tutorials/r/CallbackFunction.html)
* [Custom Data Iterators](/tutorials/r/CustomIterator.html)
* [Custom Loss Functions](/tutorials/r/CustomLossFunction.html)
<hr>
## Perl Tutorials
* Getting Started
* [Machine learning in Perl](http://blogs.perl.org/users/sergey_kolychev/2017/02/machine-learning-in-perl.html)
* [Calculator and Robo-Shakespeare](http://blogs.perl.org/users/sergey_kolychev/2017/04/machine-learning-in-perl-part2-a-calculator-handwritten-digits-and-roboshakespeare.html)
* Gluon
* [DCGAN](http://blogs.perl.org/users/sergey_kolychev/2017/10/machine-learning-in-perl-part3-deep-convolutional-generative-adversarial-network.html)
* [Image classification and Style transfer](http://blogs.perl.org/users/sergey_kolychev/2018/07/machine-learning-in-perl-kyuubi-goes-to-a-modelzoo-during-the-starry-night.html)
<hr>
## Contributing Tutorials
We really appreciate contributions, and tutorials are a great way to share your knowledge and help the community. After you have followed [these steps](https://github.com/apache/incubator-mxnet/tree/master/example#contributing), please submit a pull request on Github.
And if you have any feedback on this section please raise an issue on Github.