eric-haibin-lin closed pull request #9535: Tutorials index page update
URL: https://github.com/apache/incubator-mxnet/pull/9535
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/docs/_static/js/sidebar.js b/docs/_static/js/sidebar.js
index 31e1450154..1c27b7e000 100644
--- a/docs/_static/js/sidebar.js
+++ b/docs/_static/js/sidebar.js
@@ -17,7 +17,7 @@ function render_left_helper(toc) {
$('.leftsidebar > .sphinxsidebarwrapper').append(lefttoc);
addToggle('.leftsidebar');
-
+
$('.leftsidebar li a').click(function () {
$('.leftsidebar li a').css('color', '#337ab7');
$(this).css('color', 'black');
@@ -77,18 +77,18 @@ function render_lefttoc() {
/*Render contents inside page*/
function render_righttoc() {
var url = window.location.href, indexTrailing = 'index.html';
-
+
var rightTocTitle = "Page Contents";
$("div.rightsidebar > div.sphinxsidebarwrapper > h3").children().remove();
$("div.rightsidebar > div.sphinxsidebarwrapper > h3").html(rightTocTitle);
-
+
addToggle('.rightsidebar');
-
+
$('.rightsidebar li a').click(function () {
$('.rightsidebar li a').css('color', '#337ab7');
$(this).css('color', 'black');
});
-
+
if (url.indexOf(indexTrailing) != -1 || isAPI) {
$('.rightsidebar').hide();
}
@@ -175,7 +175,7 @@ function keepExpand() {
break;
}
}
-
+
//Merge right toc into left toc for API pages since they are quite long
if (isAPI) {
var rootEntry = currentEntry;
@@ -234,6 +234,10 @@ $(document).ready(function () {
$('div.sphinxsidebar').hide();
$('.content').css('width', '100%');
}
+ if (url.indexOf('/tutorials/index.html') != -1) {
+ $('div.sphinxsidebar').hide();
+ $('.content').css('width', '100%');
+ }
if (showRightToc) {
$(window).scroll(function () {
scroll_righttoc();
@@ -251,4 +255,4 @@ $(document).ready(function () {
if ($('div.sphinxsidebar').css('visibility') == 'hidden')
$('.content').css('width', '100%');
return;
}
-});
\ No newline at end of file
+});
diff --git a/docs/_static/mxnet-theme/index.html
b/docs/_static/mxnet-theme/index.html
index f3f98f7bdc..9dfb7d6268 100644
--- a/docs/_static/mxnet-theme/index.html
+++ b/docs/_static/mxnet-theme/index.html
@@ -17,27 +17,26 @@
</div>
</div>
</div>
-
<div class="section-tout">
<div class="container">
<div class="row">
<div class="col-lg-4 col-sm-12">
- <h3>Apache MXNet 1.0 Released</h3>
- <p>We're excited to announce the release of MXNet 1.0! Check out the
release notes for latest updates.</p>
- <a
href="https://github.com/apache/incubator-mxnet/releases/tag/1.0.0">Learn
More</a>
+ <h3>Apache MXNet 1.0.1 Released</h3>
+ <p>We're excited to announce the release of MXNet 1.0.1! Check out the
release notes for latest updates.</p>
+ <a
href="https://github.com/apache/incubator-mxnet/releases/tag/1.0.1">Learn
More</a>
</div>
<div class="col-lg-4 col-sm-12">
- <h3>Introducing - Gluon</h3>
- <p>We?re happy to introduce a new elegant, easy to use, imperative
interface for MXNet.
+ <h3>MXNet Model Server</h3>
+ <p>Apache MXNet Model Server (MMS) is a flexible and easy to use tool
for serving deep learning models exported from MXNet or the Open Neural Network
Exchange (ONNX).
</p>
- <a href="http://gluon.mxnet.io">Learn More</a>
+ <a
href="https://github.com/awslabs/mxnet-model-server/blob/master/README.md">Learn
More</a>
</div>
<div class="col-lg-4 col-sm-12">
- <h3>MXNet Joining Apache</h3>
- <p>We?re excited to announce that MXNet has been accepted to the
Apache Incubator.
- </p>
- <a href="http://incubator.apache.org/projects/mxnet.html">Learn
More</a>
- </div>
+ <h3>Introducing - Gluon</h3>
+ <p>We?re happy to introduce a new elegant, easy to use, imperative
interface for MXNet.
+ </p>
+ <a href="http://gluon.mxnet.io">Learn More</a>
+ </div>
</div>
</div>
</div>
diff --git a/docs/_static/mxnet-theme/layout.html
b/docs/_static/mxnet-theme/layout.html
index 08e305c02f..653f5d7916 100644
--- a/docs/_static/mxnet-theme/layout.html
+++ b/docs/_static/mxnet-theme/layout.html
@@ -148,7 +148,7 @@
<link rel="icon" type="image/png"
href="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-icon.png">
</head>
- <body role="document"
background="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-background.png">
+ <body role="document"
background="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-background-compressed.jpeg">
<div class='content-block'>
{%- include "navbar.html" %}
diff --git a/docs/_static/mxnet-theme/navbar.html
b/docs/_static/mxnet-theme/navbar.html
index e5619f17fc..bcf87f1ca7 100644
--- a/docs/_static/mxnet-theme/navbar.html
+++ b/docs/_static/mxnet-theme/navbar.html
@@ -6,7 +6,6 @@ <h1 id="logo-wrap">
</h1>
<nav id="main-nav" class='nav-bar'>
<a class="main-nav-link"
href="{{url_root}}install/index.html">Install</a>
- <a class="main-nav-link"
href="{{url_root}}tutorials/index.html">Tutorials</a>
<span id="dropdown-menu-position-anchor">
<a href="#" class="main-nav-link dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="true">Gluon <span class="caret"></span></a>
@@ -16,7 +15,7 @@ <h1 id="logo-wrap">
</ul>
</span>
- <span id="dropdown-menu-position-anchor">
+ <span id="dropdown-menu-position-anchor">
<a href="#" class="main-nav-link dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="true">API <span class="caret"></span></a>
<ul id="package-dropdown-menu" class="dropdown-menu navbar-menu">
<li><a class="main-nav-link"
href="{{url_root}}api/python/index.html">Python</a></li>
@@ -27,10 +26,11 @@ <h1 id="logo-wrap">
<li><a class="main-nav-link"
href="{{url_root}}api/perl/index.html">Perl</a></li>
</ul>
</span>
-
+
<span id="dropdown-menu-position-anchor-docs">
<a href="#" class="main-nav-link dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="true">Docs <span class="caret"></span></a>
<ul id="package-dropdown-menu-docs" class="dropdown-menu
navbar-menu">
+ <li><a class="main-nav-link"
href="{{url_root}}tutorials/index.html">Tutorials</a>
<li><a class="main-nav-link"
href="{{url_root}}faq/index.html">FAQ</a></li>
<li><a class="main-nav-link"
href="{{url_root}}architecture/index.html">Architecture</a></li>
<li><a class="main-nav-link"
href="https://github.com/apache/incubator-mxnet/tree/master/example">Examples</a></li>
@@ -47,9 +47,9 @@ <h1 id="logo-wrap">
<li><a class="main-nav-link"
href="{{url_root}}community/index.html">Community</a></li>
<li><a class="main-nav-link"
href="{{url_root}}community/contribute.html">Contribute</a></li>
<li><a class="main-nav-link"
href="{{url_root}}community/powered_by.html">Powered By</a></li>
+ <li><a class="main-nav-link"
href="http://discuss.mxnet.io">Discuss</a></li>
</ul>
</span>
- <a class="main-nav-link" href="http://discuss.mxnet.io">Discuss</a>
</nav>
<script> function getRootPath(){ return "{{url_root}}" } </script>
<div class="burgerIcon dropdown">
diff --git a/docs/_static/mxnet.css b/docs/_static/mxnet.css
index 20db74bbd8..6e116dbb74 100644
--- a/docs/_static/mxnet.css
+++ b/docs/_static/mxnet.css
@@ -654,7 +654,7 @@ li.dropdown-submenu ul.dropdown-menu a {
}
.section-tout .container {
- height: 200px;
+ height: 220px;
}
.section-tout .row {
diff --git a/docs/faq/index.md b/docs/faq/index.md
index 60b75ec8b0..099cd509b1 100644
--- a/docs/faq/index.md
+++ b/docs/faq/index.md
@@ -56,6 +56,8 @@ and full working examples, visit the [tutorials
section](../tutorials/index.md).
* [How do I create new operators in MXNet?](http://mxnet.io/faq/new_op.html)
+* [How do I contribute an example or
tutorial?](https://github.com/apache/incubator-mxnet/tree/master/example#contributing)
+
* [How do I set MXNet's environmental
variables?](http://mxnet.io/faq/env_var.html)
## Questions about Using MXNet
diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md
index d691ecc427..aca091c41c 100644
--- a/docs/tutorials/index.md
+++ b/docs/tutorials/index.md
@@ -1,84 +1,250 @@
# Tutorials
-## Gluon
+MXNet has two primary high-level interfaces for its deep learning engine: the
Gluon API and the Module API. Tutorials for each are provided below.
-Gluon is the high-level interface for MXNet. It is more intuitive and easier
to use than the lower level interface.
-Gluon supports dynamic (define-by-run) graphs with JIT-compilation to achieve
both flexibility and efficiency.
+The difference between the two is an imperative versus symbolic programming
style. Gluon makes it easy to prototype, build, and train deep learning models
without sacrificing training speed by enabling both (1) intuitive imperative
Python code development and (2) faster execution by automatically generating a
symbolic execution graph using the hybridization feature.
-This is a selected subset of Gluon tutorials that explain basic usage of Gluon
and fundamental concepts in deep learning. For a comprehensive tutorial on
Gluon that covers topics from basic statistics and probability theory to
reinforcement learning and recommender systems, please see
[gluon.mxnet.io](http://gluon.mxnet.io).
+`TL;DR:` If you are new to deep learning or MXNet, you should start with the
Gluon tutorials.
-### Basics
+The Gluon and Module tutorials are in Python, but you can also find a variety
of other MXNet tutorials, such as R, Scala, and C++ in the [Other Languages API
Tutorials](#other-mxnet-api-tutorials) section below.
+
+[Example scripts and applications](#example-scripts-and-applications) as well
as [contribution](#contributing-tutorials) info is below.
+
+<script type="text/javascript" src='../_static/js/options.js'></script>
+
+
+## Python API Tutorials
+
+<!-- Gluon vs Module -->
+<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>
+
+
+<!-- Levels -->
+<div class="gluon module">
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default opt
active">Introduction</button>
+ <button type="button" class="btn btn-default opt">Applications</button>
+</div>
+</div>
+
+
+<!-- introduction Topics -->
+<div class="introduction">
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default opt active">Basics</button>
+ <button type="button" class="btn btn-default opt">Neural Networks</button>
+ <button type="button" class="btn btn-default opt">Advanced</button>
+</div>
+</div>
+
+
+<!-- Intermediate Topics
+<div class="intermediate">
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default opt active">Image
Recognition</button>
+ <button type="button" class="btn btn-default opt">Human Language</button>
+ <button type="button" class="btn btn-default opt">Recommender
Systems</button>
+ <button type="button" class="btn btn-default opt">Customization</button>
+</div>
+</div>
+-->
+
+<!-- Advanced Topics
+<div class="advanced">
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default opt active">Distributed
Training</button>
+ <button type="button" class="btn btn-default opt">Optimization</button>
+ <button type="button" class="btn btn-default opt">Adversarial
Networks</button>
+</div>
+</div>
+-->
+<!-- END - Main Menu -->
+<hr>
+
+<div class="gluon">
+<div class="introduction">
+
+
+<div class="basics">
- [Manipulate data the MXNet way with
ndarray](http://gluon.mxnet.io/chapter01_crashcourse/ndarray.html)
+
- [Automatic differentiation with
autograd](http://gluon.mxnet.io/chapter01_crashcourse/autograd.html)
+
- [Linear regression with
gluon](http://gluon.mxnet.io/chapter02_supervised-learning/linear-regression-gluon.html)
+
- [Serialization - saving, loading and
checkpointing](http://gluon.mxnet.io/chapter03_deep-neural-networks/serialization.html)
-### Neural Networks
+</div>
+
+
+<div class="neural-networks">
- [Multilayer perceptrons in
gluon](http://gluon.mxnet.io/chapter03_deep-neural-networks/mlp-gluon.html)
-- [Convolutional Neural Networks in
gluon](http://gluon.mxnet.io/chapter04_convolutional-neural-networks/cnn-gluon.html)
-- [Recurrent Neural Networks with
gluon](http://gluon.mxnet.io/chapter05_recurrent-neural-networks/rnns-gluon.html)
-### Advanced
+- [Multi-class object detection using CNNs in
gluon](http://gluon.mxnet.io/chapter04_convolutional-neural-networks/cnn-gluon.html)
+
+- [Advanced RNNs with
gluon](http://gluon.mxnet.io/chapter05_recurrent-neural-networks/rnns-gluon.html)
+
+</div>
+
+
+<div class="advanced">
- [Plumbing: A look under the hood of
gluon](http://gluon.mxnet.io/chapter03_deep-neural-networks/plumbing.html)
+
- [Designing a custom layer with
gluon](http://gluon.mxnet.io/chapter03_deep-neural-networks/custom-layer.html)
+
- [Fast, portable neural networks with Gluon
HybridBlocks](http://gluon.mxnet.io/chapter07_distributed-learning/hybridize.html)
+
- [Training on multiple GPUs with
gluon](http://gluon.mxnet.io/chapter07_distributed-learning/multiple-gpus-gluon.html)
-## MXNet
+</div>
+
+</div> <!--end of introduction-->
+
+
+<div class="applications">
+
+- [Creating custom operators with
numpy](http://mxnet.incubator.apache.org/tutorials/gluon/customop.html)
+
+- [Handwritten digit recognition
(MNIST)](http://mxnet.incubator.apache.org/tutorials/gluon/mnist.html)
+
+- [Hybrid network
example](http://mxnet.incubator.apache.org/tutorials/gluon/hybrid.html)
+
+- [Neural network building blocks with
gluon](http://mxnet.incubator.apache.org/tutorials/gluon/gluon.html)
+
+- [Simple autograd
example](http://mxnet.incubator.apache.org/tutorials/gluon/autograd.html)
+
+</div> <!--end of applications-->
+
+</div> <!--end of gluon-->
+
+
+<div class="module">
+
+
+<div class="introduction">
+
+
+<div class="basics">
+
+- [Imperative tensor operations on
CPU/GPU](http://mxnet.incubator.apache.org/tutorials/basic/ndarray.html)
+
+- [NDArray
Indexing](http://mxnet.incubator.apache.org/tutorials/basic/ndarray_indexing.html)
+
+- [Symbol API](http://mxnet.incubator.apache.org/tutorials/basic/symbol.html)
+
+- [Module API](http://mxnet.incubator.apache.org/tutorials/basic/module.html)
+
+- [Iterators - Loading
data](http://mxnet.incubator.apache.org/tutorials/basic/data.html)
+
+</div>
+
+
+<div class="neural-networks">
+
+- [Linear
regression](http://mxnet.incubator.apache.org/tutorials/python/linear-regression.html)
+
+- [MNIST - handwriting
recognition](http://mxnet.incubator.apache.org/tutorials/python/mnist.html)
+
+- [Large scale image
classification](http://mxnet.incubator.apache.org/tutorials/vision/large_scale_classification.html)
+
+<!-- broken #9532
+- [Image
recognition](http://mxnet.incubator.apache.org/tutorials/python/predict_image.html)
+-->
+</div>
+
+
+<div class="advanced">
+
+- [NDArray in Compressed Sparse Row Storage
Format](http://mxnet.incubator.apache.org/tutorials/sparse/csr.html)
+
+- [Sparse Gradient
Updates](http://mxnet.incubator.apache.org/tutorials/sparse/row_sparse.html)
+
+- [Train a Linear Regression Model with Sparse
Symbols](http://mxnet.incubator.apache.org/tutorials/sparse/train.html)
+
+</div>
+
+</div> <!--end of introduction-->
+
+
+<div class="applications">
+
+- [Connectionist Temporal
Classification](http://mxnet.incubator.apache.org/tutorials/speech_recognition/ctc.html)
+
+- [Distributed key-value
store](http://mxnet.incubator.apache.org/tutorials/python/kvstore.html)
+
+- [Fine-tuning a pre-trained ImageNet model with a new
dataset](http://mxnet.incubator.apache.org/faq/finetune.html)
+
+- [Generative Adversarial
Networks](http://mxnet.incubator.apache.org/tutorials/unsupervised_learning/gan.html)
+
+- [Matrix factorization in recommender
systems](http://mxnet.incubator.apache.org/tutorials/python/matrix_factorization.html)
+
+- [Text classification (NLP) on Movie
Reviews](http://mxnet.incubator.apache.org/tutorials/nlp/cnn.html)
+
+</div> <!--end of applications-->
+
+</div> <!--end of module-->
+
+
+<hr>
+
+## Other Languages API Tutorials
+
+
+<div class="btn-group opt-group" role="group">
+ <button type="button" class="btn btn-default opt active">C</button>
+ <button type="button" class="btn btn-default opt">Scala</button>
+ <button type="button" class="btn btn-default opt">R</button>
+</div>
+<hr>
+
+<div class="c">
+
+- [MNIST with the MXNet C++
API](http://mxnet.incubator.apache.org/tutorials/c%2B%2B/basics.html)
+</div> <!--end of c++-->
+
+
+<div class="r">
-These tutorials introduce a few fundamental concepts in deep learning and how
to implement them in _MXNet_. The _Basics_ section contains tutorials on
manipulating arrays, building networks, loading/preprocessing data, etc. The
_Training and Inference_ section talks about implementing Linear Regression,
training a Handwritten digit classifier using MLP and CNN, running inferences
using a pre-trained model, and lastly, efficiently training a large scale image
classifier.
+- [NDArray: Vectorized Tensor Computations on CPUs and GPUs with
R](http://mxnet.incubator.apache.org/tutorials/r/ndarray.html)
+- [Symbol API with
R](http://mxnet.incubator.apache.org/tutorials/r/symbol.html)
+- [Custom
Iterator](http://mxnet.incubator.apache.org/tutorials/r/CustomIterator.html)
+- [Callback
Function](http://mxnet.incubator.apache.org/tutorials/r/CallbackFunction.html)
+- [Five minute neural
network](http://mxnet.incubator.apache.org/tutorials/r/fiveMinutesNeuralNetwork.html)
+- [MNIST with
R](http://mxnet.incubator.apache.org/tutorials/r/mnistCompetition.html)
+- [Classify images via R with a pre-trained
model](http://mxnet.incubator.apache.org/tutorials/r/classifyRealImageWithPretrainedModel.html)
+- [Char RNN Example with
R](http://mxnet.incubator.apache.org/tutorials/r/charRnnModel.html)
+- [Custom loss functions in
R](http://mxnet.incubator.apache.org/tutorials/r/CustomLossFunction.html)
-### Basics
-```eval_rst
-.. toctree::
- :maxdepth: 1
+</div> <!--end of r-->
- basic/ndarray
- basic/ndarray_indexing
- basic/symbol
- basic/module
- basic/data
-```
-### Training and Inference
+<div class="scala">
-```eval_rst
-.. toctree::
- :maxdepth: 1
+- [Setup your MXNet with Scala on
InelliJ](http://mxnet.incubator.apache.org/tutorials/scala/mxnet_scala_on_intellij.html)
+- [MNIST with the Scala
API](http://mxnet.incubator.apache.org/tutorials/scala/mnist.html)
+- [Use Scala to build a Long Short-Term Memory network that generates Barack
Obama's speech
patterns](http://mxnet.incubator.apache.org/tutorials/scala/char_lstm.html)
+</div>
- python/linear-regression
- python/mnist
- python/predict_image
- vision/large_scale_classification
-```
+<hr>
-### Sparse NDArray
-```eval_rst
-.. toctree::
- :maxdepth: 1
+## Example Scripts and Applications
- sparse/csr
- sparse/row_sparse
- sparse/train
-```
+More tutorials and examples are available in the [GitHub
repository](https://github.com/apache/incubator-mxnet/tree/master/example).
-### Advanced Neural networks
-```eval_rst
-.. toctree::
- :maxdepth: 1
+## Learn More About Gluon!
- unsupervised_learning/gan
-```
+Most of the Gluon tutorials are hosted on
[gluon.mxnet.io](http://gluon.mxnet.io), and you may want to follow the
chapters on directly the Gluon site.
-<br>
-More tutorials and examples are available in the GitHub
[repository](https://github.com/dmlc/mxnet/tree/master/example).
## Contributing Tutorials
-Want to contribute an MXNet tutorial? To get started, download the [tutorial
template](https://github.com/dmlc/mxnet/tree/master/example/MXNetTutorialTemplate.ipynb).
+Want to contribute an MXNet tutorial? To get started, [review these
details](https://github.com/apache/incubator-mxnet/tree/master/example#contributing)
on example and tutorial writing.
diff --git a/example/README.md b/example/README.md
index d6bb464183..49484a09e9 100644
--- a/example/README.md
+++ b/example/README.md
@@ -65,7 +65,7 @@ The site expects the format to be markdown, so export your
notebook as a .md via
* [CTC with MXNet](ctc) - a modification of warpctc
* [Deep Embedded Clustering](deep-embedded-clustering) - unsupervised deep
embedding for clustering analysis
* [Dense-Sparse-Dense Training](dsd) - Dense-Sparse-Dense Training for deep
neural networks
-* [Fully Convolutional Networks](fcn) - fully convolutional networks for
semantic segmentation
+* [Fully Convolutional Networks](fcn-xs) - fully convolutional networks for
semantic segmentation
* [Generative Adversarial Networks with R](gan/CGAN_mnist_R) - GAN examples in
R
* [Gluon Examples](gluon) - several examples using the Gluon API
* [Style Transfer](gluon/style_transfer) - a style transfer example using
gluon
@@ -78,7 +78,7 @@ The site expects the format to be markdown, so export your
notebook as a .md via
* [Model Parallelism with LSTM](model-parallel/lstm) - an example showing
how to do model parallelism with a LSTM
* [Model Parallelism with Matrix Factorization](model-parallel/lstm) - a
matrix factorization algorithm for recommendations
* [Module API](module) - examples with the Python Module API
-* [Multi-task Learning] - how to use MXNet for multi-task learning
+* [Multi-task Learning](multi-task) - how to use MXNet for multi-task learning
* [MXNet Adversarial Variational Autoencoder](mxnet_adversarial_vae) -
combines a variational autoencoder with a generative adversarial network
* [Noise-contrastive estimation loss](nce-loss) - used to speedup multi-class
classification
* [Neural Style](neural-style) - use deep learning for style transfer in images
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services