You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by aa...@apache.org on 2021/04/01 02:50:58 UTC

[incubator-mxnet-site] branch asf-site updated: Publish triggered by CI

This is an automated email from the ASF dual-hosted git repository.

aaronmarkham pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 66f17e25 Publish triggered by CI
66f17e25 is described below

commit 66f17e25f98c355fd01d906de8074abeff62fa43
Author: mxnet-ci <mx...@amazon.com>
AuthorDate: Thu Apr 1 02:50:41 2021 +0000

    Publish triggered by CI
---
 .../_sources/tutorials/deploy/export/onnx.ipynb    |  30 +--
 .../inference/image_classification_jetson.ipynb    |  20 +-
 .../tutorials/deploy/run-on-aws/cloud.ipynb        |   2 +-
 .../docs/_sources/tutorials/extend/customop.ipynb  |  42 ++--
 .../crash-course/0-introduction.ipynb              |   2 +-
 .../getting-started/crash-course/1-nparray.ipynb   |  94 ++++-----
 .../getting-started/crash-course/2-create-nn.ipynb | 130 ++++++------
 .../getting-started/crash-course/3-autograd.ipynb  |  78 +++----
 .../crash-course/4-components.ipynb                |  88 ++++----
 .../getting-started/crash-course/5-datasets.ipynb  |  56 +++---
 .../getting-started/crash-course/6-train-nn.ipynb  |  74 +++----
 .../getting-started/crash-course/7-use-gpus.ipynb  |  42 ++--
 .../gluon_from_experiment_to_deployment.ipynb      |  34 ++--
 .../logistic_regression_explained.ipynb            |  42 ++--
 .../getting-started/to-mxnet/pytorch.ipynb         |  54 ++---
 .../tutorials/packages/autograd/index.ipynb        |  50 ++---
 .../gluon/blocks/activations/activations.ipynb     |  50 ++---
 .../packages/gluon/blocks/custom-layer.ipynb       |  36 ++--
 .../gluon/blocks/custom_layer_beginners.ipynb      |  34 ++--
 .../packages/gluon/blocks/hybridize.ipynb          |  76 +++----
 .../tutorials/packages/gluon/blocks/init.ipynb     |  62 +++---
 .../tutorials/packages/gluon/blocks/naming.ipynb   |  44 ++--
 .../tutorials/packages/gluon/blocks/nn.ipynb       |  34 ++--
 .../packages/gluon/blocks/parameters.ipynb         |  74 +++----
 .../packages/gluon/blocks/save_load_params.ipynb   |  42 ++--
 .../packages/gluon/data/data_augmentation.ipynb    |  60 +++---
 .../tutorials/packages/gluon/data/datasets.ipynb   |  56 +++---
 .../tutorials/packages/gluon/image/info_gan.ipynb  |  74 +++----
 .../tutorials/packages/gluon/image/mnist.ipynb     |  54 ++---
 .../packages/gluon/loss/custom-loss.ipynb          |  38 ++--
 .../packages/gluon/loss/kl_divergence.ipynb        |  32 +--
 .../tutorials/packages/gluon/loss/loss.ipynb       |  78 +++----
 .../packages/gluon/training/fit_api_tutorial.ipynb |  48 ++---
 .../learning_rates/learning_rate_finder.ipynb      |  34 ++--
 .../learning_rates/learning_rate_schedules.ipynb   |  54 ++---
 .../learning_rate_schedules_advanced.ipynb         |  60 +++---
 .../gluon/training/normalization/index.ipynb       |  72 +++----
 .../packages/gluon/training/trainer.ipynb          |  36 ++--
 .../tutorials/packages/kvstore/kvstore.ipynb       |  34 ++--
 .../packages/legacy/ndarray/01-ndarray-intro.ipynb |  54 ++---
 .../legacy/ndarray/02-ndarray-operations.ipynb     |  62 +++---
 .../legacy/ndarray/03-ndarray-contexts.ipynb       |  18 +-
 .../legacy/ndarray/gotchas_numpy_in_mxnet.ipynb    |  14 +-
 .../packages/legacy/ndarray/sparse/csr.ipynb       | 126 ++++++------
 .../legacy/ndarray/sparse/row_sparse.ipynb         | 122 +++++------
 .../legacy/ndarray/sparse/train_gluon.ipynb        | 110 +++++-----
 .../tutorials/packages/np/cheat-sheet.ipynb        | 224 ++++++++++-----------
 .../tutorials/packages/np/np-vs-numpy.ipynb        |  42 ++--
 .../packages/onnx/fine_tuning_gluon.ipynb          | 114 +++++------
 .../packages/onnx/inference_on_onnx_model.ipynb    |  80 ++++----
 .../tutorials/packages/optimizer/index.ipynb       |  62 +++---
 .../tutorials/performance/backend/amp.ipynb        |  52 ++---
 .../performance/backend/mkldnn/mkldnn_readme.ipynb |  90 ++++-----
 .../tutorials/performance/backend/profiler.ipynb   |  50 ++---
 date.txt                                           |   1 -
 feed.xml                                           |   2 +-
 .../_sources/tutorials/deploy/export/onnx.ipynb    |  30 +--
 .../inference/image_classification_jetson.ipynb    |  20 +-
 .../tutorials/deploy/run-on-aws/cloud.ipynb        |   2 +-
 .../docs/_sources/tutorials/extend/customop.ipynb  |  42 ++--
 .../crash-course/0-introduction.ipynb              |   2 +-
 .../getting-started/crash-course/1-nparray.ipynb   |  94 ++++-----
 .../getting-started/crash-course/2-create-nn.ipynb | 130 ++++++------
 .../getting-started/crash-course/3-autograd.ipynb  |  78 +++----
 .../crash-course/4-components.ipynb                |  88 ++++----
 .../getting-started/crash-course/5-datasets.ipynb  |  56 +++---
 .../getting-started/crash-course/6-train-nn.ipynb  |  74 +++----
 .../getting-started/crash-course/7-use-gpus.ipynb  |  42 ++--
 .../gluon_from_experiment_to_deployment.ipynb      |  34 ++--
 .../logistic_regression_explained.ipynb            |  42 ++--
 .../getting-started/to-mxnet/pytorch.ipynb         |  54 ++---
 .../tutorials/packages/autograd/index.ipynb        |  50 ++---
 .../gluon/blocks/activations/activations.ipynb     |  50 ++---
 .../packages/gluon/blocks/custom-layer.ipynb       |  36 ++--
 .../gluon/blocks/custom_layer_beginners.ipynb      |  34 ++--
 .../packages/gluon/blocks/hybridize.ipynb          |  76 +++----
 .../tutorials/packages/gluon/blocks/init.ipynb     |  62 +++---
 .../tutorials/packages/gluon/blocks/naming.ipynb   |  44 ++--
 .../tutorials/packages/gluon/blocks/nn.ipynb       |  34 ++--
 .../packages/gluon/blocks/parameters.ipynb         |  74 +++----
 .../packages/gluon/blocks/save_load_params.ipynb   |  42 ++--
 .../packages/gluon/data/data_augmentation.ipynb    |  60 +++---
 .../tutorials/packages/gluon/data/datasets.ipynb   |  56 +++---
 .../tutorials/packages/gluon/image/info_gan.ipynb  |  74 +++----
 .../tutorials/packages/gluon/image/mnist.ipynb     |  54 ++---
 .../packages/gluon/loss/custom-loss.ipynb          |  38 ++--
 .../packages/gluon/loss/kl_divergence.ipynb        |  32 +--
 .../tutorials/packages/gluon/loss/loss.ipynb       |  78 +++----
 .../packages/gluon/training/fit_api_tutorial.ipynb |  48 ++---
 .../learning_rates/learning_rate_finder.ipynb      |  34 ++--
 .../learning_rates/learning_rate_schedules.ipynb   |  54 ++---
 .../learning_rate_schedules_advanced.ipynb         |  60 +++---
 .../gluon/training/normalization/index.ipynb       |  72 +++----
 .../packages/gluon/training/trainer.ipynb          |  36 ++--
 .../tutorials/packages/kvstore/kvstore.ipynb       |  34 ++--
 .../packages/legacy/ndarray/01-ndarray-intro.ipynb |  54 ++---
 .../legacy/ndarray/02-ndarray-operations.ipynb     |  62 +++---
 .../legacy/ndarray/03-ndarray-contexts.ipynb       |  18 +-
 .../legacy/ndarray/gotchas_numpy_in_mxnet.ipynb    |  14 +-
 .../packages/legacy/ndarray/sparse/csr.ipynb       | 126 ++++++------
 .../legacy/ndarray/sparse/row_sparse.ipynb         | 122 +++++------
 .../legacy/ndarray/sparse/train_gluon.ipynb        | 110 +++++-----
 .../tutorials/packages/np/cheat-sheet.ipynb        | 224 ++++++++++-----------
 .../tutorials/packages/np/np-vs-numpy.ipynb        |  42 ++--
 .../packages/onnx/fine_tuning_gluon.ipynb          | 114 +++++------
 .../packages/onnx/inference_on_onnx_model.ipynb    |  80 ++++----
 .../tutorials/packages/optimizer/index.ipynb       |  62 +++---
 .../tutorials/performance/backend/amp.ipynb        |  52 ++---
 .../performance/backend/mkldnn/mkldnn_readme.ipynb |  90 ++++-----
 .../tutorials/performance/backend/profiler.ipynb   |  50 ++---
 versions/master/feed.xml                           |   2 +-
 111 files changed, 3242 insertions(+), 3243 deletions(-)

diff --git a/api/python/docs/_sources/tutorials/deploy/export/onnx.ipynb b/api/python/docs/_sources/tutorials/deploy/export/onnx.ipynb
index 9e7cc25..4aabce5 100644
--- a/api/python/docs/_sources/tutorials/deploy/export/onnx.ipynb
+++ b/api/python/docs/_sources/tutorials/deploy/export/onnx.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "approved-protein",
+   "id": "acknowledged-workshop",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -44,7 +44,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "royal-trailer",
+   "id": "solid-salad",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -57,7 +57,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "overall-broadcast",
+   "id": "considerable-messaging",
    "metadata": {},
    "source": [
     "## Downloading a model from the MXNet model zoo\n",
@@ -69,7 +69,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "searching-coalition",
+   "id": "passive-australian",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -82,7 +82,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "completed-terror",
+   "id": "underlying-carroll",
    "metadata": {},
    "source": [
     "Now, we have downloaded ResNet-18 symbol, params and synset file on the disk.\n",
@@ -95,7 +95,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "duplicate-height",
+   "id": "latest-living",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -104,7 +104,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "confidential-cleanup",
+   "id": "ancient-marks",
    "metadata": {},
    "source": [
     "Output:"
@@ -112,7 +112,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "detected-startup",
+   "id": "proved-gnome",
    "metadata": {},
    "source": [
     "```text\n",
@@ -147,7 +147,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "convertible-shopper",
+   "id": "appointed-buffalo",
    "metadata": {},
    "source": [
     "`export_model` API can accept the MXNet model in one of the following two ways.\n",
@@ -167,7 +167,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "numerical-address",
+   "id": "played-hygiene",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -184,7 +184,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cardiac-destination",
+   "id": "innocent-diesel",
    "metadata": {},
    "source": [
     "We have defined the input parameters required for the `export_model` API. Now, we are ready to covert the MXNet model into ONNX format."
@@ -193,7 +193,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "revised-arrival",
+   "id": "protective-compression",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -203,7 +203,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cardiac-pencil",
+   "id": "collective-ukraine",
    "metadata": {},
    "source": [
     "This API returns path of the converted model which you can later use to import the model into other frameworks.\n",
@@ -216,7 +216,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "indoor-melissa",
+   "id": "phantom-sight",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -232,7 +232,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "uniform-castle",
+   "id": "legitimate-region",
    "metadata": {},
    "source": [
     "If the converted protobuf format doesn't qualify to ONNX proto specifications, the checker will throw errors, but in this case it successfully passes.\n",
diff --git a/api/python/docs/_sources/tutorials/deploy/inference/image_classification_jetson.ipynb b/api/python/docs/_sources/tutorials/deploy/inference/image_classification_jetson.ipynb
index 9100ba7..8fa9572 100644
--- a/api/python/docs/_sources/tutorials/deploy/inference/image_classification_jetson.ipynb
+++ b/api/python/docs/_sources/tutorials/deploy/inference/image_classification_jetson.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "brutal-edinburgh",
+   "id": "proof-toddler",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -63,7 +63,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continuous-moses",
+   "id": "complex-newark",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -75,7 +75,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "terminal-indian",
+   "id": "twenty-arkansas",
    "metadata": {},
    "source": [
     "Then we download and install MXNet v1.6 wheel with Jetson support"
@@ -83,7 +83,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "natural-belize",
+   "id": "smoking-elizabeth",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -94,7 +94,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cooked-million",
+   "id": "medium-italian",
    "metadata": {},
    "source": [
     "And we are done. You can test the installation now by importing mxnet from python3"
@@ -102,7 +102,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "absent-tractor",
+   "id": "laden-asbestos",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -112,7 +112,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "comic-connecticut",
+   "id": "relevant-october",
    "metadata": {},
    "source": [
     "## Running a pre-trained ResNet-50 model on Jetson\n",
@@ -123,7 +123,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "studied-cattle",
+   "id": "surgical-finding",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -162,7 +162,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "every-racing",
+   "id": "about-canada",
    "metadata": {},
    "source": [
     "After running the above script, you should get the following output showing the five classes that the image most relates to with probability:"
@@ -170,7 +170,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "environmental-swimming",
+   "id": "french-configuration",
    "metadata": {},
    "source": [
     "```bash\n",
diff --git a/api/python/docs/_sources/tutorials/deploy/run-on-aws/cloud.ipynb b/api/python/docs/_sources/tutorials/deploy/run-on-aws/cloud.ipynb
index 509bbdf..4b68b1b 100644
--- a/api/python/docs/_sources/tutorials/deploy/run-on-aws/cloud.ipynb
+++ b/api/python/docs/_sources/tutorials/deploy/run-on-aws/cloud.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "above-saskatchewan",
+   "id": "established-simon",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
diff --git a/api/python/docs/_sources/tutorials/extend/customop.ipynb b/api/python/docs/_sources/tutorials/extend/customop.ipynb
index 0bd126f..39b5f5f 100644
--- a/api/python/docs/_sources/tutorials/extend/customop.ipynb
+++ b/api/python/docs/_sources/tutorials/extend/customop.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "technical-thing",
+   "id": "sporting-ethics",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -35,7 +35,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "threatened-saying",
+   "id": "about-seller",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -47,7 +47,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "recent-facial",
+   "id": "hawaiian-jacket",
    "metadata": {},
    "source": [
     "## Parameter-less operators\n",
@@ -62,7 +62,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "authentic-tonight",
+   "id": "operational-samoa",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -95,7 +95,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "weird-acceptance",
+   "id": "cathedral-birmingham",
    "metadata": {},
    "source": [
     "### Register custom operator\n",
@@ -106,7 +106,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "entire-lighter",
+   "id": "lesser-toilet",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -141,7 +141,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "active-commissioner",
+   "id": "straight-analyst",
    "metadata": {},
    "source": [
     "### Example Usage\n",
@@ -152,7 +152,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "valuable-uncle",
+   "id": "polish-optimization",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -169,7 +169,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "precious-victory",
+   "id": "economic-macedonia",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -181,7 +181,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "invisible-hudson",
+   "id": "powerful-habitat",
    "metadata": {},
    "source": [
     "## Parametrized Operator\n",
@@ -196,7 +196,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "nervous-leadership",
+   "id": "august-proposal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -219,7 +219,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "nonprofit-denver",
+   "id": "serious-accident",
    "metadata": {},
    "source": [
     "### Registration"
@@ -228,7 +228,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "thirty-mistake",
+   "id": "favorite-covering",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -262,7 +262,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "forced-conservative",
+   "id": "narrative-daisy",
    "metadata": {},
    "source": [
     "### Use CustomOp together with Block\n",
@@ -273,7 +273,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "spread-bulletin",
+   "id": "encouraging-tobago",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -290,7 +290,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continuing-recording",
+   "id": "round-donna",
    "metadata": {},
    "source": [
     "### Example usage"
@@ -299,7 +299,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "disturbed-spring",
+   "id": "appointed-action",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -312,7 +312,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "functional-separation",
+   "id": "civil-worcester",
    "metadata": {},
    "source": [
     "## Using custom operators with fork\n",
@@ -322,7 +322,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "classified-thong",
+   "id": "subjective-scientist",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -334,7 +334,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "stopped-carnival",
+   "id": "victorian-black",
    "metadata": {},
    "source": [
     "Correctly handling this will make mxnet depend upon libpython, so the workaround now is to ensure that all custom operations are executed before forking process."
@@ -343,7 +343,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "reserved-associate",
+   "id": "legendary-hospital",
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/0-introduction.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/0-introduction.ipynb
index d4e59a9..b0c6631 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/0-introduction.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/0-introduction.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "competent-chamber",
+   "id": "unusual-adelaide",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/1-nparray.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/1-nparray.ipynb
index 9c03e4c..0baa78d 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/1-nparray.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/1-nparray.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "imported-studio",
+   "id": "bored-hollow",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -39,7 +39,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "focal-trainer",
+   "id": "included-working",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -50,7 +50,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continued-satin",
+   "id": "civilian-saudi",
    "metadata": {},
    "source": [
     "In this step, create a 2D array (also called a matrix). The following code\n",
@@ -61,7 +61,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "intense-cemetery",
+   "id": "seven-flight",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -70,7 +70,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "numerous-national",
+   "id": "north-stack",
    "metadata": {},
    "source": [
     "You can also create a very simple matrix with the same shape (2 rows by 3\n",
@@ -80,7 +80,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "patent-amino",
+   "id": "through-burden",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "protected-compiler",
+   "id": "caring-reserve",
    "metadata": {},
    "source": [
     "Alternatively, you could use the following array creation routine."
@@ -99,7 +99,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sunset-leone",
+   "id": "employed-radiation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -109,7 +109,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sonic-frequency",
+   "id": "alien-benchmark",
    "metadata": {},
    "source": [
     "You can create arrays whose values are sampled randomly. For example, sampling\n",
@@ -120,7 +120,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "spoken-batch",
+   "id": "canadian-moral",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -130,7 +130,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mediterranean-paste",
+   "id": "laughing-distinction",
    "metadata": {},
    "source": [
     "As with NumPy, the dimensions of each ndarray are shown by accessing the\n",
@@ -144,7 +144,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "every-length",
+   "id": "northern-shepherd",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -153,7 +153,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "beautiful-worth",
+   "id": "executed-pantyhose",
    "metadata": {},
    "source": [
     "You could also specifiy the datatype when you create your ndarray."
@@ -162,7 +162,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "rotary-assumption",
+   "id": "sexual-battery",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -172,7 +172,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "stable-scroll",
+   "id": "unlikely-swing",
    "metadata": {},
    "source": [
     "Versus the default of `float32`."
@@ -181,7 +181,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "billion-sculpture",
+   "id": "cutting-botswana",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -191,7 +191,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "least-decade",
+   "id": "matched-exhibition",
    "metadata": {},
    "source": [
     "When we multiply, by default we use the datatype with the most precision."
@@ -200,7 +200,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "economic-walnut",
+   "id": "fiscal-petersburg",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -210,7 +210,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "theoretical-solomon",
+   "id": "surprised-hydrogen",
    "metadata": {},
    "source": [
     "## Performing operations on an array\n",
@@ -223,7 +223,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "pharmaceutical-fellow",
+   "id": "upper-belle",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -232,7 +232,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "anonymous-automation",
+   "id": "liquid-steps",
    "metadata": {},
    "source": [
     "You can perform exponentiation by using the following code example."
@@ -241,7 +241,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "superior-medicare",
+   "id": "divided-rapid",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "developmental-knock",
+   "id": "choice-equipment",
    "metadata": {},
    "source": [
     "You can also find a matrix’s transpose to compute a proper matrix-matrix product\n",
@@ -260,7 +260,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "incoming-attention",
+   "id": "celtic-bracket",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -269,7 +269,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "conservative-needle",
+   "id": "exclusive-magnitude",
    "metadata": {},
    "source": [
     "Alternatively, you could use the matrix multiplication function."
@@ -278,7 +278,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "selected-poland",
+   "id": "demographic-accountability",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -287,7 +287,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "compressed-mason",
+   "id": "naked-ranking",
    "metadata": {},
    "source": [
     "You can leverage built in operators, like summation."
@@ -296,7 +296,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "gross-commission",
+   "id": "contained-laser",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -305,7 +305,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "moderate-clinton",
+   "id": "afraid-literacy",
    "metadata": {},
    "source": [
     "You can also gather a mean value."
@@ -314,7 +314,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "proof-warner",
+   "id": "romance-excerpt",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -323,7 +323,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "formed-cathedral",
+   "id": "outer-impact",
    "metadata": {},
    "source": [
     "You can perform flatten and reshape just like you normally would in NumPy!"
@@ -332,7 +332,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "patient-excellence",
+   "id": "european-highland",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -342,7 +342,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "polish-booking",
+   "id": "funny-greece",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -351,7 +351,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "greek-holiday",
+   "id": "injured-filling",
    "metadata": {},
    "source": [
     "## Indexing an array\n",
@@ -364,7 +364,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "based-deputy",
+   "id": "framed-wayne",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -373,7 +373,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sunset-inspection",
+   "id": "statewide-cradle",
    "metadata": {},
    "source": [
     "This example shows how to read the second and third columns from `y`."
@@ -382,7 +382,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "meaning-hollywood",
+   "id": "human-skill",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -391,7 +391,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "serious-insight",
+   "id": "emerging-penalty",
    "metadata": {},
    "source": [
     "This example shows how to write to a specific element."
@@ -400,7 +400,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fuzzy-antique",
+   "id": "checked-brown",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -410,7 +410,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "advance-colors",
+   "id": "acute-click",
    "metadata": {},
    "source": [
     "You can perform multi-dimensional slicing, which is shown in the following code\n",
@@ -420,7 +420,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "first-shelf",
+   "id": "floppy-trigger",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -430,7 +430,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "utility-packing",
+   "id": "willing-louisiana",
    "metadata": {},
    "source": [
     "## Converting between MXNet ndarrays and NumPy arrays\n",
@@ -442,7 +442,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "comparable-philippines",
+   "id": "medium-bishop",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -453,7 +453,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "acting-battle",
+   "id": "shaped-sarah",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -463,7 +463,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cloudy-leave",
+   "id": "foreign-western",
    "metadata": {},
    "source": [
     "Additionally, you can move them to different GPU contexts. You will dive more\n",
@@ -473,7 +473,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "abroad-journalism",
+   "id": "terminal-makeup",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -482,7 +482,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mighty-orbit",
+   "id": "reliable-pizza",
    "metadata": {},
    "source": [
     "## Next Steps\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/2-create-nn.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/2-create-nn.ipynb
index 22656d8..bbf55a5 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/2-create-nn.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/2-create-nn.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "arctic-burlington",
+   "id": "surprising-stake",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -40,7 +40,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "human-cardiff",
+   "id": "supported-translator",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -51,7 +51,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "suffering-rachel",
+   "id": "leading-emission",
    "metadata": {},
    "source": [
     "## Create your neural network's first layer\n",
@@ -66,7 +66,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hungarian-torture",
+   "id": "sonic-insulin",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -77,7 +77,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "grand-billy",
+   "id": "burning-charity",
    "metadata": {},
    "source": [
     "In the example above, the output is `Dense(-1 -> 5, linear)`. The **-1** in the\n",
@@ -91,7 +91,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "specialized-heater",
+   "id": "appreciated-round",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -101,7 +101,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "center-discussion",
+   "id": "desperate-alias",
    "metadata": {},
    "source": [
     "In addition to the `in_units` param, you can also add an activation function to\n",
@@ -116,7 +116,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "creative-discrimination",
+   "id": "published-floating",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -125,7 +125,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "settled-diploma",
+   "id": "documented-plastic",
    "metadata": {},
    "source": [
     "Voila! Congratulations on creating a simple neural network. But for most of your\n",
@@ -147,7 +147,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sapphire-fight",
+   "id": "engaging-dollar",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -156,7 +156,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "union-jersey",
+   "id": "gentle-venezuela",
    "metadata": {},
    "source": [
     "Now that you have initialized your network, you can give it data. Passing data\n",
@@ -168,7 +168,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "controversial-attachment",
+   "id": "professional-mother",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -178,7 +178,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "incorrect-parameter",
+   "id": "careful-trinity",
    "metadata": {},
    "source": [
     "The layer produces a `(10,5)` shape output from your `(10,3)` input.\n",
@@ -191,7 +191,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "played-cycle",
+   "id": "supposed-petersburg",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -200,7 +200,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "chronic-series",
+   "id": "comprehensive-european",
    "metadata": {},
    "source": [
     "The `weights` and `bias` can be accessed using the `.data()` method."
@@ -209,7 +209,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "oriented-shade",
+   "id": "numeric-simulation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -218,7 +218,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "formal-accuracy",
+   "id": "fundamental-myanmar",
    "metadata": {},
    "source": [
     "## Chain layers into a neural network using nn.Sequential\n",
@@ -237,7 +237,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "statistical-richmond",
+   "id": "existing-scholar",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "supported-arrow",
+   "id": "introductory-musical",
    "metadata": {},
    "source": [
     "The layers are ordered exactly the way you defined your neural network with\n",
@@ -261,7 +261,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "occupational-whale",
+   "id": "overall-context",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -270,7 +270,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "spectacular-distribution",
+   "id": "ancient-stability",
    "metadata": {},
    "source": [
     "## Create a custom neural network architecture flexibly\n",
@@ -301,7 +301,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "second-theorem",
+   "id": "republican-twelve",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -315,7 +315,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "surface-treasurer",
+   "id": "accomplished-thousand",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -328,7 +328,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "innocent-elizabeth",
+   "id": "serious-enzyme",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -337,7 +337,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "directed-belgium",
+   "id": "amazing-seventh",
    "metadata": {},
    "source": [
     "Each layer includes parameters that are stored in a `Parameter` class. You can\n",
@@ -359,7 +359,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "active-brazil",
+   "id": "hindu-affair",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -373,7 +373,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "coastal-recruitment",
+   "id": "altered-carolina",
    "metadata": {},
    "source": [
     "The `Parameter` method includes a `grad_req` argument that specifies how you\n",
@@ -393,7 +393,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "frozen-mailing",
+   "id": "settled-marathon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -408,7 +408,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "collect-highland",
+   "id": "prompt-northwest",
    "metadata": {},
    "source": [
     "Parameter can be instantiated before the corresponding data is instantiated. For\n",
@@ -420,7 +420,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sealed-point",
+   "id": "professional-metropolitan",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -431,7 +431,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "legal-offer",
+   "id": "functioning-swedish",
    "metadata": {},
    "source": [
     "Similarly, you can use the following code to implement a famous network called\n",
@@ -442,7 +442,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "remarkable-charter",
+   "id": "moral-transcription",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -472,7 +472,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "confident-malpractice",
+   "id": "differential-marshall",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -502,7 +502,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "legal-coordinate",
+   "id": "ideal-banking",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -520,7 +520,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "imported-march",
+   "id": "velvet-mining",
    "metadata": {},
    "source": [
     "You can use `.data` method to access the weights and bias of a particular layer.\n",
@@ -530,7 +530,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "illegal-guinea",
+   "id": "educated-matter",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -539,7 +539,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "reduced-government",
+   "id": "neither-latest",
    "metadata": {},
    "source": [
     "## Using predefined (pretrained) architectures\n",
@@ -559,7 +559,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "different-burlington",
+   "id": "gentle-cherry",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -575,7 +575,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "molecular-northwest",
+   "id": "funded-handle",
    "metadata": {},
    "source": [
     "## Deciding the paradigm for your network\n",
@@ -605,7 +605,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "frank-relationship",
+   "id": "exposed-multimedia",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -618,7 +618,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "representative-transsexual",
+   "id": "pressed-petersburg",
    "metadata": {},
    "source": [
     "To compile and optimize `HybridSequential`, you can call its `hybridize` method."
@@ -627,7 +627,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "after-creator",
+   "id": "political-adult",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -636,7 +636,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "convenient-blackjack",
+   "id": "digital-pressure",
    "metadata": {},
    "source": [
     "## Creating custom layers using Parameters (HybridBlocks API)\n",
@@ -651,7 +651,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "conventional-surveillance",
+   "id": "reported-medicare",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -676,7 +676,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continent-framing",
+   "id": "palestinian-completion",
    "metadata": {},
    "source": [
     "### Performance\n",
@@ -689,7 +689,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "historic-drunk",
+   "id": "cloudy-distribution",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -718,7 +718,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "premier-entrepreneur",
+   "id": "played-country",
    "metadata": {},
    "source": [
     "Peeling back another layer, you also have a `HybridBlock` which is the hybrid\n",
@@ -733,7 +733,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "indirect-broadcast",
+   "id": "instructional-environment",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -761,7 +761,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hired-dancing",
+   "id": "explicit-blackjack",
    "metadata": {},
    "source": [
     "Given a HybridBlock whose forward computation consists of going through other\n",
@@ -796,7 +796,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "comprehensive-patent",
+   "id": "marine-royal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -806,7 +806,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "proprietary-bristol",
+   "id": "sharing-bridal",
    "metadata": {},
    "source": [
     "And now load this model again. To load the parameters into a model, you will\n",
@@ -817,7 +817,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "oriental-transcript",
+   "id": "convinced-shame",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -831,7 +831,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "pacific-history",
+   "id": "fluid-region",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -840,7 +840,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "aquatic-magazine",
+   "id": "opening-mailman",
    "metadata": {},
    "source": [
     "**Note**: The `save_parameters` and `load_parameters` method is used for models\n",
@@ -863,7 +863,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "varying-telephone",
+   "id": "faced-promise",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -873,7 +873,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "considered-saudi",
+   "id": "romantic-cooking",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -882,7 +882,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "applied-lexington",
+   "id": "mysterious-aging",
    "metadata": {},
    "source": [
     "Similarly, to load this model back, you can use `gluon.nn.SymbolBlock`. To\n",
@@ -892,7 +892,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "superb-seven",
+   "id": "illegal-madrid",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -907,7 +907,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "noticed-opening",
+   "id": "silent-alaska",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -916,7 +916,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pleasant-shelf",
+   "id": "seasonal-vocabulary",
    "metadata": {},
    "source": [
     "## Visualizing your models\n",
@@ -941,7 +941,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "complete-turner",
+   "id": "weekly-bikini",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -951,7 +951,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "integrated-boxing",
+   "id": "basic-growth",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -960,7 +960,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "athletic-logic",
+   "id": "regional-renewal",
    "metadata": {},
    "source": [
     "You are able to print the summaries of the two networks `layer` and `lenet`\n",
@@ -974,7 +974,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "cordless-airline",
+   "id": "stopped-antarctica",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -989,7 +989,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "musical-enough",
+   "id": "psychological-shower",
    "metadata": {},
    "source": [
     "## Next steps:\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/3-autograd.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/3-autograd.ipynb
index 99924fa..1eee33f 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/3-autograd.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/3-autograd.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "technical-scheme",
+   "id": "super-worship",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -35,7 +35,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "restricted-leisure",
+   "id": "traditional-theory",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -46,7 +46,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "activated-recovery",
+   "id": "compressed-significance",
    "metadata": {},
    "source": [
     "As an example, you could differentiate a function $f(x) = 2 x^2$ with respect to\n",
@@ -57,7 +57,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "common-officer",
+   "id": "saving-excess",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -67,7 +67,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "collective-sunset",
+   "id": "prompt-receipt",
    "metadata": {},
    "source": [
     "After you compute the gradient of $f(x)$ with respect to $x$, you need a place\n",
@@ -78,7 +78,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adequate-growing",
+   "id": "novel-saturday",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -87,7 +87,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fewer-dryer",
+   "id": "seven-receiver",
    "metadata": {},
    "source": [
     "Next, define the function $y=f(x)$. To let MXNet store $y$, so that you can\n",
@@ -98,7 +98,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "found-industry",
+   "id": "greater-disney",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -108,7 +108,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fitting-accused",
+   "id": "wired-excess",
    "metadata": {},
    "source": [
     "You can invoke back propagation (backprop) by calling `y.backward()`. When $y$\n",
@@ -118,7 +118,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "aging-facial",
+   "id": "pressed-silver",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -127,7 +127,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "young-still",
+   "id": "lucky-lithuania",
    "metadata": {},
    "source": [
     "Next, verify whether this is the expected output. Note that $y=2x^2$ and\n",
@@ -138,7 +138,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "delayed-colonial",
+   "id": "gothic-recall",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -147,7 +147,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "opened-soundtrack",
+   "id": "accepted-brisbane",
    "metadata": {},
    "source": [
     "Now you get to dive into `y.backward()` by first discussing a bit on gradients. As\n",
@@ -157,7 +157,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sustainable-labor",
+   "id": "fourth-clinton",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -169,7 +169,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "economic-chicago",
+   "id": "trained-republican",
    "metadata": {},
    "source": [
     "Additionally, you can only run backward once. Unless you use the flag\n",
@@ -179,7 +179,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "complex-story",
+   "id": "hourly-argument",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -199,7 +199,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "boring-syria",
+   "id": "cordless-condition",
    "metadata": {},
    "source": [
     "## Custom MXNet ndarray operations\n",
@@ -217,7 +217,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "blank-uzbekistan",
+   "id": "proof-glossary",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -238,7 +238,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "lonely-screening",
+   "id": "described-priest",
    "metadata": {},
    "source": [
     "Now you can use the first custom operation you have built."
@@ -247,7 +247,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sexual-excitement",
+   "id": "pursuant-desperate",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -266,7 +266,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "through-responsibility",
+   "id": "matched-multimedia",
    "metadata": {},
    "source": [
     "Alternatively, you may want to have a function which is different depending on\n",
@@ -276,7 +276,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "crude-custody",
+   "id": "czech-ready",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -290,7 +290,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "higher-screw",
+   "id": "floating-occurrence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -308,7 +308,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "religious-store",
+   "id": "governmental-understanding",
    "metadata": {},
    "source": [
     "You could create functions with `autograd.record()`."
@@ -317,7 +317,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "tender-artwork",
+   "id": "suburban-robinson",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -329,7 +329,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "automotive-cisco",
+   "id": "respective-template",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -340,7 +340,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "imported-static",
+   "id": "deluxe-waterproof",
    "metadata": {},
    "source": [
     "You can also combine multiple functions."
@@ -349,7 +349,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "apart-degree",
+   "id": "desirable-humanity",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -362,7 +362,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "unable-johns",
+   "id": "constitutional-capital",
    "metadata": {},
    "source": [
     "Additionally, MXNet records the execution trace and computes the gradient\n",
@@ -373,7 +373,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "developed-luxury",
+   "id": "significant-frederick",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -390,7 +390,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ruled-discipline",
+   "id": "amber-dispute",
    "metadata": {},
    "source": [
     "In this example, you record the trace and feed in a random value."
@@ -399,7 +399,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "julian-quality",
+   "id": "strong-interference",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -412,7 +412,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rolled-contributor",
+   "id": "regular-tragedy",
    "metadata": {},
    "source": [
     "You can see that `b` is a linear function of `a`, and `c` is chosen from `b`.\n",
@@ -424,7 +424,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "desperate-public",
+   "id": "motivated-competition",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -433,7 +433,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "lyric-nowhere",
+   "id": "pressed-surgery",
    "metadata": {},
    "source": [
     "As you can notice there are 3 values along the dimension 0, so taking a `mean`\n",
@@ -452,7 +452,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "prerequisite-context",
+   "id": "senior-furniture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -467,7 +467,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "quantitative-theorem",
+   "id": "naked-tribe",
    "metadata": {},
    "source": [
     "Is not the same as:"
@@ -476,7 +476,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "norman-oregon",
+   "id": "actual-miller",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -490,7 +490,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "neither-letter",
+   "id": "expired-adjustment",
    "metadata": {},
    "source": [
     "## Next steps\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/4-components.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/4-components.ipynb
index 4ce91b1..e2d35c0 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/4-components.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/4-components.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "apart-enhancement",
+   "id": "swedish-alliance",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -40,7 +40,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "entertaining-maximum",
+   "id": "strategic-pride",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -54,7 +54,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hollow-program",
+   "id": "advised-welding",
    "metadata": {},
    "source": [
     "## Initialization\n",
@@ -70,7 +70,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "peripheral-links",
+   "id": "former-maldives",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -87,7 +87,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "arctic-heart",
+   "id": "detailed-advancement",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -101,7 +101,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "interior-edwards",
+   "id": "interstate-combat",
    "metadata": {},
    "source": [
     "Next, you will print shape and params after the first forward pass."
@@ -110,7 +110,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "champion-adoption",
+   "id": "english-scroll",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -125,7 +125,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sound-tamil",
+   "id": "boxed-classics",
    "metadata": {},
    "source": [
     "#### Built-in Initialization\n",
@@ -150,7 +150,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "noticed-dayton",
+   "id": "downtown-beaver",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -163,7 +163,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sporting-preliminary",
+   "id": "innocent-retention",
    "metadata": {},
    "source": [
     "If you use Normal to initialize your weights then you will use a normal\n",
@@ -175,7 +175,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "strong-decision",
+   "id": "fallen-silver",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -185,7 +185,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "collected-nancy",
+   "id": "focused-nepal",
    "metadata": {},
    "source": [
     "## Components used in a training loop\n",
@@ -221,7 +221,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "painful-haiti",
+   "id": "hired-front",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -240,7 +240,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "educated-tolerance",
+   "id": "surprised-ridge",
    "metadata": {},
    "source": [
     "The ground truth value of the data is stored in `groundtruth_label` is"
@@ -249,7 +249,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "forced-warrant",
+   "id": "military-incident",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -262,7 +262,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "egyptian-sociology",
+   "id": "indian-anderson",
    "metadata": {},
    "source": [
     "For this problem, you will use the L2 Loss. L2Loss, also called Mean Squared Error, is a\n",
@@ -278,7 +278,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "indonesian-diagnosis",
+   "id": "relevant-confidentiality",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -290,7 +290,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "indian-connection",
+   "id": "proved-johnston",
    "metadata": {},
    "source": [
     "Now, you can do the same thing using the mxnet API"
@@ -299,7 +299,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "contained-pathology",
+   "id": "infinite-correction",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -311,7 +311,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "satisfactory-castle",
+   "id": "exceptional-tulsa",
    "metadata": {},
    "source": [
     "A network can improve by iteratively updating its weights to minimise the loss.\n",
@@ -338,7 +338,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adequate-arizona",
+   "id": "editorial-pregnancy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -360,7 +360,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "distributed-emerald",
+   "id": "caring-feedback",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -370,7 +370,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sunrise-taiwan",
+   "id": "physical-nudist",
    "metadata": {},
    "source": [
     "## Optimizer\n",
@@ -386,7 +386,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "metropolitan-happening",
+   "id": "substantial-orbit",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -396,7 +396,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hired-ordinary",
+   "id": "cultural-runner",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -410,7 +410,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "aging-departure",
+   "id": "imperial-electricity",
    "metadata": {},
    "source": [
     "When creating a **Gluon Trainer**, you must provide the trainer object with\n",
@@ -425,7 +425,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "former-moscow",
+   "id": "discrete-secretariat",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -436,7 +436,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "quiet-greensboro",
+   "id": "synthetic-listing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -448,7 +448,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "approximate-speed",
+   "id": "wanted-citizen",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -457,7 +457,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "incident-adjustment",
+   "id": "applied-roller",
    "metadata": {},
    "source": [
     "## Metrics\n",
@@ -477,7 +477,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "seeing-software",
+   "id": "moral-kenya",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -489,7 +489,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "retired-square",
+   "id": "express-classics",
    "metadata": {},
    "source": [
     "Before you can calculate the accuracy of your model, the metric (accuracy)\n",
@@ -499,7 +499,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "empty-account",
+   "id": "increased-marshall",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -510,7 +510,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "amino-occupation",
+   "id": "laden-output",
    "metadata": {},
    "source": [
     "To run and calculate the updated accuracy for each batch or epoch, you can call\n",
@@ -521,7 +521,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "swedish-cooler",
+   "id": "established-thinking",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -530,7 +530,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cardiac-gospel",
+   "id": "introductory-nursery",
    "metadata": {},
    "source": [
     "#### Creating custom metrics\n",
@@ -543,7 +543,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "southeast-remedy",
+   "id": "pursuant-roads",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -557,7 +557,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "divided-hughes",
+   "id": "elegant-collective",
    "metadata": {},
    "source": [
     "Here is an example using the Precision metric. First, define the two values\n",
@@ -567,7 +567,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "optional-graphic",
+   "id": "younger-imperial",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -577,7 +577,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dominican-standing",
+   "id": "needed-specific",
    "metadata": {},
    "source": [
     "Next, define the custom metric class `precision` and instantiate it"
@@ -586,7 +586,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "revolutionary-devil",
+   "id": "black-decade",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -608,7 +608,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ongoing-fashion",
+   "id": "intelligent-universal",
    "metadata": {},
    "source": [
     "And finally, call the `update` method to return the results of `precision` for your data"
@@ -617,7 +617,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "scenic-burton",
+   "id": "exotic-reserve",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -626,7 +626,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sustained-jacket",
+   "id": "tracked-zimbabwe",
    "metadata": {},
    "source": [
     "## Next steps\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/5-datasets.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/5-datasets.ipynb
index 6e8f4d6..6dcab32 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/5-datasets.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/5-datasets.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "existing-event",
+   "id": "latter-rogers",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -31,7 +31,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "faced-looking",
+   "id": "particular-omega",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -43,7 +43,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "previous-projection",
+   "id": "introductory-grade",
    "metadata": {},
    "source": [
     "## Introduction to `Dataset`s\n",
@@ -56,7 +56,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "growing-combine",
+   "id": "substantial-peninsula",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -68,7 +68,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "limited-transformation",
+   "id": "corrected-dominant",
    "metadata": {},
    "source": [
     "A key feature of a `Dataset` is the __*ability to retrieve a single sample given an index*__. Our random data and labels were generated in memory, so this `ArrayDataset` doesn't have to load anything from disk, but the interface is the same for all `Dataset`'s."
@@ -77,7 +77,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "boxed-stability",
+   "id": "metallic-serbia",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -92,7 +92,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "contemporary-renaissance",
+   "id": "charming-strip",
    "metadata": {},
    "source": [
     "You get a tuple of a data sample and its corresponding label, which makes sense because you passed the data `X` and the labels `y` in that order when you instantiated the `ArrayDataset`. You don't usually retrieve individual samples from `Dataset` objects though (unless you're quality checking the output samples). Instead you use a `DataLoader`.\n",
@@ -107,7 +107,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "quiet-brief",
+   "id": "related-effectiveness",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -122,7 +122,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "affecting-cameroon",
+   "id": "extreme-invalid",
    "metadata": {},
    "source": [
     "You can see 2 mini-batches of data (and labels), each with 5 samples, which makes sense given that you started with a dataset of 10 samples. When comparing the shape of the batches to the samples returned by the `Dataset`,you've gained an extra dimension at the start which is sometimes called the batch axis.\n",
@@ -141,7 +141,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "corresponding-assignment",
+   "id": "surgical-activity",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -156,7 +156,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "equal-stomach",
+   "id": "satisfied-still",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -176,7 +176,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hungarian-cradle",
+   "id": "nonprofit-exposure",
    "metadata": {},
    "source": [
     "![datasets fashion mnist bag](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/datasets/fashion_mnist_bag.png)\n",
@@ -187,7 +187,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "arbitrary-parker",
+   "id": "distant-evidence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -198,7 +198,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "large-controversy",
+   "id": "running-position",
    "metadata": {},
    "source": [
     "With both `DataLoader`s defined, you can now train a model to classify each image and evaluate the validation loss at each epoch. See the next tutorial for how this is done.\n",
@@ -212,7 +212,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "challenging-training",
+   "id": "criminal-laugh",
    "metadata": {},
    "source": [
     "```\n",
@@ -227,7 +227,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hispanic-justice",
+   "id": "tight-biotechnology",
    "metadata": {},
    "source": [
     "You can download the Caltech 101 dataset if you don't already have images to work with for this example, but please note the download is 126MB."
@@ -236,7 +236,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "inclusive-reflection",
+   "id": "bronze-italic",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -257,7 +257,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "handled-brush",
+   "id": "blocked-surgeon",
    "metadata": {},
    "source": [
     "After downloading and extracting the data archive, you have two folders: `data/101_ObjectCategories` and `data/101_ObjectCategories_test`. You can then load the data into separate training and testing  ImageFolderDatasets.\n",
@@ -273,7 +273,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "driven-maintenance",
+   "id": "beautiful-frost",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -285,7 +285,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "minimal-portal",
+   "id": "wound-venice",
    "metadata": {},
    "source": [
     "Samples from these datasets are tuples of data and label. Images are loaded from disk, decoded and optionally transformed when the `__getitem__(i)` method is called (equivalent to `train_dataset[i]`).\n",
@@ -296,7 +296,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "white-playback",
+   "id": "found-nicaragua",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -315,7 +315,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fundamental-canadian",
+   "id": "hispanic-domestic",
    "metadata": {},
    "source": [
     "![datasets caltech101 face](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/datasets/caltech101_face.png)<!--notebook-skip-line-->\n",
@@ -360,7 +360,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "severe-responsibility",
+   "id": "heated-forth",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -371,7 +371,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "searching-compatibility",
+   "id": "useful-saturday",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -385,7 +385,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mental-breathing",
+   "id": "stunning-salad",
    "metadata": {},
    "source": [
     "## Using the Python backend:"
@@ -394,7 +394,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "demanding-korean",
+   "id": "metric-difference",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -405,7 +405,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "leading-italic",
+   "id": "small-source",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -419,7 +419,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "green-freeze",
+   "id": "decimal-richardson",
    "metadata": {},
    "source": [
     "## Next Steps\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/6-train-nn.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/6-train-nn.ipynb
index f557373..59c76be 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/6-train-nn.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/6-train-nn.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "editorial-supplement",
+   "id": "elect-sound",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -39,7 +39,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "starting-improvement",
+   "id": "hired-lying",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -65,7 +65,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "backed-truck",
+   "id": "activated-suicide",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -83,7 +83,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "gorgeous-vacation",
+   "id": "right-pointer",
    "metadata": {},
    "source": [
     "#### Data inspection\n",
@@ -93,7 +93,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "weighted-appraisal",
+   "id": "genuine-faith",
    "metadata": {},
    "source": [
     "```\n",
@@ -118,7 +118,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "similar-participation",
+   "id": "banner-premiere",
    "metadata": {},
    "source": [
     "Each plant species has its own directory, for each of those directories you might\n",
@@ -143,7 +143,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "floral-preview",
+   "id": "false-basics",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -153,7 +153,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "grave-alexander",
+   "id": "complicated-farmer",
    "metadata": {},
    "source": [
     "The dataset is located in the `datasets` folder and the new structure\n",
@@ -162,7 +162,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "outstanding-bankruptcy",
+   "id": "wound-eugene",
    "metadata": {},
    "source": [
     "```\n",
@@ -185,7 +185,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pretty-pavilion",
+   "id": "arbitrary-pakistan",
    "metadata": {},
    "source": [
     "Now, you need to create three different Dataset objects from the `train`,\n",
@@ -198,7 +198,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fabulous-sterling",
+   "id": "young-fetish",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -210,7 +210,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "infinite-elimination",
+   "id": "pacific-methodology",
    "metadata": {},
    "source": [
     "The result from this operation is a different Dataset object for each folder.\n",
@@ -223,7 +223,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "colored-advancement",
+   "id": "everyday-bermuda",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -241,7 +241,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "minus-nothing",
+   "id": "subtle-polymer",
    "metadata": {},
    "source": [
     "As you can see from the plot, the image size is very large 4000 x 6000 pixels.\n",
@@ -266,7 +266,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hundred-driving",
+   "id": "irish-crowd",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -298,7 +298,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "warming-threshold",
+   "id": "restricted-thousand",
    "metadata": {},
    "source": [
     "With your augmentations ready, you can create the `DataLoaders` to use them. To\n",
@@ -312,7 +312,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "industrial-three",
+   "id": "electoral-fiction",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -332,7 +332,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dietary-lawsuit",
+   "id": "meaningful-kuwait",
    "metadata": {},
    "source": [
     "Now, you can inspect the transformations that you made to the images. A prepared\n",
@@ -342,7 +342,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "blond-hampshire",
+   "id": "medieval-buddy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -364,7 +364,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "demanding-turtle",
+   "id": "orange-threshold",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -376,7 +376,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "square-seating",
+   "id": "satellite-smith",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -385,7 +385,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "brief-argentina",
+   "id": "referenced-american",
    "metadata": {},
    "source": [
     "You can see that the original images changed to have different sizes and variations\n",
@@ -407,7 +407,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "metallic-grade",
+   "id": "equal-orange",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -432,7 +432,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fatty-liberia",
+   "id": "reduced-prague",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -462,7 +462,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "intensive-microwave",
+   "id": "undefined-arbitration",
    "metadata": {},
    "source": [
     "You have concluded the architecting part of the network, so now you can actually\n",
@@ -475,7 +475,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "graphic-playlist",
+   "id": "classical-barrier",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -492,7 +492,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "offshore-biotechnology",
+   "id": "tight-second",
    "metadata": {},
    "source": [
     "## 3. Choose Optimizer and Loss function\n",
@@ -512,7 +512,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "common-belgium",
+   "id": "christian-updating",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -531,7 +531,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "outside-sphere",
+   "id": "diverse-circuit",
    "metadata": {},
    "source": [
     "Finally, you have to set up the training loop, and you need to create a function to evaluate the performance of the network on the validation dataset."
@@ -540,7 +540,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "emotional-supplier",
+   "id": "stylish-values",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -559,7 +559,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mexican-referral",
+   "id": "removable-czech",
    "metadata": {},
    "source": [
     "## 4. Training Loop\n",
@@ -572,7 +572,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "exact-fraud",
+   "id": "drawn-rings",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -612,7 +612,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "adult-replacement",
+   "id": "exterior-assumption",
    "metadata": {},
    "source": [
     "## 5. Test on the test set\n",
@@ -625,7 +625,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "handed-harvey",
+   "id": "attended-reward",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -634,7 +634,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "southwest-bathroom",
+   "id": "banner-tulsa",
    "metadata": {},
    "source": [
     "You have a trained network that can confidently discriminate between plants that\n",
@@ -653,7 +653,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "planned-accreditation",
+   "id": "attractive-surge",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -663,7 +663,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "technological-invite",
+   "id": "gross-evidence",
    "metadata": {},
    "source": [
     "This is the end of this tutorial, to see how you can speed up the training by\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/crash-course/7-use-gpus.ipynb b/api/python/docs/_sources/tutorials/getting-started/crash-course/7-use-gpus.ipynb
index 56acac5..437fb79 100644
--- a/api/python/docs/_sources/tutorials/getting-started/crash-course/7-use-gpus.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/crash-course/7-use-gpus.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "apparent-violin",
+   "id": "endangered-cooperation",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -36,7 +36,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "young-simulation",
+   "id": "extraordinary-bruce",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -50,7 +50,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "forward-production",
+   "id": "weighted-frame",
    "metadata": {},
    "source": [
     "## Allocate data to a GPU\n",
@@ -61,7 +61,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "dynamic-fusion",
+   "id": "rapid-queue",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -72,7 +72,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "consolidated-township",
+   "id": "nominated-female",
    "metadata": {},
    "source": [
     "If you're using a CPU, MXNet allocates data on the main memory and tries to use as many CPU cores as possible.  If there are multiple GPUs, MXNet will tell you which GPUs the ndarray is allocated on.\n",
@@ -83,7 +83,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "automotive-lobby",
+   "id": "victorian-salmon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -93,7 +93,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "clinical-growth",
+   "id": "controlling-bibliography",
    "metadata": {},
    "source": [
     "MXNet requries that users explicitly move data between devices. But several operators such as `print`, and `asnumpy`, will implicitly move data to main memory.\n",
@@ -109,7 +109,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "beginning-graph",
+   "id": "pleased-browse",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -119,7 +119,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "organizational-bible",
+   "id": "judicial-lying",
    "metadata": {},
    "source": [
     "Remember that if the inputs are not on the same GPU, you will get an error.\n",
@@ -132,7 +132,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "specialized-bangkok",
+   "id": "illegal-premises",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -179,7 +179,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "needed-spanking",
+   "id": "seventh-collective",
    "metadata": {},
    "source": [
     "Load the saved parameters onto GPU 0 directly as shown below; additionally, you could use `net.collect_params().reset_ctx(gpu)` to change the device."
@@ -188,7 +188,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "neural-reader",
+   "id": "integrated-wichita",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -197,7 +197,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "variable-chocolate",
+   "id": "adopted-beads",
    "metadata": {},
    "source": [
     "Use the following command to create input data on GPU 0. The forward function will then run on GPU 0."
@@ -206,7 +206,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "greek-saturday",
+   "id": "bibliographic-tobacco",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -216,7 +216,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "proud-arabic",
+   "id": "focal-czech",
    "metadata": {},
    "source": [
     "## Training with multiple GPUs\n",
@@ -229,7 +229,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "satisfied-danger",
+   "id": "large-birmingham",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -267,7 +267,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "permanent-disclosure",
+   "id": "liquid-midnight",
    "metadata": {},
    "source": [
     "### Define a helper function\n",
@@ -277,7 +277,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "martial-providence",
+   "id": "fantastic-reverse",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -296,7 +296,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "average-marble",
+   "id": "productive-throw",
    "metadata": {},
    "source": [
     "The training loop is quite similar to that shown earlier. The major differences are highlighted in the following code."
@@ -305,7 +305,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "embedded-vocabulary",
+   "id": "fifth-specialist",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -372,7 +372,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "christian-french",
+   "id": "potential-hampton",
    "metadata": {},
    "source": [
     "## Next steps\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/gluon_from_experiment_to_deployment.ipynb b/api/python/docs/_sources/tutorials/getting-started/gluon_from_experiment_to_deployment.ipynb
index c81582f4..ba94849 100644
--- a/api/python/docs/_sources/tutorials/getting-started/gluon_from_experiment_to_deployment.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/gluon_from_experiment_to_deployment.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "static-interim",
+   "id": "homeless-hamburg",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -53,7 +53,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "cardiac-colonial",
+   "id": "centered-rally",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -70,7 +70,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "adopted-reproduction",
+   "id": "acknowledged-commissioner",
    "metadata": {},
    "source": [
     "Now your data will be organized into train, test, and validation sets, images belong to the same class are moved to the same folder.\n",
@@ -85,7 +85,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "included-burden",
+   "id": "biological-penetration",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -102,7 +102,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "driving-stocks",
+   "id": "actual-incentive",
    "metadata": {},
    "source": [
     "Next, we define the hyper-parameters that we will use for fine-tuning. We will use the [MXNet learning rate scheduler](../packages/gluon/training/learning_rates/learning_rate_schedules.ipynb) to adjust learning rates during training.\n",
@@ -112,7 +112,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "intellectual-vaccine",
+   "id": "cellular-uncle",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -136,7 +136,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "periodic-nirvana",
+   "id": "governing-orleans",
    "metadata": {},
    "source": [
     "Now we will apply data augmentations on training images. This makes minor alterations on the training images, and our model will consider them as distinct images. This can be very useful for fine-tuning on a relatively small dataset, and it will help improve the model. We can use the Gluon [DataSet API](../../api/gluon/data/index.rst#mxnet.gluon.data.Dataset), [DataLoader API](../../api/gluon/data/index.rst#mxnet.gluon.data.DataLoader), and [Transform API](../../api/gluon/data/index [...]
@@ -152,7 +152,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "outstanding-clearance",
+   "id": "scheduled-major",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -205,7 +205,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cultural-religion",
+   "id": "stuck-delight",
    "metadata": {},
    "source": [
     "### Loading pre-trained model\n",
@@ -219,7 +219,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "finite-sharp",
+   "id": "wicked-afternoon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -248,7 +248,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "typical-essence",
+   "id": "according-butter",
    "metadata": {},
    "source": [
     "### Fine-tuning model on your custom dataset\n",
@@ -259,7 +259,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "neither-norwegian",
+   "id": "understood-intention",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -308,7 +308,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "directed-public",
+   "id": "expired-planet",
    "metadata": {},
    "source": [
     "Following is the training result:"
@@ -316,7 +316,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "arctic-policy",
+   "id": "amazing-relations",
    "metadata": {},
    "source": [
     "```text\n",
@@ -327,7 +327,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "frequent-crossing",
+   "id": "chinese-sigma",
    "metadata": {},
    "source": [
     "In the previous example output, we trained the model using an [AWS p3.8xlarge instance](https://aws.amazon.com/ec2/instance-types/p3/) with 4 Tesla V100 GPUs. We were able to reach a test accuracy of 95.5% with 40 epochs in around 12 minutes. This was really fast because our model was pre-trained on a much larger dataset, ImageNet, with around 1.3 million images. It worked really well to capture features on our small dataset.\n",
@@ -342,7 +342,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "dominant-roller",
+   "id": "fatty-terrain",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -351,7 +351,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "unique-aerospace",
+   "id": "protective-morris",
    "metadata": {},
    "source": [
     "`export` creates `flower-recognition-symbol.json` and `flower-recognition-0040.params` (`0040` is for 40 epochs we ran) in the current directory. These files can be used for model deployment using the `HybridBlock.import` API.\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/logistic_regression_explained.ipynb b/api/python/docs/_sources/tutorials/getting-started/logistic_regression_explained.ipynb
index 9639d6e..8258655 100644
--- a/api/python/docs/_sources/tutorials/getting-started/logistic_regression_explained.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/logistic_regression_explained.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "promotional-jimmy",
+   "id": "frequent-little",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -33,7 +33,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "apparent-facial",
+   "id": "cellular-catering",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -48,7 +48,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "lightweight-browse",
+   "id": "cheap-apache",
    "metadata": {},
    "source": [
     "In this tutorial we will use fake dataset, which contains 10 features drawn from a normal distribution with mean equals to 0 and standard deviation equals to 1, and a class label, which can be either 0 or 1. The size of the dataset is an arbitrary value. The function below helps us to generate a dataset. Class label `y` is generated via a non-random logic, so the network would have a pattern to look for. Boundary of 3 is selected to make sure that number of positive examples smaller [...]
@@ -57,7 +57,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "individual-child",
+   "id": "numeric-clerk",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -69,7 +69,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "potential-leader",
+   "id": "separate-royalty",
    "metadata": {},
    "source": [
     "Also, let's define a set of hyperparameters, that we are going to use later. Since our model is simple and dataset is small, we are going to use CPU for calculations. Feel free to change it to GPU for a more advanced scenario."
@@ -78,7 +78,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "velvet-stranger",
+   "id": "secure-village",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "decent-portrait",
+   "id": "serious-crime",
    "metadata": {},
    "source": [
     "## Working with data\n",
@@ -103,7 +103,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "presidential-western",
+   "id": "standing-packing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -118,7 +118,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "adaptive-spank",
+   "id": "paperback-engineer",
    "metadata": {},
    "source": [
     "## Defining and training the model\n",
@@ -131,7 +131,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "certain-undergraduate",
+   "id": "alien-colonial",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -147,7 +147,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "editorial-ontario",
+   "id": "brazilian-yahoo",
    "metadata": {},
    "source": [
     "After defining the model, we need to define a few more things: our loss, our trainer and our metric.\n",
@@ -164,7 +164,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "atlantic-writing",
+   "id": "every-penalty",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -177,7 +177,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "turkish-petersburg",
+   "id": "guilty-ladder",
    "metadata": {},
    "source": [
     "The next step is to define the training function in which we iterate over all batches of training data, execute the forward pass on each batch and calculate training loss. On line 19, we sum losses of every batch per epoch into a single variable, because we calculate loss per single batch, but want to display it per epoch."
@@ -186,7 +186,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "light-agriculture",
+   "id": "frank-zealand",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -215,7 +215,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "careful-antarctica",
+   "id": "marked-assets",
    "metadata": {},
    "source": [
     "## Validating the model\n",
@@ -246,7 +246,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "cooperative-spotlight",
+   "id": "optimum-accused",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -280,7 +280,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "noticed-empty",
+   "id": "enclosed-rover",
    "metadata": {},
    "source": [
     "## Putting it all together\n",
@@ -291,7 +291,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "prompt-territory",
+   "id": "connected-toolbox",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -311,7 +311,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continent-masters",
+   "id": "ordinary-association",
    "metadata": {},
    "source": [
     "Output:"
@@ -319,7 +319,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "educated-snowboard",
+   "id": "recovered-issue",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -347,7 +347,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "unknown-fraud",
+   "id": "discrete-intermediate",
    "metadata": {},
    "source": [
     "In our case we hit the accuracy of 0.98 and F1 score of 0.65.\n",
diff --git a/api/python/docs/_sources/tutorials/getting-started/to-mxnet/pytorch.ipynb b/api/python/docs/_sources/tutorials/getting-started/to-mxnet/pytorch.ipynb
index 42b7b5a..922e533 100644
--- a/api/python/docs/_sources/tutorials/getting-started/to-mxnet/pytorch.ipynb
+++ b/api/python/docs/_sources/tutorials/getting-started/to-mxnet/pytorch.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "intermediate-suspect",
+   "id": "trained-paragraph",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -36,7 +36,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "clear-kidney",
+   "id": "sweet-simulation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -45,7 +45,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "radical-panama",
+   "id": "involved-witch",
    "metadata": {},
    "source": [
     "For MXNet we use pip:"
@@ -54,7 +54,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "limiting-sailing",
+   "id": "functional-regression",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -63,7 +63,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "wound-fairy",
+   "id": "juvenile-movement",
    "metadata": {},
    "source": [
     "To install Apache MXNet with GPU support, you need to specify CUDA version. For example, the snippet below will install Apache MXNet with CUDA 9.2 support:"
@@ -72,7 +72,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "alleged-healthcare",
+   "id": "discrete-image",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -81,7 +81,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "finished-insert",
+   "id": "blocked-cycling",
    "metadata": {},
    "source": [
     "## Data manipulation\n",
@@ -96,7 +96,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "elect-speech",
+   "id": "scenic-leadership",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -109,7 +109,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pleasant-officer",
+   "id": "appointed-triumph",
    "metadata": {},
    "source": [
     "**MXNet:**"
@@ -118,7 +118,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "tribal-passing",
+   "id": "accurate-retrieval",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -131,7 +131,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "arctic-reservation",
+   "id": "grave-cooper",
    "metadata": {},
    "source": [
     "The main difference apart from the package name is that the MXNet's shape input parameter needs to be passed as a tuple enclosed in parentheses as in NumPy.\n",
@@ -152,7 +152,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "selective-listing",
+   "id": "introductory-davis",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -167,7 +167,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "violent-sierra",
+   "id": "refined-limitation",
    "metadata": {},
    "source": [
     "**MXNet:**"
@@ -176,7 +176,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fresh-vermont",
+   "id": "brief-capture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -192,7 +192,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "committed-deposit",
+   "id": "seasonal-european",
    "metadata": {},
    "source": [
     "Both frameworks allows you to download MNIST data set from their sources and specify that only training part of the data set is required.\n",
@@ -210,7 +210,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "corresponding-narrow",
+   "id": "signal-disabled",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -224,7 +224,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "still-concord",
+   "id": "bigger-debut",
    "metadata": {},
    "source": [
     "**MXNet:**"
@@ -233,7 +233,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "alive-horizon",
+   "id": "complicated-novel",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -247,7 +247,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "naughty-yesterday",
+   "id": "august-central",
    "metadata": {},
    "source": [
     "We used the Sequential container to stack layers one after the other in order to construct the neural network. Apache MXNet differs from PyTorch in the following ways:\n",
@@ -270,7 +270,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "beautiful-coast",
+   "id": "virtual-substitute",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -280,7 +280,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "considerable-campaign",
+   "id": "critical-round",
    "metadata": {},
    "source": [
     "**MXNet:**"
@@ -289,7 +289,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "subjective-victoria",
+   "id": "described-buffer",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -300,7 +300,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "terminal-spokesman",
+   "id": "lasting-scale",
    "metadata": {},
    "source": [
     "The code difference between frameworks is small. The main difference is that in Apache MXNet we use [Trainer](../../../api/gluon/trainer.rst) class, which accepts optimization algorithm as an argument. We also use [.collect_params()](../../../api/gluon/block.rst#mxnet.gluon.Block.collect_params) method to get parameters of the network.\n",
@@ -317,7 +317,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "chemical-samuel",
+   "id": "expired-gathering",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -338,7 +338,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "impaired-lottery",
+   "id": "mysterious-dealer",
    "metadata": {},
    "source": [
     "**MXNet:**"
@@ -347,7 +347,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hollow-egypt",
+   "id": "handed-flavor",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -368,7 +368,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "iraqi-night",
+   "id": "corrected-medium",
    "metadata": {},
    "source": [
     "Some of the differences in Apache MXNet when compared to PyTorch are as follows:\n",
diff --git a/api/python/docs/_sources/tutorials/packages/autograd/index.ipynb b/api/python/docs/_sources/tutorials/packages/autograd/index.ipynb
index 451e022..7bbc3ec 100644
--- a/api/python/docs/_sources/tutorials/packages/autograd/index.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/autograd/index.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "welcome-newman",
+   "id": "incorporated-montreal",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -94,7 +94,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "superior-therapist",
+   "id": "rural-croatia",
    "metadata": {},
    "source": [
     "```\n",
@@ -104,7 +104,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "environmental-material",
+   "id": "distinguished-throat",
    "metadata": {},
    "source": [
     "As a simple example, we'll implement the regression model shown in the diagrams above, and later use `autograd` to automatically calculate the gradient of the loss with respect to each of the weight parameters."
@@ -112,7 +112,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "compliant-engagement",
+   "id": "strategic-wayne",
    "metadata": {},
    "source": [
     "```\n",
@@ -138,7 +138,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "capable-prospect",
+   "id": "convenient-going",
    "metadata": {},
    "source": [
     "We're ready for our first forward pass through the network, and we want `autograd` to record the computational graph so we can calculate gradients. One of the simplest ways to do this is by running the network (and loss) code in the scope of an `autograd.record` context."
@@ -146,7 +146,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "raising-effects",
+   "id": "scientific-trout",
    "metadata": {},
    "source": [
     "```\n",
@@ -158,7 +158,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "acknowledged-trademark",
+   "id": "understanding-wales",
    "metadata": {},
    "source": [
     "Only operations that we want recorded are in the scope of the `autograd.record` context (since there is a computational overhead), and `autograd` should now have constructed a graph of these operations ready for the backward pass. We start the backward pass by calling the `backward` method on the quantity of interest, which in this case is `loss` since were trying to calculate the gradient of the loss with respect to the parameters.\n",
@@ -168,7 +168,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "facial-diamond",
+   "id": "northern-vertical",
    "metadata": {},
    "source": [
     "```\n",
@@ -178,7 +178,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "reasonable-burlington",
+   "id": "pointed-trader",
    "metadata": {},
    "source": [
     "And that's it! All the `autograd` magic is complete. We should now have gradients for each parameter of the network, which will be used by the optimizer to update the parameter values for improved performance. Check out the gradients of the first layer for example:"
@@ -186,7 +186,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pointed-escape",
+   "id": "thirty-passion",
    "metadata": {},
    "source": [
     "```\n",
@@ -196,7 +196,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "crude-opposition",
+   "id": "developed-copyright",
    "metadata": {},
    "source": [
     "## Advanced: Switching between training vs inference modes\n",
@@ -210,7 +210,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "human-bibliography",
+   "id": "solved-decade",
    "metadata": {},
    "source": [
     "```\n",
@@ -225,7 +225,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "danish-aquarium",
+   "id": "distant-making",
    "metadata": {},
    "source": [
     "We called `dropout` when `autograd` wasn't recording, so our network was in inference mode and thus we didn't see any dropout of the input (i.e. it's still ones). We can confirm the current mode by calling `autograd.is_training()`."
@@ -233,7 +233,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "personal-emergency",
+   "id": "technical-aberdeen",
    "metadata": {},
    "source": [
     "```\n",
@@ -245,7 +245,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "several-freeze",
+   "id": "rental-acoustic",
    "metadata": {},
    "source": [
     "We called `dropout` while `autograd` was recording this time, so our network was in training mode and we see dropout of the input this time. Since the probability of dropout was 50%, the output is automatically scaled by 1/0.5=2 to preserve the average activation.\n",
@@ -261,7 +261,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "specific-cabin",
+   "id": "turkish-identification",
    "metadata": {},
    "source": [
     "```\n",
@@ -271,7 +271,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "confident-effects",
+   "id": "hearing-harvard",
    "metadata": {},
    "source": [
     "<p style=\"text-align:center\">\n",
@@ -291,7 +291,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "underlying-european",
+   "id": "competitive-enclosure",
    "metadata": {},
    "source": [
     "```\n",
@@ -306,7 +306,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "quarterly-median",
+   "id": "burning-disposition",
    "metadata": {},
    "source": [
     "## Advanced: Using Python control flow\n",
@@ -318,7 +318,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "saved-touch",
+   "id": "literary-clerk",
    "metadata": {},
    "source": [
     "```\n",
@@ -339,7 +339,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "polish-accountability",
+   "id": "soviet-phase",
    "metadata": {},
    "source": [
     "We can plot the resultant function for $x$ between 0 and 1, and we should recognise certain functions in segments of $x$. Starting with a quadratic curve from 0 to 1/2, we have a cubic curve from 1/2 to 2/3, a quartic from 2/3 to 3/4 and finally a flatline.\n",
@@ -351,7 +351,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "electrical-profile",
+   "id": "adult-workstation",
    "metadata": {},
    "source": [
     "```\n",
@@ -370,7 +370,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "touched-angola",
+   "id": "absent-birmingham",
    "metadata": {},
    "source": [
     "![flow-grad](https://mxnet.incubator.apache.org/api/python/docs/_static/autograd_images/autograd_control_flow_grad.png)\n",
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "moved-presentation",
+   "id": "blessed-texas",
    "metadata": {},
    "source": [
     "```\n",
@@ -417,7 +417,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hydraulic-layout",
+   "id": "worst-sunglasses",
    "metadata": {},
    "source": [
     "And as expected, we get a gradient of 192 for `x`."
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/activations/activations.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/activations/activations.ipynb
index c4e3973..66a81ec 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/activations/activations.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/activations/activations.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "handy-drive",
+   "id": "economic-orchestra",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -35,7 +35,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "failing-schema",
+   "id": "checked-confidence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -61,7 +61,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mechanical-separation",
+   "id": "conditional-africa",
    "metadata": {},
    "source": [
     "## Sigmoids\n",
@@ -82,7 +82,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "similar-glossary",
+   "id": "civilian-empire",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -91,7 +91,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ranking-seminar",
+   "id": "defensive-prompt",
    "metadata": {},
    "source": [
     "![sigmoid activation and gradient](/_static/sigmoid.png)\n",
@@ -120,7 +120,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "broad-priority",
+   "id": "seventh-feedback",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -129,7 +129,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "coral-protein",
+   "id": "about-gospel",
    "metadata": {},
    "source": [
     "![tanh activation and gradient](/_static/tanh.png)\n",
@@ -147,7 +147,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "whole-intersection",
+   "id": "molecular-muslim",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -156,7 +156,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mexican-chess",
+   "id": "angry-blanket",
    "metadata": {},
    "source": [
     "![softsign activation and gradient](/_static/softsign.png)\n",
@@ -179,7 +179,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fabulous-algebra",
+   "id": "balanced-disposition",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -188,7 +188,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "needed-whole",
+   "id": "focused-alcohol",
    "metadata": {},
    "source": [
     "![relu activation and gradient](/_static/relu.png)\n",
@@ -208,7 +208,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "thorough-reporter",
+   "id": "fiscal-contamination",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -217,7 +217,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "spectacular-coordination",
+   "id": "forty-rider",
    "metadata": {},
    "source": [
     "![softrelu activation and gradient](/_static/softrelu.png)\n",
@@ -240,7 +240,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "soviet-variable",
+   "id": "independent-longer",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -249,7 +249,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "nonprofit-project",
+   "id": "proof-pakistan",
    "metadata": {},
    "source": [
     "![leakyrelu activation and gradient](/_static/leakyrelu.png)\n",
@@ -264,7 +264,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "nasty-chambers",
+   "id": "aware-color",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -275,7 +275,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "israeli-dispatch",
+   "id": "narrow-shield",
    "metadata": {},
    "source": [
     "![prelu activation and gradient](/_static/prelu.png)\n",
@@ -298,7 +298,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ongoing-decimal",
+   "id": "practical-sunrise",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -307,7 +307,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "simple-bulletin",
+   "id": "canadian-fountain",
    "metadata": {},
    "source": [
     "![elu activation and gradient](/_static/elu.png)\n",
@@ -329,7 +329,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "imported-opinion",
+   "id": "adult-sheffield",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -338,7 +338,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "beneficial-sector",
+   "id": "stupid-accommodation",
    "metadata": {},
    "source": [
     "![selu activation and gradient](/_static/selu.png)\n",
@@ -357,7 +357,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ceramic-waterproof",
+   "id": "modified-portland",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -366,7 +366,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "underlying-building",
+   "id": "suffering-spare",
    "metadata": {},
    "source": [
     "![silu activation and gradient](/_static/silu.png)\n",
@@ -386,7 +386,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "chemical-poker",
+   "id": "prescription-controversy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ambient-metro",
+   "id": "coated-marine",
    "metadata": {},
    "source": [
     "![gelu activation and gradient](/_static/gelu.png)\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom-layer.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom-layer.ipynb
index 908057e..03c9c9f 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom-layer.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom-layer.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "senior-swimming",
+   "id": "handed-diamond",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -41,7 +41,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "discrete-mirror",
+   "id": "essential-portal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -56,7 +56,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "dominant-sphere",
+   "id": "colored-reunion",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -70,7 +70,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "annoying-berlin",
+   "id": "british-royalty",
    "metadata": {},
    "source": [
     "The rest of methods of the `Block` class are already implemented, and majority of them are used to work with parameters of a block. There is one very special method named [hybridize()](https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/block.py#L384), though, which I am going to cover before moving to a more complex example of a custom layer.\n",
@@ -95,7 +95,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "measured-front",
+   "id": "compatible-metropolitan",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -109,7 +109,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "intensive-flour",
+   "id": "first-weekend",
    "metadata": {},
    "source": [
     "Thanks to inheriting from HybridBlock, one can easily do forward pass on a given ndarray, either on CPU or GPU:"
@@ -118,7 +118,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "opposed-marketing",
+   "id": "plastic-questionnaire",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -128,7 +128,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "liberal-somerset",
+   "id": "complete-sound",
    "metadata": {},
    "source": [
     "Output:"
@@ -136,7 +136,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "competitive-arnold",
+   "id": "settled-linux",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -147,7 +147,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "decent-sunset",
+   "id": "worth-wyoming",
    "metadata": {},
    "source": [
     "As a rule of thumb, one should always implement custom layers by inheriting from `HybridBlock`. This allows to have more flexibility, and doesn't affect execution speed once hybridization is done. \n",
@@ -168,7 +168,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "technological-madagascar",
+   "id": "quiet-research",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -186,7 +186,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "perfect-index",
+   "id": "compliant-determination",
    "metadata": {},
    "source": [
     "Output:"
@@ -194,7 +194,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "compliant-insertion",
+   "id": "moral-network",
    "metadata": {},
    "source": [
     "```bash\n",
@@ -209,7 +209,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sought-assist",
+   "id": "brilliant-piece",
    "metadata": {},
    "source": [
     "## Parameters of a custom layer\n",
@@ -222,7 +222,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "minimal-theology",
+   "id": "comparative-volunteer",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -248,7 +248,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "public-sustainability",
+   "id": "amino-canadian",
    "metadata": {},
    "source": [
     "In the example above 2 set of parameters are defined:\n",
@@ -270,7 +270,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "responsible-liberty",
+   "id": "afraid-cambridge",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -316,7 +316,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "trained-subscription",
+   "id": "consistent-marijuana",
    "metadata": {},
    "source": [
     "Output:\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom_layer_beginners.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom_layer_beginners.ipynb
index ab6d0c2..b4c515b 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom_layer_beginners.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/custom_layer_beginners.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "narrative-doctor",
+   "id": "least-candle",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -40,7 +40,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "tender-flooring",
+   "id": "responsible-corrections",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -55,7 +55,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "false-catalyst",
+   "id": "traditional-rachel",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -69,7 +69,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "brutal-murray",
+   "id": "orange-enterprise",
    "metadata": {},
    "source": [
     "The rest of methods of the `Block` class are already implemented, and majority of them are used to work with parameters of a block. There is one very special method named [hybridize()](https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/block.py#L384), though, which I am going to cover before moving to a more complex example of a custom layer.\n",
@@ -94,7 +94,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "abroad-edwards",
+   "id": "passing-riding",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -108,7 +108,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "prerequisite-persian",
+   "id": "threaded-european",
    "metadata": {},
    "source": [
     "Thanks to inheriting from HybridBlock, one can easily do forward pass on a given ndarray, either on CPU or GPU:"
@@ -117,7 +117,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "postal-china",
+   "id": "atomic-creek",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -128,7 +128,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "mighty-lodging",
+   "id": "controlling-growing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -138,7 +138,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "executive-skating",
+   "id": "presidential-voltage",
    "metadata": {},
    "source": [
     "As a rule of thumb, one should always implement custom layers by inheriting from `HybridBlock`. This allows to have more flexibility, and doesn’t affect execution speed once hybridization is done.\n",
@@ -159,7 +159,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "worldwide-exploration",
+   "id": "checked-lawsuit",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -178,7 +178,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "natural-skirt",
+   "id": "charged-manhattan",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -192,7 +192,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "accompanied-fighter",
+   "id": "willing-enough",
    "metadata": {},
    "source": [
     "## Parameters of a custom layer\n",
@@ -205,7 +205,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "daily-avatar",
+   "id": "frozen-preservation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -231,7 +231,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "inclusive-biography",
+   "id": "controversial-stretch",
    "metadata": {},
    "source": [
     "In the example above 2 set of parameters are defined:\n",
@@ -254,7 +254,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "downtown-despite",
+   "id": "about-insight",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -301,7 +301,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "absolute-agriculture",
+   "id": "invalid-fence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "underlying-pregnancy",
+   "id": "exposed-clock",
    "metadata": {},
    "source": [
     "As it is seen from the output above, `weights` parameter has been changed by the training and `scales` not.\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/hybridize.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/hybridize.ipynb
index 853ea11..a0cf883 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/hybridize.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/hybridize.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "demanding-thesis",
+   "id": "loved-component",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -36,7 +36,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "valued-contemporary",
+   "id": "accurate-bearing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -54,7 +54,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "million-biotechnology",
+   "id": "protecting-producer",
    "metadata": {},
    "source": [
     "As expected, Python will perform an addition when running the statement `e = add(a, b)`, and will store the result as the variable `e`, thereby changing the program’s state. The next two statements `f = add(c, d)` and `g = add(e, f)` will similarly perform additions and store the results as variables.\n",
@@ -73,7 +73,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "useful-sound",
+   "id": "forward-courage",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -105,7 +105,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "radio-trader",
+   "id": "outstanding-rachel",
    "metadata": {},
    "source": [
     "The three functions defined above will only return the results of the computation process as a string. Finally, the complete computation process is compiled and run using the `compile` function. This leaves more room to optimize computation, since the system is able to view the entire program during its compilation. For example, during compilation, the program can be rewritten as `print((1 + 2) + (3 + 4))` or even directly rewritten as `print(10)`. Apart from reducing the amount of  [...]
@@ -132,7 +132,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "working-ceramic",
+   "id": "consistent-avatar",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "chief-botswana",
+   "id": "dutch-voluntary",
    "metadata": {},
    "source": [
     "By calling the `hybridize` function, we are able to compile and optimize the computation of the concatenation layer in the HybridSequential instance. The model’s computation result remains unchanged."
@@ -164,7 +164,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "finnish-placement",
+   "id": "breathing-equity",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -174,7 +174,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ancient-sugar",
+   "id": "protected-royalty",
    "metadata": {},
    "source": [
     "It should be noted that only the layers inheriting the HybridBlock class will be optimized during computation. For example, the HybridSequential and `Dense` classes provided by Gluon are all subclasses of HybridBlock class, meaning they will both be optimized during computation. A layer will not be optimized if it inherits from the Block class rather than the HybridBlock class.\n",
@@ -187,7 +187,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hollow-queens",
+   "id": "elementary-furniture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -206,7 +206,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continental-evans",
+   "id": "beautiful-husband",
    "metadata": {},
    "source": [
     "As is observed in the above results, after a HybridSequential instance calls the `hybridize` function, computing performance is improved through the use of symbolic programming.\n",
@@ -219,7 +219,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "normal-cycling",
+   "id": "weighted-ceiling",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -228,7 +228,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "animal-monday",
+   "id": "foster-rating",
    "metadata": {},
    "source": [
     "The .json and .params files generated during this process are a symbolic program and a model parameter, respectively. They can be read by other front-end languages supported by Python or MXNet, such as C++, R, Scala, and Perl. This allows us to deploy trained models to other devices and easily use other front-end programming languages. At the same time, because symbolic programming was used during deployment, the computing performance is often superior to that based on imperative pr [...]
@@ -239,7 +239,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "moving-monitor",
+   "id": "derived-houston",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -249,7 +249,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "willing-hungary",
+   "id": "introductory-little",
    "metadata": {},
    "source": [
     "## Constructing Models Using the HybridBlock Class\n",
@@ -262,7 +262,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fourth-generation",
+   "id": "elementary-applicant",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -282,7 +282,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "exclusive-swimming",
+   "id": "honey-register",
    "metadata": {},
    "source": [
     "We need to add the additional input `F` to the `hybrid_forward` function when inheriting the HybridBlock class. We already know that MXNet uses both an NDArray class and a Symbol class, which are based on imperative programming and symbolic programming, respectively. Since these two classes perform very similar functions, MXNet will determine whether `F` will call NDArray or Symbol based on the input provided.\n",
@@ -293,7 +293,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "eligible-lightning",
+   "id": "defensive-morrison",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -305,7 +305,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "attempted-brain",
+   "id": "cross-economy",
    "metadata": {},
    "source": [
     "Repeating the forward computation will achieve the same results."
@@ -314,7 +314,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "advanced-voluntary",
+   "id": "married-regular",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -323,7 +323,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fuzzy-furniture",
+   "id": "chicken-cutting",
    "metadata": {},
    "source": [
     "Next, we will see what happens after we call the `hybridize` function."
@@ -332,7 +332,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "later-premium",
+   "id": "afraid-system",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -342,7 +342,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ordinary-breach",
+   "id": "supposed-packet",
    "metadata": {},
    "source": [
     "We can see that `F` turns into a Symbol. Moreover, even though the input data is still NDArray, the same input and intermediate output will all be converted to Symbol type in the `hybrid_forward` function.\n",
@@ -353,7 +353,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "innocent-islam",
+   "id": "educational-return",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -362,7 +362,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rational-bronze",
+   "id": "understood-split",
    "metadata": {},
    "source": [
     "We can see that the three lines of print statements defined in the `hybrid_forward` function will not print anything. This is because a symbolic program has been produced since the last time `net(x)` was run by calling the `hybridize` function. Afterwards, when we run `net(x)` again, MXNet will no longer need to access Python code, but can directly perform symbolic programming at the C++ backend. This is another reason why model computing performance will be improve after the `hybri [...]
@@ -379,7 +379,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "retained-exchange",
+   "id": "diagnostic-consequence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -389,7 +389,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "informational-korean",
+   "id": "spoken-scientist",
    "metadata": {},
    "source": [
     "Would generate the following error:\n",
@@ -406,7 +406,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "labeled-auction",
+   "id": "guilty-falls",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -418,7 +418,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "authentic-rochester",
+   "id": "seven-relevance",
    "metadata": {},
    "source": [
     "Would generate a `AttributeError: 'Symbol' object has no attribute 'dtype'`\n",
@@ -433,7 +433,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "suited-modeling",
+   "id": "harmful-scheduling",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -445,7 +445,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "specified-tuesday",
+   "id": "rubber-presence",
    "metadata": {},
    "source": [
     "Without getting a `AttributeError: 'Symbol' object has no attribute 'context'`\n",
@@ -460,7 +460,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "final-sandwich",
+   "id": "identified-walnut",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -470,7 +470,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "photographic-spoke",
+   "id": "printable-arnold",
    "metadata": {},
    "source": [
     "Trying to access the shape of a tensor in a hybridized block would result in this error: `AttributeError: 'Symbol' object has no attribute 'shape'`.\n",
@@ -488,7 +488,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "varying-perspective",
+   "id": "obvious-anger",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -499,7 +499,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "desirable-slave",
+   "id": "ranging-sailing",
    "metadata": {},
    "source": [
     "Would get you this error `TypeError: 'Symbol' object does not support item assignment`.\n",
@@ -512,7 +512,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "voluntary-sender",
+   "id": "compact-kinase",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -524,7 +524,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "solid-coupon",
+   "id": "blond-stranger",
    "metadata": {},
    "source": [
     "## Disabling Hybridization\n",
@@ -535,7 +535,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "persistent-checkout",
+   "id": "upset-naples",
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/init.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/init.ipynb
index 9b60e43..14d0532 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/init.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/init.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "micro-honor",
+   "id": "handled-enough",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -53,7 +53,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "initial-consolidation",
+   "id": "invisible-cargo",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -72,7 +72,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "documentary-closer",
+   "id": "genetic-regression",
    "metadata": {},
    "source": [
     "At this point the network doesn't really know yet what the dimensionalities of\n",
@@ -84,7 +84,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "following-selection",
+   "id": "violent-payday",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -93,7 +93,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "instructional-market",
+   "id": "brave-packing",
    "metadata": {},
    "source": [
     "You'll notice `None` here in each `Dense` layer. This absence of value is how\n",
@@ -110,7 +110,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ultimate-bristol",
+   "id": "residential-seafood",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -120,7 +120,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "distributed-drinking",
+   "id": "colonial-dispute",
    "metadata": {},
    "source": [
     "As we can see, nothing really changed. Only once we provide the network with\n",
@@ -130,7 +130,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "framed-elephant",
+   "id": "bulgarian-vatican",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -141,7 +141,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "happy-polymer",
+   "id": "forbidden-while",
    "metadata": {},
    "source": [
     "We see all the dimensions have been determined and the parameters initialized.\n",
@@ -170,7 +170,7 @@
   {
    "cell_type": "code",
    "execution_count": 22,
-   "id": "handmade-alarm",
+   "id": "fewer-young",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -191,7 +191,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dangerous-scroll",
+   "id": "adapted-cleanup",
    "metadata": {},
    "source": [
     "Note that, although `MyInit` will print information about the model parameters\n",
@@ -205,7 +205,7 @@
   {
    "cell_type": "code",
    "execution_count": 25,
-   "id": "ceramic-indian",
+   "id": "regulation-silence",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -221,7 +221,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bulgarian-teach",
+   "id": "furnished-absorption",
    "metadata": {},
    "source": [
     "At this time, information on the model parameters is printed. When performing a\n",
@@ -239,7 +239,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "surprised-jerusalem",
+   "id": "hawaiian-sustainability",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -248,7 +248,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "banned-ozone",
+   "id": "north-workstation",
    "metadata": {},
    "source": [
     "As mentioned at the beginning of this section, deferred initialization can also\n",
@@ -272,7 +272,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "absolute-video",
+   "id": "traditional-construction",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -281,7 +281,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "involved-lesbian",
+   "id": "average-finnish",
    "metadata": {},
    "source": [
     "The second case requires us to specify the remaining set of parameters when\n",
@@ -293,7 +293,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "upset-arnold",
+   "id": "pregnant-shirt",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -306,7 +306,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "deluxe-rwanda",
+   "id": "essential-hearts",
    "metadata": {},
    "source": [
     "## Parameter Initialization\n",
@@ -327,7 +327,7 @@
   {
    "cell_type": "code",
    "execution_count": 9,
-   "id": "proper-james",
+   "id": "sublime-brighton",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -345,7 +345,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "coordinate-westminster",
+   "id": "fiscal-listing",
    "metadata": {},
    "source": [
     "If we wanted to initialize all parameters to $1$, we could do this simply by\n",
@@ -355,7 +355,7 @@
   {
    "cell_type": "code",
    "execution_count": 10,
-   "id": "english-membrane",
+   "id": "clinical-garlic",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -371,7 +371,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "compatible-person",
+   "id": "cutting-modification",
    "metadata": {},
    "source": [
     "If we want to initialize only a specific parameter in a different manner, we\n",
@@ -384,7 +384,7 @@
   {
    "cell_type": "code",
    "execution_count": 11,
-   "id": "mediterranean-slope",
+   "id": "concerned-springer",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -408,7 +408,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "embedded-winning",
+   "id": "public-statistics",
    "metadata": {},
    "source": [
     "### Custom Initialization\n",
@@ -434,7 +434,7 @@
   {
    "cell_type": "code",
    "execution_count": 12,
-   "id": "olive-buddy",
+   "id": "miniature-montreal",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -456,7 +456,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pacific-tobacco",
+   "id": "brazilian-convergence",
    "metadata": {},
    "source": [
     "If this functionality is insufficient, we can even set parameters directly.\n",
@@ -469,7 +469,7 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "id": "controlled-spice",
+   "id": "extensive-domain",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -486,7 +486,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "broken-showcase",
+   "id": "renewable-fellowship",
    "metadata": {},
    "source": [
     "## Tied Parameters\n",
@@ -501,7 +501,7 @@
   {
    "cell_type": "code",
    "execution_count": 14,
-   "id": "checked-deficit",
+   "id": "breathing-myanmar",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -534,7 +534,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "toxic-psychiatry",
+   "id": "precious-documentary",
    "metadata": {},
    "source": [
     "The above example shows that the parameters of the second and third layer are\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/naming.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/naming.ipynb
index c6dac91..2b9c391 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/naming.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/naming.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "regular-productivity",
+   "id": "horizontal-survival",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -32,7 +32,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "conscious-polyester",
+   "id": "necessary-subscription",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -43,7 +43,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "baking-advocate",
+   "id": "dutch-bones",
    "metadata": {},
    "source": [
     "## Naming Blocks\n",
@@ -54,7 +54,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "approved-beverage",
+   "id": "loved-devon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -64,7 +64,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dominant-personality",
+   "id": "worth-canada",
    "metadata": {},
    "source": [
     "When you create more Blocks of the same kind, they will be named with incrementing suffixes to avoid collision:"
@@ -73,7 +73,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "stuffed-diagnosis",
+   "id": "toxic-aerospace",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -83,7 +83,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "filled-lesson",
+   "id": "built-trademark",
    "metadata": {},
    "source": [
     "## Naming Parameters\n",
@@ -94,7 +94,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "voluntary-valuation",
+   "id": "respected-preparation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -104,7 +104,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "loving-footwear",
+   "id": "central-fence",
    "metadata": {},
    "source": [
     "`param.name` is used as the name of a parameter's symbol representation. And it can not be changed once the parameter is created.\n",
@@ -115,7 +115,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "packed-broadcasting",
+   "id": "monthly-north",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -124,7 +124,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mental-setting",
+   "id": "consistent-platinum",
    "metadata": {},
    "source": [
     "## Nested Blocks\n",
@@ -135,7 +135,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adjustable-offense",
+   "id": "going-procurement",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -159,7 +159,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "western-street",
+   "id": "fatal-substitute",
    "metadata": {},
    "source": [
     "The same principle also applies to container blocks like Sequential. We can simply do as follows:"
@@ -168,7 +168,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "recognized-cycling",
+   "id": "announced-plenty",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -179,7 +179,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "prescribed-occurrence",
+   "id": "dense-supervisor",
    "metadata": {},
    "source": [
     "## Saving and loading\n",
@@ -191,7 +191,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "divine-manchester",
+   "id": "integral-tower",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -202,7 +202,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "specified-morris",
+   "id": "industrial-stuff",
    "metadata": {},
    "source": [
     "For `SymbolBlock.imports`, we use `export`, which uses parameter name `param.name`, to save parameters."
@@ -211,7 +211,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "suited-quick",
+   "id": "addressed-murder",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -221,7 +221,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sixth-chuck",
+   "id": "forced-machinery",
    "metadata": {},
    "source": [
     "## Replacing Blocks from networks and fine-tuning\n",
@@ -239,7 +239,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "committed-enzyme",
+   "id": "korean-burden",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -249,7 +249,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "monthly-degree",
+   "id": "paperback-advance",
    "metadata": {},
    "source": [
     "To change the output to 100 dimension, we replace it with a new block."
@@ -258,7 +258,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "changing-apple",
+   "id": "sticky-southwest",
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/nn.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/nn.ipynb
index f7a02c0..14cb96c 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/nn.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/nn.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "classified-notebook",
+   "id": "fabulous-pilot",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -47,7 +47,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "concerned-thinking",
+   "id": "hybrid-italian",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -73,7 +73,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "premium-territory",
+   "id": "indonesian-roller",
    "metadata": {},
    "source": [
     "This generates a network with a hidden layer of $256$ units, followed by a ReLU\n",
@@ -124,7 +124,7 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "recreational-adelaide",
+   "id": "accredited-intention",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -153,7 +153,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "latin-sunglasses",
+   "id": "classified-elite",
    "metadata": {},
    "source": [
     "At its core is the `add` method. It adds any block to the ordered dictionary of\n",
@@ -164,7 +164,7 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "id": "viral-aerospace",
+   "id": "animal-jurisdiction",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -183,7 +183,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "brown-roads",
+   "id": "hollow-forge",
    "metadata": {},
    "source": [
     "Indeed, it is no different than It can observed here that the use of the\n",
@@ -205,7 +205,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "designed-living",
+   "id": "forced-focus",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -238,7 +238,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "liberal-pavilion",
+   "id": "occasional-forty",
    "metadata": {},
    "source": [
     "Let's look at it a bit more closely. The `forward` method invokes a network\n",
@@ -262,7 +262,7 @@
   {
    "cell_type": "code",
    "execution_count": 2,
-   "id": "industrial-token",
+   "id": "native-soccer",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -279,7 +279,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "joint-longer",
+   "id": "statutory-vietnamese",
    "metadata": {},
    "source": [
     "As explained above, the `Block` class can be quite versatile in terms of what it\n",
@@ -323,7 +323,7 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "id": "analyzed-benefit",
+   "id": "differential-parcel",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -364,7 +364,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "plain-formula",
+   "id": "underlying-seminar",
    "metadata": {},
    "source": [
     "In this `FancyMLP` model, we used constant weight `rand_weight` (note that it is\n",
@@ -380,7 +380,7 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "id": "renewable-frontier",
+   "id": "treated-language",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -397,7 +397,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "honest-release",
+   "id": "active-african",
    "metadata": {},
    "source": [
     "There's no reason why we couldn't mix and match these ways of building a\n",
@@ -412,7 +412,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "id": "middle-serial",
+   "id": "imported-proposition",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -442,7 +442,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "greenhouse-major",
+   "id": "welsh-sequence",
    "metadata": {},
    "source": [
     "## Hybridization\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/parameters.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/parameters.ipynb
index 0d9ea34..58ddafc 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/parameters.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/parameters.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "original-programmer",
+   "id": "false-juvenile",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -38,7 +38,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "phantom-plastic",
+   "id": "ruled-outreach",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -63,7 +63,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "individual-commerce",
+   "id": "coated-address",
    "metadata": {},
    "source": [
     "## Parameter Access\n",
@@ -74,7 +74,7 @@
   {
    "cell_type": "code",
    "execution_count": 2,
-   "id": "instrumental-necessity",
+   "id": "organized-inclusion",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pleasant-trash",
+   "id": "known-harvey",
    "metadata": {},
    "source": [
     "From the output we can see that the layer consists of two sets of parameters: `dense0_weight` and `dense0_bias`. They are both single precision and they have the necessary shapes that we would expect from the first layer, given that the input dimension is 20 and the output dimension 256. The names of the parameters are very useful, because they allow us to identify parameters *uniquely* even in a network of hundreds of layers and with nontrivial structure. The second layer is struct [...]
@@ -103,7 +103,7 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "solved-industry",
+   "id": "wanted-colon",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -119,7 +119,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "representative-brunei",
+   "id": "silent-calendar",
    "metadata": {},
    "source": [
     "The first line returns the bias of the second layer. Since this is an object containing data, gradients, and additional information, we need to request the data explicitly. To request the data, we call `data` method on the parameter on the second line. Note that the bias is all 0 since we initialized the bias to contain all zeros.\n",
@@ -130,7 +130,7 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "id": "spread-channel",
+   "id": "vital-lingerie",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -146,7 +146,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sporting-perry",
+   "id": "adjusted-pleasure",
    "metadata": {},
    "source": [
     "Note that the weights are nonzero as they were randomly initialized when we constructed the network.\n",
@@ -157,7 +157,7 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "id": "logical-singer",
+   "id": "impressive-turner",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -172,7 +172,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "flexible-fluid",
+   "id": "dietary-hometown",
    "metadata": {},
    "source": [
     "### All Parameters at Once\n",
@@ -183,7 +183,7 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "id": "signed-force",
+   "id": "prostate-allergy",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -201,7 +201,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pending-church",
+   "id": "second-excellence",
    "metadata": {},
    "source": [
     "This provides us with the third way of accessing the parameters of the network. If we want to get the value of the bias term of the second layer we could simply use this:"
@@ -210,7 +210,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "id": "pretty-riding",
+   "id": "stopped-belle",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -225,7 +225,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "becoming-background",
+   "id": "substantial-england",
    "metadata": {},
    "source": [
     "By adding a regular expression as an argument to `collect_params` method, we can select only a particular set of parameters whose names are matched by the regular expression."
@@ -234,7 +234,7 @@
   {
    "cell_type": "code",
    "execution_count": 8,
-   "id": "bored-hometown",
+   "id": "unable-application",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "accredited-treasury",
+   "id": "binary-protocol",
    "metadata": {},
    "source": [
     "### Rube Goldberg strikes again\n",
@@ -261,7 +261,7 @@
   {
    "cell_type": "code",
    "execution_count": 20,
-   "id": "heard-somalia",
+   "id": "rental-basis",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -292,7 +292,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "healthy-diameter",
+   "id": "ready-basic",
    "metadata": {},
    "source": [
     "Now that we are done designing the network, let's see how it is organized. `collect_params` provides us with this information, both in terms of naming and in terms of logical structure."
@@ -301,7 +301,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "medieval-camera",
+   "id": "encouraging-stick",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -311,7 +311,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "serious-inside",
+   "id": "freelance-dominant",
    "metadata": {},
    "source": [
     "We can access layers following the hierarchy in which they are structured. For instance, if we want to access the bias of the first layer of the second subblock of the first major block, we could perform the following:"
@@ -320,7 +320,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "outer-nirvana",
+   "id": "infectious-graphics",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -329,7 +329,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "agreed-boards",
+   "id": "closing-physics",
    "metadata": {},
    "source": [
     "### Saving and loading parameters\n",
@@ -340,7 +340,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "copyrighted-decrease",
+   "id": "alien-trail",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -350,7 +350,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "unlikely-mistake",
+   "id": "possible-weekly",
    "metadata": {},
    "source": [
     "## Parameter Initialization\n",
@@ -365,7 +365,7 @@
   {
    "cell_type": "code",
    "execution_count": 9,
-   "id": "enabling-scale",
+   "id": "going-instrument",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -383,7 +383,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "general-landing",
+   "id": "certain-italy",
    "metadata": {},
    "source": [
     "If we wanted to initialize all parameters to 1, we could do this simply by changing the initializer to [Constant(1)](../../../../api/initializer/index.rst#mxnet.initializer.Constant)."
@@ -392,7 +392,7 @@
   {
    "cell_type": "code",
    "execution_count": 10,
-   "id": "whole-color",
+   "id": "black-bahamas",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -408,7 +408,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "straight-anatomy",
+   "id": "premium-chocolate",
    "metadata": {},
    "source": [
     "If we want to initialize only a specific parameter in a different manner, we can simply set the initializer only for the appropriate subblock (or parameter) for that matter. For instance, below we initialize the second layer to a constant value of 42 and we use the [Xavier](../../../../api/initializer/index.rst#mxnet.initializer.Xavier) initializer for the weights of the first layer."
@@ -417,7 +417,7 @@
   {
    "cell_type": "code",
    "execution_count": 11,
-   "id": "complete-necklace",
+   "id": "human-report",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -435,7 +435,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "covered-timothy",
+   "id": "advised-silly",
    "metadata": {},
    "source": [
     "### Custom Initialization\n",
@@ -456,7 +456,7 @@
   {
    "cell_type": "code",
    "execution_count": 12,
-   "id": "mighty-passing",
+   "id": "chicken-ballet",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -478,7 +478,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "optimum-clearing",
+   "id": "unknown-organization",
    "metadata": {},
    "source": [
     "If even this functionality is insufficient, we can set parameters directly. Since `data()` returns an NDArray we can access it just like any other matrix. A note for advanced users - if you want to adjust parameters within an [autograd](../../../../api/autograd/index.rst) scope you need to use [set_data](../../../../api/gluon/parameter.rst#mxnet.gluon.Parameter.set_data) to avoid confusing the automatic differentiation mechanics."
@@ -487,7 +487,7 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "id": "checked-delhi",
+   "id": "respective-blackberry",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -504,7 +504,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pacific-verse",
+   "id": "surrounded-station",
    "metadata": {},
    "source": [
     "## Tied Parameters\n",
@@ -515,7 +515,7 @@
   {
    "cell_type": "code",
    "execution_count": 14,
-   "id": "studied-flush",
+   "id": "brief-patrol",
    "metadata": {
     "attributes": {
      "classes": [],
@@ -548,7 +548,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "necessary-logging",
+   "id": "express-bishop",
    "metadata": {},
    "source": [
     "The above example shows that the parameters of the second and third layer are tied. They are identical rather than just being equal. That is, by changing one of the parameters the other one changes, too. What happens to the gradients is quite ingenious. Since the model parameters contain gradients, the gradients of the second hidden layer and the third hidden layer are accumulated in the [shared.params.grad()](../../../../api/gluon/parameter.rst#mxnet.gluon.Parameter.grad) during ba [...]
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/blocks/save_load_params.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/blocks/save_load_params.ipynb
index 5bce7a8..9f8e227 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/blocks/save_load_params.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/blocks/save_load_params.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "sustained-elevation",
+   "id": "noticed-conjunction",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -42,7 +42,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "treated-egyptian",
+   "id": "domestic-internet",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -58,7 +58,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "terminal-requirement",
+   "id": "scheduled-punch",
    "metadata": {},
    "source": [
     "## Setup: build and train a simple model\n",
@@ -71,7 +71,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "committed-homeless",
+   "id": "boolean-constitutional",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -141,7 +141,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "naked-beverage",
+   "id": "stock-least",
    "metadata": {},
    "source": [
     "Let's build a model and train it. After training, we will save and restore this model from a file."
@@ -150,7 +150,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "wrapped-planning",
+   "id": "naked-asthma",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -160,7 +160,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fewer-devices",
+   "id": "public-windows",
    "metadata": {},
    "source": [
     "<pre>Epoch: 0; Batch 0; Loss 2.288904 <!--notebook-skip-line-->\n",
@@ -192,7 +192,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "magnetic-atmosphere",
+   "id": "anticipated-copying",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -202,7 +202,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "outdoor-moral",
+   "id": "electrical-highland",
    "metadata": {},
    "source": [
     "We have successfully saved the parameters of the model into a file.\n",
@@ -215,7 +215,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adult-stereo",
+   "id": "parallel-hobby",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -225,7 +225,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "statewide-integral",
+   "id": "hairy-denmark",
    "metadata": {},
    "source": [
     "Note that to do this, we need the definition of the network as Python code. If we want to recreate this network on a different machine using the saved weights, we need the same Python code (`build_lenet`) that created the network to create the `new_net` object shown above. This means Python code needs to be copied over to any machine where we want to run this network.\n",
@@ -238,7 +238,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "identified-symposium",
+   "id": "champion-conviction",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -277,7 +277,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sealed-powell",
+   "id": "functioning-trace",
    "metadata": {},
    "source": [
     "![Model inputs mnist in 1](https://raw.githubusercontent.com/indhub/web-data/4a9c100aa996df3dff0e7f493029d411c2b526c3/mxnet/tutorials/gluon/save_load_params/mnist_in_1.png) <!--notebook-skip-line-->\n",
@@ -294,7 +294,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "seventh-mount",
+   "id": "fiscal-clothing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -305,7 +305,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "tired-stewart",
+   "id": "antique-level",
    "metadata": {},
    "source": [
     "<pre>Epoch: 0; Batch 0; Loss 2.323284 <!--notebook-skip-line-->\n",
@@ -335,7 +335,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "comparable-format",
+   "id": "hundred-columbia",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -344,7 +344,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "false-edition",
+   "id": "tested-enclosure",
    "metadata": {},
    "source": [
     "`export` in this case creates `lenet-symbol.json` and `lenet-0001.params` in the current directory.\n",
@@ -365,7 +365,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "front-release",
+   "id": "delayed-timothy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -377,7 +377,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "excellent-marking",
+   "id": "active-school",
    "metadata": {},
    "source": [
     "`deserialized_net` now contains the network we deserialized from files. Let's test the deserialized network to make sure it works."
@@ -386,7 +386,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fluid-ivory",
+   "id": "oriental-drain",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "eligible-findings",
+   "id": "tested-reach",
    "metadata": {},
    "source": [
     "![Model inputs mnist in 2](https://raw.githubusercontent.com/indhub/web-data/4a9c100aa996df3dff0e7f493029d411c2b526c3/mxnet/tutorials/gluon/save_load_params/mnist_in_2.png) <!--notebook-skip-line-->\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/data/data_augmentation.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/data/data_augmentation.ipynb
index b30382c..72f3ee2 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/data/data_augmentation.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/data/data_augmentation.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "increasing-junction",
+   "id": "smaller-bhutan",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -40,7 +40,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "designing-transfer",
+   "id": "based-shopper",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -51,7 +51,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "furnished-photography",
+   "id": "experimental-scholar",
    "metadata": {},
    "source": [
     "#### Sample Image\n",
@@ -62,7 +62,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "wicked-protection",
+   "id": "essential-cream",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -74,7 +74,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "premier-concrete",
+   "id": "familiar-nurse",
    "metadata": {},
    "source": [
     "![data augmentation output 5 1](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_5_1.png)\n",
@@ -86,7 +86,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "distinct-trail",
+   "id": "marine-interaction",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -111,7 +111,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "addressed-browser",
+   "id": "peripheral-papua",
    "metadata": {},
    "source": [
     "## Spatial Augmentation\n",
@@ -133,7 +133,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "floppy-interview",
+   "id": "lesbian-script",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -145,7 +145,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "physical-moore",
+   "id": "hindu-peeing",
    "metadata": {},
    "source": [
     "![data augmentation output 12 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_12_0.png)\n",
@@ -159,7 +159,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "primary-equality",
+   "id": "political-latino",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -168,7 +168,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "assured-citizen",
+   "id": "automatic-league",
    "metadata": {},
    "source": [
     "![data augmentation output 15 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_15_0.png)\n",
@@ -182,7 +182,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "headed-webcam",
+   "id": "exciting-vertex",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -191,7 +191,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "corporate-sword",
+   "id": "handy-variance",
    "metadata": {},
    "source": [
     "![data augmentation output 18 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_18_0.png)\n",
@@ -208,7 +208,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "coupled-snapshot",
+   "id": "desperate-reward",
    "metadata": {},
    "source": [
     "```\n",
@@ -219,7 +219,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "identical-stamp",
+   "id": "spiritual-characterization",
    "metadata": {},
    "source": [
     "So by setting this to 0.5 we randomly change the brightness of the image to a value between 50% ($1-0.5$) and 150% ($1+0.5$) of the original image."
@@ -228,7 +228,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "valid-walter",
+   "id": "suited-clear",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -237,7 +237,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "extended-halloween",
+   "id": "military-behavior",
    "metadata": {},
    "source": [
     "![data augmentation output 23 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_23_0.png)\n",
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "worse-petersburg",
+   "id": "primary-nicaragua",
    "metadata": {},
    "source": [
     "```\n",
@@ -266,7 +266,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "loved-business",
+   "id": "musical-repository",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -275,7 +275,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "comparable-heather",
+   "id": "hungry-hindu",
    "metadata": {},
    "source": [
     "![data augmentation output 26 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_26_0.png)\n",
@@ -289,7 +289,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "acting-setting",
+   "id": "rational-present",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -298,7 +298,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "incorporated-serum",
+   "id": "wooden-setup",
    "metadata": {},
    "source": [
     "![data augmentation output 29 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_29_0.png)\n",
@@ -312,7 +312,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "previous-timing",
+   "id": "determined-wound",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -321,7 +321,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "convinced-facial",
+   "id": "later-amplifier",
    "metadata": {},
    "source": [
     "![data augmentation output 32 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_32_0.png)\n",
@@ -335,7 +335,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "union-northern",
+   "id": "eastern-cinema",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -348,7 +348,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "expressed-respondent",
+   "id": "excellent-nickel",
    "metadata": {},
    "source": [
     "![data augmentation output 35 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_35_0.png)\n",
@@ -362,7 +362,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "chicken-royal",
+   "id": "dressed-orchestra",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -371,7 +371,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "improved-sitting",
+   "id": "speaking-voltage",
    "metadata": {},
    "source": [
     "![data augmentation output 38 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_38_0.png)\n",
@@ -384,7 +384,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "collect-ghana",
+   "id": "compact-equilibrium",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "leading-carroll",
+   "id": "collaborative-settle",
    "metadata": {},
    "source": [
     "![data augmentation output 41 0](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/gluon/transforms/output_41_0.png)"
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/data/datasets.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/data/datasets.ipynb
index c8a30f6..8a07f6e 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/data/datasets.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/data/datasets.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "electoral-programming",
+   "id": "leading-cycling",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -37,7 +37,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hungarian-generator",
+   "id": "cognitive-cursor",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -53,7 +53,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "animal-valuable",
+   "id": "annual-capability",
    "metadata": {},
    "source": [
     "A key feature of a `Dataset` is the __*ability to retrieve a single sample given an index*__. Our random data and labels were generated in memory, so this `ArrayDataset` doesn't have to load anything from disk, but the interface is the same for all `Dataset`'s."
@@ -62,7 +62,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "fifth-maria",
+   "id": "knowing-internship",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -77,7 +77,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "adapted-script",
+   "id": "olympic-success",
    "metadata": {},
    "source": [
     "(\n",
@@ -99,7 +99,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "lucky-cylinder",
+   "id": "empty-rogers",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -114,7 +114,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "everyday-diving",
+   "id": "recent-scoop",
    "metadata": {},
    "source": [
     "`X_batch has shape (5, 3), and y_batch has shape (5, 1)` <!--notebook-skip-line-->\n",
@@ -138,7 +138,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "opposite-implementation",
+   "id": "hispanic-toronto",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -153,7 +153,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "invisible-harvey",
+   "id": "unlimited-annual",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -174,7 +174,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fifth-crash",
+   "id": "remarkable-stake",
    "metadata": {},
    "source": [
     "`Data type: <class 'numpy.float32'>`<!--notebook-skip-line-->\n",
@@ -195,7 +195,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "arabic-market",
+   "id": "informative-satellite",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -206,7 +206,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "assured-checklist",
+   "id": "acoustic-injection",
    "metadata": {},
    "source": [
     "With both `DataLoader`s defined, we can now train a model to classify each image and evaluate the validation loss at each epoch. Our Fashion MNIST dataset has 10 classes including shirt, dress, sneakers, etc. We define a simple fully connected network with a softmax output and use cross entropy as our loss."
@@ -215,7 +215,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "falling-character",
+   "id": "diagnostic-occupation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -242,7 +242,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "judicial-internship",
+   "id": "hispanic-status",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -282,7 +282,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "freelance-pharmaceutical",
+   "id": "opened-stretch",
    "metadata": {},
    "source": [
     "`Epoch 0, training loss: 0.54, validation loss: 0.45`<!--notebook-skip-line-->\n",
@@ -301,7 +301,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dying-hungarian",
+   "id": "aerial-current",
    "metadata": {},
    "source": [
     "```\n",
@@ -316,7 +316,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "textile-rebel",
+   "id": "liked-trout",
    "metadata": {},
    "source": [
     "You can download the Caltech 101 dataset if you don't already have images to work with for this example, but please note the download is 126MB."
@@ -325,7 +325,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "published-persian",
+   "id": "least-accident",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -347,7 +347,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "wired-percentage",
+   "id": "wrong-swedish",
    "metadata": {},
    "source": [
     "After downloading and extracting the data archive, we have two folders: `data/101_ObjectCategories` and `data/101_ObjectCategories_test`. We load the data into separate training and testing  [ImageFolderDataset](../../../../api/gluon/data/vision/datasets/index.rst#mxnet.gluon.data.vision.datasets.ImageFolderDataset)s."
@@ -356,7 +356,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "trying-heavy",
+   "id": "electric-enough",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -366,7 +366,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "genetic-basketball",
+   "id": "biological-happiness",
    "metadata": {},
    "source": [
     "We instantiate the [ImageFolderDataset](../../../../api/gluon/data/vision/datasets/index.rst#mxnet.gluon.data.vision.datasets.ImageFolderDataset)s by providing the path to the data, and the folder structure will be traversed to determine which image classes are available and which images correspond to each class. You must take care to ensure the same classes are both the training and testing datasets, otherwise the label encodings can get muddled.\n",
@@ -377,7 +377,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "gorgeous-rotation",
+   "id": "internal-terrain",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -387,7 +387,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "straight-japanese",
+   "id": "occupied-numbers",
    "metadata": {},
    "source": [
     "Samples from these datasets are tuples of data and label. Images are loaded from disk, decoded and optionally transformed when the `__getitem__(i)` method is called (equivalent to `train_dataset[i]`).\n",
@@ -398,7 +398,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "mechanical-antibody",
+   "id": "brief-competition",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -416,7 +416,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "breathing-vector",
+   "id": "impossible-cocktail",
    "metadata": {},
    "source": [
     "`Data type: <class 'numpy.uint8'>`<!--notebook-skip-line-->\n",
@@ -445,7 +445,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "aware-musician",
+   "id": "changed-summary",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -471,7 +471,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "controlled-examination",
+   "id": "documentary-blake",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -484,7 +484,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "phantom-stone",
+   "id": "dominant-mixture",
    "metadata": {},
    "source": [
     "<!-- INSERT SOURCE DOWNLOAD BUTTONS -->"
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/image/info_gan.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/image/info_gan.ipynb
index b82e8f8..0305c4a 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/image/info_gan.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/image/info_gan.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "noted-trash",
+   "id": "functioning-gates",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -32,7 +32,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "clinical-roberts",
+   "id": "suffering-complement",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -57,7 +57,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "electoral-store",
+   "id": "center-segment",
    "metadata": {},
    "source": [
     "The latent code vector can contain several variables, which can be categorical and/or continuous. We set `n_continuous` to 2 and `n_categories` to 10."
@@ -66,7 +66,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "irish-ordinary",
+   "id": "pressed-reservation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -79,7 +79,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "urban-principal",
+   "id": "quantitative-interval",
    "metadata": {},
    "source": [
     "Some functions to load and normalize images."
@@ -88,7 +88,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "regional-latin",
+   "id": "billion-reach",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -104,7 +104,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "racial-disposition",
+   "id": "innovative-enzyme",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -120,7 +120,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "protective-armenia",
+   "id": "terminal-nurse",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -141,7 +141,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "facial-morocco",
+   "id": "greek-taiwan",
    "metadata": {},
    "source": [
     "Load the dataset `lfw_dataset` which contains images of celebrities."
@@ -150,7 +150,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "opponent-garden",
+   "id": "driving-thursday",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -168,7 +168,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "actual-translation",
+   "id": "worse-opposition",
    "metadata": {},
    "source": [
     "## Generator\n",
@@ -178,7 +178,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "concerned-process",
+   "id": "liquid-alexandria",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -212,7 +212,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "detected-counter",
+   "id": "sixth-spell",
    "metadata": {},
    "source": [
     "## Discriminator\n",
@@ -222,7 +222,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "extensive-perth",
+   "id": "hidden-judge",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -264,7 +264,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "global-nowhere",
+   "id": "bacterial-purpose",
    "metadata": {},
    "source": [
     "The InfoGAN has the following layout.\n",
@@ -279,7 +279,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "operating-basis",
+   "id": "substantial-governor",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -301,7 +301,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "knowing-concentrate",
+   "id": "olympic-ground",
    "metadata": {},
    "source": [
     "Create vectors with real (=1) and fake labels (=0)."
@@ -310,7 +310,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "russian-encyclopedia",
+   "id": "extraordinary-weekly",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -320,7 +320,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "historical-beach",
+   "id": "suspended-winter",
    "metadata": {},
    "source": [
     "Load a pretrained model."
@@ -329,7 +329,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "advised-undergraduate",
+   "id": "trying-albany",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -340,7 +340,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "thermal-seeking",
+   "id": "progressive-banking",
    "metadata": {},
    "source": [
     "There are 2 differences between InfoGAN and DCGAN: the extra latent code and the Q network to estimate the code.\n",
@@ -361,7 +361,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "floating-enclosure",
+   "id": "modified-logan",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -372,7 +372,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "worth-problem",
+   "id": "selective-evanescence",
    "metadata": {},
    "source": [
     "This function samples `c`, `z`, and concatenates them to create the generator input."
@@ -381,7 +381,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "recent-reserve",
+   "id": "antique-month",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -399,7 +399,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rental-highland",
+   "id": "sufficient-shakespeare",
    "metadata": {},
    "source": [
     "Define the training loop.\n",
@@ -413,7 +413,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "outer-torture",
+   "id": "toxic-stick",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -490,7 +490,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "directed-graphic",
+   "id": "experienced-operation",
    "metadata": {},
    "source": [
     "## Image similarity\n",
@@ -502,7 +502,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "impressive-participation",
+   "id": "falling-terrorist",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -517,7 +517,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "intended-climb",
+   "id": "sudden-armor",
    "metadata": {},
    "source": [
     "Nearest neighbor function, which takes a matrix of features and an input feature vector. It returns the 3 closest features."
@@ -526,7 +526,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "catholic-vinyl",
+   "id": "functional-anchor",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -538,7 +538,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "political-vacuum",
+   "id": "graduate-worse",
    "metadata": {},
    "source": [
     "A helper function to visualize image data."
@@ -547,7 +547,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "valuable-arthur",
+   "id": "finnish-desire",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -558,7 +558,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "acute-festival",
+   "id": "determined-friend",
    "metadata": {},
    "source": [
     "Take some images from the test data, obtain its feature vector from `discriminator.D[:11]` and plot images of the corresponding closest vectors in the feature space."
@@ -567,7 +567,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "judicial-financing",
+   "id": "strategic-graduation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -605,7 +605,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "competent-shower",
+   "id": "dependent-going",
    "metadata": {},
    "source": [
     "![png](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/info_gan/output.png)<!--notebook-skip-line-->\n",
@@ -621,7 +621,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "oriented-bobby",
+   "id": "pressing-penetration",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -646,7 +646,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rocky-kingston",
+   "id": "maritime-hungarian",
    "metadata": {},
    "source": [
     "Load the file with TSNEViewer. You can now inspect whether similiar looking images are grouped nearby or not.\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/image/mnist.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/image/mnist.ipynb
index e290fe7..ab98a36 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/image/mnist.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/image/mnist.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "empirical-portal",
+   "id": "imperial-favorite",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -45,7 +45,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dressed-milwaukee",
+   "id": "united-variation",
    "metadata": {},
    "source": [
     "```\n",
@@ -55,7 +55,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rough-pearl",
+   "id": "romance-stockholm",
    "metadata": {},
    "source": [
     "## Loading Data\n",
@@ -68,7 +68,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "occupational-nigeria",
+   "id": "ultimate-atlanta",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -82,7 +82,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "motivated-blogger",
+   "id": "atomic-rating",
    "metadata": {},
    "source": [
     "After running the above source code, the entire MNIST dataset should be fully loaded into memory. Note that for large datasets it is not feasible to pre-load the entire dataset first like we did here. What is needed is a mechanism by which we can quickly and efficiently stream data directly from the source. MXNet Data iterators come to the rescue here by providing exactly that. Data iterator is the mechanism by which we feed input data into an MXNet training algorithm and they are v [...]
@@ -96,7 +96,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "broad-chain",
+   "id": "vital-teaching",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -107,7 +107,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "senior-aggregate",
+   "id": "everyday-deviation",
    "metadata": {},
    "source": [
     "## Approaches\n",
@@ -120,7 +120,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "focused-constitution",
+   "id": "fifty-omega",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -133,7 +133,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "serial-spoke",
+   "id": "representative-ontario",
    "metadata": {},
    "source": [
     "### Define a network: Multilayer Perceptron\n",
@@ -153,7 +153,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "suspected-retro",
+   "id": "catholic-country",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -166,7 +166,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "micro-cocktail",
+   "id": "clinical-bleeding",
    "metadata": {},
    "source": [
     "#### Initialize parameters and optimizer\n",
@@ -184,7 +184,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "valid-ambassador",
+   "id": "ordered-anxiety",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -196,7 +196,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "aggressive-utility",
+   "id": "emerging-processor",
    "metadata": {},
    "source": [
     "#### Train the network\n",
@@ -221,7 +221,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "moderate-sixth",
+   "id": "annual-brother",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -265,7 +265,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fourth-calendar",
+   "id": "duplicate-least",
    "metadata": {},
    "source": [
     "#### Prediction\n",
@@ -276,7 +276,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sufficient-philippines",
+   "id": "returning-headquarters",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -303,7 +303,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "turned-judgment",
+   "id": "breathing-project",
    "metadata": {},
    "source": [
     "If everything went well, we should see an accuracy value that is around 0.96, which means that we are able to accurately predict the digit in 96% of test images. This is a pretty good result. But as we will see in the next part of this tutorial, we can do a lot better than that.\n",
@@ -323,7 +323,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "current-parallel",
+   "id": "initial-fitness",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -352,7 +352,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "embedded-labor",
+   "id": "serial-christianity",
    "metadata": {},
    "source": [
     "We just defined the forward function here, and the backward function to compute gradients\n",
@@ -365,7 +365,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "loose-appointment",
+   "id": "unusual-entrance",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -374,7 +374,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "honest-today",
+   "id": "unlike-indication",
    "metadata": {},
    "source": [
     "![mnist conv mnist](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/conv_mnist.png){ width=500px }\n",
@@ -393,7 +393,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "relative-controversy",
+   "id": "direct-rainbow",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -405,7 +405,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "saving-society",
+   "id": "adequate-progress",
    "metadata": {},
    "source": [
     "#### Training"
@@ -414,7 +414,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "secret-motel",
+   "id": "going-march",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -457,7 +457,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "intelligent-sampling",
+   "id": "protecting-replacement",
    "metadata": {},
    "source": [
     "#### Prediction\n",
@@ -468,7 +468,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "athletic-toilet",
+   "id": "atmospheric-gather",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -495,7 +495,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "photographic-bryan",
+   "id": "involved-behavior",
    "metadata": {},
    "source": [
     "If all went well, we should see a higher accuracy metric for predictions made using LeNet. With CNN we should be able to correctly predict around 98% of all test images.\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/loss/custom-loss.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/loss/custom-loss.ipynb
index 60c6bcd..992cbb3 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/loss/custom-loss.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/loss/custom-loss.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "simplified-conducting",
+   "id": "cardiac-practice",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -36,7 +36,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "opening-condition",
+   "id": "terminal-canon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -49,7 +49,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "spread-wrist",
+   "id": "immune-coordination",
    "metadata": {},
    "source": [
     "### What is Contrastive Loss\n",
@@ -70,7 +70,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "turned-fields",
+   "id": "global-arthur",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -92,7 +92,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "average-throw",
+   "id": "dutch-revelation",
    "metadata": {},
    "source": [
     "### Define the Siamese network\n",
@@ -104,7 +104,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "traditional-operator",
+   "id": "common-retailer",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -127,7 +127,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "improving-blood",
+   "id": "lonely-panic",
    "metadata": {},
    "source": [
     "### Prepare the training data\n",
@@ -138,7 +138,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "wicked-religious",
+   "id": "standing-wedding",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -169,7 +169,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "distributed-currency",
+   "id": "unusual-balance",
    "metadata": {},
    "source": [
     "We train the network on a subset of the data, the  [*Tifinagh*](https://www.omniglot.com/writing/tifinagh.htm) alphabet. Once the model is trained we test it on the [*Inuktitut*](https://www.omniglot.com/writing/inuktitut.htm) alphabet."
@@ -178,7 +178,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "circular-contract",
+   "id": "conceptual-religion",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -199,7 +199,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "baking-campbell",
+   "id": "skilled-league",
    "metadata": {},
    "source": [
     "Following code plots some examples from the test dataset."
@@ -208,7 +208,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "severe-reform",
+   "id": "legislative-individual",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -224,7 +224,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "verified-shepherd",
+   "id": "electrical-spain",
    "metadata": {},
    "source": [
     "![example1](/_static/inuktitut_1.png)\n",
@@ -238,7 +238,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "nominated-storage",
+   "id": "social-brazil",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "placed-gates",
+   "id": "grave-calibration",
    "metadata": {},
    "source": [
     "Start the training loop:"
@@ -259,7 +259,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "decimal-russia",
+   "id": "auburn-federal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -277,7 +277,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "handmade-curtis",
+   "id": "upset-witness",
    "metadata": {},
    "source": [
     "### Test the trained Siamese network\n",
@@ -287,7 +287,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "specific-mayor",
+   "id": "furnished-programming",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -307,7 +307,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "responsible-element",
+   "id": "introductory-internship",
    "metadata": {},
    "source": [
     "![example2](/_static/inuktitut_2.png)\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/loss/kl_divergence.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/loss/kl_divergence.ipynb
index 8506a8e..d40e2a7 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/loss/kl_divergence.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/loss/kl_divergence.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "subtle-irrigation",
+   "id": "maritime-divide",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -33,7 +33,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "attended-spectrum",
+   "id": "aggregate-opportunity",
    "metadata": {},
    "source": [
     "```\n",
@@ -62,7 +62,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "korean-laser",
+   "id": "medical-equilibrium",
    "metadata": {},
    "source": [
     "We can see visually that distributions 1 and 2 are more similar than distributions 1 and 3. We'll confirm this result using [KLDivLoss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.KLDivLoss). When using [KLDivLoss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.KLDivLoss) with the default `from_logits=True` we need:\n",
@@ -77,7 +77,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "neutral-challenge",
+   "id": "successful-virus",
    "metadata": {},
    "source": [
     "```\n",
@@ -96,7 +96,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "overall-southwest",
+   "id": "recreational-round",
    "metadata": {},
    "source": [
     "```\n",
@@ -111,7 +111,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "instrumental-miller",
+   "id": "broadband-namibia",
    "metadata": {},
    "source": [
     "As expected we see a smaller KL Divergence for distributions 1 & 2 than 1 & 3. And we also see the KL Divergence of a distribution with itself is 0.\n",
@@ -123,7 +123,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "vulnerable-nightlife",
+   "id": "discrete-worry",
    "metadata": {},
    "source": [
     "```\n",
@@ -133,7 +133,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bigger-leeds",
+   "id": "fifth-maryland",
    "metadata": {},
    "source": [
     "We can pass this to our [KLDivLoss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.KLDivLoss) loss function (with `from_logits=False`) and get the same KL Divergence between `dist_1` and `dist_2` as before, because the [log_softmax](../../../../api/npx/generated/mxnet.npx.log_softmax.rst) is applied within the loss function."
@@ -141,7 +141,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "electronic-celebration",
+   "id": "comfortable-spectrum",
    "metadata": {},
    "source": [
     "```\n",
@@ -158,7 +158,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "breeding-motivation",
+   "id": "mysterious-reset",
    "metadata": {},
    "source": [
     "```\n",
@@ -169,7 +169,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "determined-schedule",
+   "id": "identical-bumper",
    "metadata": {},
    "source": [
     "### Advanced: Common Support\n",
@@ -179,7 +179,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continued-foster",
+   "id": "chemical-remedy",
    "metadata": {},
    "source": [
     "```\n",
@@ -189,7 +189,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "circular-south",
+   "id": "quick-links",
    "metadata": {},
    "source": [
     "```\n",
@@ -200,7 +200,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "secure-hours",
+   "id": "entertaining-charleston",
    "metadata": {},
    "source": [
     "We can see that the result is `nan`, which will obviously cause issues when calculating the gradient. One option is to add a small value `epsilon` to all of the probabilities, and this is already done for the target distribution (using the value of 1e-12).\n",
@@ -212,7 +212,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "shared-anger",
+   "id": "rural-country",
    "metadata": {},
    "source": [
     "```\n",
@@ -223,7 +223,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "given-result",
+   "id": "blocked-allah",
    "metadata": {},
    "source": [
     "```\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/loss/loss.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/loss/loss.ipynb
index ab749ee..2c122bd 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/loss/loss.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/loss/loss.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "resident-colonial",
+   "id": "stainless-issue",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -36,7 +36,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "double-berlin",
+   "id": "polish-mailing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -49,7 +49,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "numerous-facing",
+   "id": "mighty-coordinate",
    "metadata": {},
    "source": [
     "## Basic Usages\n",
@@ -60,7 +60,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hybrid-relevance",
+   "id": "capital-appeal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -69,7 +69,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rational-indian",
+   "id": "thousand-sacramento",
    "metadata": {},
    "source": [
     "And then feed two inputs to compute the elementwise loss values."
@@ -78,7 +78,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "suspected-island",
+   "id": "continuous-constitutional",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -89,7 +89,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "wireless-computer",
+   "id": "moderate-violation",
    "metadata": {},
    "source": [
     "These values should be equal to the math definition: $0.5\\|x-y\\|^2$."
@@ -98,7 +98,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "angry-process",
+   "id": "threatened-trainer",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -107,7 +107,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "patient-authentication",
+   "id": "heard-strap",
    "metadata": {},
    "source": [
     "Next we show how to use a loss function to compute gradients."
@@ -116,7 +116,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "intelligent-tribute",
+   "id": "dominican-battery",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -130,7 +130,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "double-arrival",
+   "id": "split-phenomenon",
    "metadata": {},
    "source": [
     "We can compute the gradients w.r.t. the loss function."
@@ -139,7 +139,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "everyday-webmaster",
+   "id": "electronic-constraint",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -149,7 +149,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "formal-concern",
+   "id": "adjacent-charter",
    "metadata": {},
    "source": [
     "## Loss functions\n",
@@ -162,7 +162,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "neutral-grass",
+   "id": "suspended-cricket",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -181,7 +181,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pressed-coalition",
+   "id": "retired-laugh",
    "metadata": {},
    "source": [
     "Then plot the classification losses with label values fixed to be 1."
@@ -190,7 +190,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "heated-mouse",
+   "id": "continued-therapy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -202,7 +202,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "printable-diversity",
+   "id": "joined-milton",
    "metadata": {},
    "source": [
     "#### [L1 Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.L1Loss)\n",
@@ -217,7 +217,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "southwest-wages",
+   "id": "proof-lecture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -226,7 +226,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "generic-opposition",
+   "id": "important-privilege",
    "metadata": {},
    "source": [
     "#### [L2 Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.L2Loss)\n",
@@ -241,7 +241,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "green-yeast",
+   "id": "resident-destination",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -250,7 +250,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "integral-drinking",
+   "id": "young-avenue",
    "metadata": {},
    "source": [
     "#### [Huber Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.HuberLoss)\n",
@@ -268,7 +268,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "streaming-equipment",
+   "id": "recognized-adobe",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -277,7 +277,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "endangered-musical",
+   "id": "photographic-sapphire",
    "metadata": {},
    "source": [
     "An example of where Huber Loss is used can be found in [Deep Q Network](https://openai.com/blog/openai-baselines-dqn/).\n",
@@ -292,7 +292,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "contrary-tribune",
+   "id": "informed-behalf",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -301,7 +301,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "equal-glucose",
+   "id": "liquid-actor",
    "metadata": {},
    "source": [
     "#### [Cross Entropy Loss with Softmax](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.SoftmaxCrossEntropyLoss)\n",
@@ -319,7 +319,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "dental-purpose",
+   "id": "cosmetic-count",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -331,7 +331,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "abroad-centre",
+   "id": "hundred-democracy",
    "metadata": {},
    "source": [
     "#### [Hinge Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.HingeLoss)\n",
@@ -346,7 +346,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "joined-marijuana",
+   "id": "significant-youth",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -355,7 +355,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "underlying-meeting",
+   "id": "equal-nursery",
    "metadata": {},
    "source": [
     "#### [Logistic Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.LogisticLoss)\n",
@@ -370,7 +370,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "vocal-manner",
+   "id": "accessible-crowd",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -379,7 +379,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "palestinian-assessment",
+   "id": "heard-official",
    "metadata": {},
    "source": [
     "#### [Kullback-Leibler Divergence Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.KLDivLoss)\n",
@@ -399,7 +399,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "exciting-implement",
+   "id": "sharp-volleyball",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -413,7 +413,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "lonely-death",
+   "id": "outside-olympus",
    "metadata": {},
    "source": [
     "#### [Triplet Loss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.TripletLoss)\n",
@@ -454,7 +454,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "acceptable-romania",
+   "id": "bearing-yukon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -467,7 +467,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "standing-cedar",
+   "id": "sunset-central",
    "metadata": {},
    "source": [
     "Now let's make `y` the opposite of `x`, so we set the label `-1` and the function will return  $$ \\sum_i cos\\_sim(input1, input2) $$"
@@ -476,7 +476,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "strong-cylinder",
+   "id": "speaking-virgin",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -489,7 +489,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "immediate-cardiff",
+   "id": "latest-knight",
    "metadata": {},
    "source": [
     "#### [PoissonNLLLoss](../../../../api/gluon/loss/index.rst#mxnet.gluon.loss.PoissonNLLLoss)\n",
@@ -518,7 +518,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "arranged-tunnel",
+   "id": "senior-dress",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -530,7 +530,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "marked-brain",
+   "id": "accurate-tumor",
    "metadata": {},
    "source": [
     "## Conclusion\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/fit_api_tutorial.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/fit_api_tutorial.ipynb
index 756c097..dd41113 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/fit_api_tutorial.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/fit_api_tutorial.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "medium-shell",
+   "id": "controlling-helen",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -41,7 +41,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "empirical-market",
+   "id": "armed-equipment",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -57,7 +57,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "expected-christopher",
+   "id": "bound-disco",
    "metadata": {},
    "source": [
     "## Dataset\n",
@@ -73,7 +73,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "entitled-commerce",
+   "id": "traditional-vienna",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -87,7 +87,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "embedded-sunset",
+   "id": "minus-prophet",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -101,7 +101,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "advance-amendment",
+   "id": "prompt-novelty",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -113,7 +113,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "exciting-slide",
+   "id": "generous-lending",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -128,7 +128,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "invalid-officer",
+   "id": "billion-bargain",
    "metadata": {},
    "source": [
     "## Model and Optimizers\n",
@@ -139,7 +139,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "marked-circumstances",
+   "id": "primary-evolution",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -149,7 +149,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "strategic-strategy",
+   "id": "experimental-alabama",
    "metadata": {},
    "source": [
     "We will be using `SoftmaxCrossEntropyLoss` as the loss function since this is a multi-class classification problem. We will be using `sgd` (Stochastic Gradient Descent) as the optimizer.\n",
@@ -159,7 +159,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "champion-funds",
+   "id": "emerging-joshua",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -168,7 +168,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "bearing-original",
+   "id": "close-repeat",
    "metadata": {},
    "source": [
     "Let's define the trainer object for training the model."
@@ -177,7 +177,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hired-newton",
+   "id": "behavioral-occurrence",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -189,7 +189,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "basic-brook",
+   "id": "compressed-mayor",
    "metadata": {},
    "source": [
     "## Train using Fit API\n",
@@ -204,7 +204,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "thorough-insurance",
+   "id": "geographic-comparison",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -228,7 +228,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continental-jason",
+   "id": "positive-religious",
    "metadata": {},
    "source": [
     "```text\n",
@@ -244,7 +244,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "innovative-piano",
+   "id": "outer-teens",
    "metadata": {},
    "source": [
     "### Advanced Usage\n",
@@ -272,7 +272,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "destroyed-atlanta",
+   "id": "potential-wichita",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -304,7 +304,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "periodic-directory",
+   "id": "sudden-earth",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -319,7 +319,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "laughing-consortium",
+   "id": "textile-plumbing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -350,7 +350,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fifth-classification",
+   "id": "extensive-military",
    "metadata": {},
    "source": [
     "```text\n",
@@ -371,7 +371,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "binding-train",
+   "id": "fewer-roads",
    "metadata": {},
    "source": [
     "You can load the saved model, by using the `load_parameters` API in Gluon. For more details refer to the [Loading model parameters from file tutorial](../blocks/save_load_params.ipynb#Loading-model-parameters-from-file)"
@@ -380,7 +380,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "spectacular-boulder",
+   "id": "solar-closing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -390,7 +390,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "careful-wallace",
+   "id": "sweet-gregory",
    "metadata": {},
    "source": [
     "## Next Steps\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_finder.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_finder.ipynb
index 05b170b..a9167e1 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_finder.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_finder.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "communist-syracuse",
+   "id": "blessed-tiger",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -51,7 +51,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "framed-hours",
+   "id": "dirty-playback",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -108,7 +108,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "vulnerable-furniture",
+   "id": "ultimate-poster",
    "metadata": {},
    "source": [
     "We also adjust our `DataLoader` so that it continuously provides batches of data and doesn't stop after a single epoch. We can then call `iteration` as many times as required for the loss to diverge as part of the Learning Rate Finder process. We implement a custom `BatchSampler` for this, that keeps returning random indices of samples to be included in the next batch. We use the CIFAR-10 dataset for image classification to test our Learning Rate Finder."
@@ -117,7 +117,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "reliable-representative",
+   "id": "middle-india",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -154,7 +154,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "continuing-struggle",
+   "id": "returning-medication",
    "metadata": {},
    "source": [
     "## Implementation\n",
@@ -165,7 +165,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "intellectual-telescope",
+   "id": "meaningful-newark",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -230,7 +230,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "occupational-associate",
+   "id": "other-exemption",
    "metadata": {},
    "source": [
     "You can define the `LRFinderStoppingCriteria` as you wish, but empirical testing suggests using a smoothed average gives a more consistent stopping rule (see `smoothing`). We stop when the smoothed average of the loss exceeds twice the initial loss, assuming there have been a minimum number of iterations (see `min_iter`)."
@@ -239,7 +239,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "blank-board",
+   "id": "computational-skating",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -272,7 +272,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "powered-conclusion",
+   "id": "hired-forth",
    "metadata": {},
    "source": [
     "## Usage\n",
@@ -283,7 +283,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "diverse-translator",
+   "id": "iraqi-saying",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -297,7 +297,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pregnant-techno",
+   "id": "lightweight-shipping",
    "metadata": {},
    "source": [
     "![png](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_finder/finder_plot.png) <!--notebook-skip-line-->\n",
@@ -309,7 +309,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "italian-remains",
+   "id": "sized-corporation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -325,7 +325,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "clean-layout",
+   "id": "collective-retail",
    "metadata": {},
    "source": [
     "Iteration: 0, Loss: 2.785 <!--notebook-skip-line-->\n",
@@ -346,7 +346,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ancient-cookie",
+   "id": "alive-course",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -364,7 +364,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "alike-bearing",
+   "id": "greater-truth",
    "metadata": {},
    "source": [
     "Iteration: 0, Loss: 2.6469 <!--notebook-skip-line-->\n",
@@ -385,7 +385,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "involved-personal",
+   "id": "labeled-stream",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -403,7 +403,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "discrete-footage",
+   "id": "headed-jewelry",
    "metadata": {},
    "source": [
     "Iteration: 0, Loss: 2.605 <!--notebook-skip-line-->\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules.ipynb
index e799d4b..c2d3c9b 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "regulation-reply",
+   "id": "hollow-making",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -38,7 +38,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ranking-killer",
+   "id": "bridal-scoop",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -55,7 +55,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "stopped-marsh",
+   "id": "regulated-furniture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -71,7 +71,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "macro-height",
+   "id": "anticipated-introduction",
    "metadata": {},
    "source": [
     "## Schedules\n",
@@ -86,7 +86,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "formal-copyright",
+   "id": "growing-forward",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -97,7 +97,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "domestic-library",
+   "id": "drawn-image",
    "metadata": {},
    "source": [
     "![lr factor](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/factor.png) <!--notebook-skip-line-->\n",
@@ -111,7 +111,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "equal-adobe",
+   "id": "available-fancy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -122,7 +122,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "democratic-relationship",
+   "id": "initial-pharmaceutical",
    "metadata": {},
    "source": [
     "![lr multifactor](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/multifactor.png) <!--notebook-skip-line-->\n",
@@ -136,7 +136,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sudden-naples",
+   "id": "hollow-mainstream",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -146,7 +146,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "peripheral-oklahoma",
+   "id": "prostate-bulgarian",
    "metadata": {},
    "source": [
     "![lr poly](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/polynomial.png) <!--notebook-skip-line-->\n",
@@ -164,7 +164,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "characteristic-procedure",
+   "id": "nervous-assembly",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -189,7 +189,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "accessory-iraqi",
+   "id": "raised-harassment",
    "metadata": {},
    "source": [
     "![lr cosine](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/cosine.png) <!--notebook-skip-line-->\n",
@@ -205,7 +205,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "automotive-month",
+   "id": "professional-sustainability",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -245,7 +245,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "vertical-disney",
+   "id": "armed-integer",
    "metadata": {},
    "source": [
     "We then initialize our network (technically deferred until we pass the first batch) and define the loss."
@@ -254,7 +254,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "emerging-difficulty",
+   "id": "phantom-infrastructure",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -266,7 +266,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "chicken-learning",
+   "id": "maritime-sample",
    "metadata": {},
    "source": [
     "We're now ready to create our schedule, and in this example we opt for a stepwise decay schedule using `MultiFactorScheduler`. Since we're only training a demonstration model for a limited number of epochs (10 in total) we will exaggerate the schedule and drop the learning rate by 90% after the 4th, 7th and 9th epochs. We call these steps, and the drop occurs _after_ the step index. Schedules are defined for iterations (i.e. training batches), so we must represent our steps in itera [...]
@@ -275,7 +275,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "prescription-radar",
+   "id": "harmful-license",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -289,7 +289,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "medieval-grill",
+   "id": "abandoned-pixel",
    "metadata": {},
    "source": [
     "```\n",
@@ -300,7 +300,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "compound-disorder",
+   "id": "computational-debate",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -309,7 +309,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "after-spine",
+   "id": "optional-chosen",
    "metadata": {},
    "source": [
     "**We create our `Optimizer` and pass the schedule via the `lr_scheduler` parameter.** In this example we're using Stochastic Gradient Descent."
@@ -318,7 +318,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "behavioral-termination",
+   "id": "alone-trust",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -327,7 +327,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "athletic-hypothesis",
+   "id": "fabulous-amsterdam",
    "metadata": {},
    "source": [
     "And we use this optimizer (with schedule) in our `Trainer` and train for 10 epochs. Alternatively, we could have set the `optimizer` to the string `sgd`, and pass a dictionary of the optimizer parameters directly to the trainer using `optimizer_params`."
@@ -336,7 +336,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "swedish-rehabilitation",
+   "id": "external-campbell",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -346,7 +346,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "noble-extension",
+   "id": "tamil-tutorial",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -378,7 +378,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "essential-intervention",
+   "id": "worth-wrist",
    "metadata": {},
    "source": [
     "Epoch: 1; Batch 1; Loss 2.304071; LR 0.030000 <!--notebook-skip-line-->\n",
@@ -414,7 +414,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "average-therapy",
+   "id": "encouraging-franchise",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -458,7 +458,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cathedral-relationship",
+   "id": "sixth-butter",
    "metadata": {},
    "source": [
     "Epoch: 1; Batch 1; Loss 2.334119; LR 0.030000 <!--notebook-skip-line-->\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules_advanced.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules_advanced.ipynb
index 19dd21f..1f9ad65 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules_advanced.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/learning_rates/learning_rate_schedules_advanced.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "noted-number",
+   "id": "infrared-trailer",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -33,7 +33,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "amateur-valentine",
+   "id": "connected-perth",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -48,7 +48,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "flying-gasoline",
+   "id": "complete-folder",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -64,7 +64,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fundamental-share",
+   "id": "smoking-petite",
    "metadata": {},
    "source": [
     "## Custom Schedule Shapes\n",
@@ -81,7 +81,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "sorted-plain",
+   "id": "endangered-deadline",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -111,7 +111,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ideal-flight",
+   "id": "elementary-manhattan",
    "metadata": {},
    "source": [
     "We look an example of a slanted triangular schedule that increases from a learning rate of 1 to 2, and back to 1 over 1000 iterations. Since we set `inc_fraction=0.2`, 200 iterations are used for the increasing stage, and 800 for the decreasing stage. After this, the schedule stays at the lower bound indefinitely."
@@ -120,7 +120,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "divided-waterproof",
+   "id": "promotional-kruger",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -130,7 +130,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "human-deadline",
+   "id": "muslim-sharing",
    "metadata": {},
    "source": [
     "![lr adv triangular](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_triangular.png) <!--notebook-skip-line-->\n",
@@ -144,7 +144,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "annual-chicken",
+   "id": "immediate-lewis",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -170,7 +170,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "exempt-production",
+   "id": "yellow-attitude",
    "metadata": {},
    "source": [
     "We look at an example of a cosine annealing schedule that smoothing decreases from a learning rate of 2 to 1 across 1000 iterations. After this, the schedule stays at the lower bound indefinietly."
@@ -179,7 +179,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "worse-socket",
+   "id": "informational-nylon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -189,7 +189,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "christian-canon",
+   "id": "hollow-pilot",
    "metadata": {},
    "source": [
     "![lr adv cosine](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_cosine.png) <!--notebook-skip-line-->\n",
@@ -209,7 +209,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adverse-automation",
+   "id": "analyzed-pencil",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -235,7 +235,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "needed-phoenix",
+   "id": "humanitarian-myrtle",
    "metadata": {},
    "source": [
     "As an example, we add a linear warm-up of the learning rate (from 0 to 1 over 250 iterations) to a stepwise decay schedule. We first create the `MultiFactorScheduler` (and set the `base_lr`) and then pass it to `LinearWarmUp` to add the warm-up at the start. We can use `LinearWarmUp` with any other schedule including `CosineAnnealingSchedule`."
@@ -244,7 +244,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "tropical-biodiversity",
+   "id": "isolated-librarian",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -256,7 +256,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "partial-apache",
+   "id": "another-depth",
    "metadata": {},
    "source": [
     "![lr adv warmup](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_warmup.png) <!--notebook-skip-line-->\n",
@@ -270,7 +270,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "bored-fifteen",
+   "id": "mineral-advancement",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -301,7 +301,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "median-undergraduate",
+   "id": "narrow-comfort",
    "metadata": {},
    "source": [
     "As an example, we apply learning rate cool-down to a `MultiFactorScheduler`. Starting the cool-down at iteration 1000, we reduce the learning rate linearly from 0.125 to 0.001 over 500 iterations, and hold the learning rate at 0.001 after this."
@@ -310,7 +310,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "nutritional-louis",
+   "id": "forty-survival",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -322,7 +322,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "satisfactory-citizen",
+   "id": "sitting-piece",
    "metadata": {},
    "source": [
     "![lr adv cooldown](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_cooldown.png) <!--notebook-skip-line-->\n",
@@ -336,7 +336,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "public-column",
+   "id": "musical-cholesterol",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -364,7 +364,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "unique-logistics",
+   "id": "hairy-labor",
    "metadata": {},
    "source": [
     "As an example, we linearly increase and then decrease the learning rate from 0.1 to 0.5 and back over 500 iterations (i.e. single triangular cycle), before reducing the learning rate further to 0.001 over the next 750 iterations (i.e. cool-down)."
@@ -373,7 +373,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "major-minimum",
+   "id": "boolean-equilibrium",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -383,7 +383,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "muslim-fortune",
+   "id": "minor-nicaragua",
    "metadata": {},
    "source": [
     "![lr adv onecycle](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_onecycle.png) <!--notebook-skip-line-->\n",
@@ -397,7 +397,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "significant-prayer",
+   "id": "brutal-requirement",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -432,7 +432,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "posted-lotus",
+   "id": "baking-handle",
    "metadata": {},
    "source": [
     "As an example, we implement the triangular cyclical schedule presented in [\"Cyclical Learning Rates for Training Neural Networks\" by Leslie N. Smith (2015)](https://arxiv.org/abs/1506.01186). We use slightly different terminology to the paper here because we use `cycle_length` that is twice the 'stepsize' used in the paper. We repeat cycles, each with a length of 500 iterations and lower and upper learning rate bounds of 0.5 and 2 respectively."
@@ -441,7 +441,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "mature-lobby",
+   "id": "third-environment",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -451,7 +451,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "utility-effect",
+   "id": "cubic-biodiversity",
    "metadata": {},
    "source": [
     "![lr adv cyclical](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_cyclical.png) <!--notebook-skip-line-->\n",
@@ -463,7 +463,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "superior-prompt",
+   "id": "stunning-forward",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -474,7 +474,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "animal-choir",
+   "id": "invisible-laptop",
    "metadata": {},
    "source": [
     "![lr adv sgdr](https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/doc/tutorials/lr_schedules/adv_sgdr.png) <!--notebook-skip-line-->\n",
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/normalization/index.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/normalization/index.ipynb
index 6467e4f..8f291c3 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/normalization/index.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/normalization/index.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "joined-sword",
+   "id": "considered-alfred",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -52,7 +52,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "facial-landing",
+   "id": "unknown-valuable",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -69,7 +69,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "identified-guatemala",
+   "id": "affiliated-village",
    "metadata": {},
    "source": [
     "### Activation Normalization\n",
@@ -103,7 +103,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "unexpected-worcester",
+   "id": "parental-march",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -113,7 +113,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "plastic-wheat",
+   "id": "affected-keeping",
    "metadata": {},
    "source": [
     "With MXNet Gluon we can apply batch normalization with the `mx.gluon.nn.BatchNorm` block. It can be created and used just like any other MXNet Gluon block (such as `Conv2D`). Its input will typically be unnormalized activations from the previous layer, and the output will be the normalized activations ready for the next layer. Since we're using data in NCHW format we can use the default axis."
@@ -122,7 +122,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "japanese-adolescent",
+   "id": "spanish-light",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -131,7 +131,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "sound-central",
+   "id": "satellite-pepper",
    "metadata": {},
    "source": [
     "We still need to initialize the block because it has a number of trainable parameters, as we'll see later on."
@@ -140,7 +140,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "adequate-surfing",
+   "id": "moral-handy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -149,7 +149,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "mounted-boutique",
+   "id": "physical-dutch",
    "metadata": {},
    "source": [
     "We can now run the network as we would during training (under `autograd.record` context scope).\n",
@@ -162,7 +162,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "federal-admission",
+   "id": "pressing-heather",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -175,7 +175,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "supreme-trinity",
+   "id": "finite-deposit",
    "metadata": {},
    "source": [
     "We can immediately see the activations have been scaled down and centered around zero. Activations are the same for each channel, because each channel was normalized independently. We can do a quick sanity check on these results, by manually calculating the batch mean and variance for each channel."
@@ -184,7 +184,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "unavailable-applicant",
+   "id": "exempt-lecture",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -196,7 +196,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "copyrighted-calvin",
+   "id": "painted-assets",
    "metadata": {},
    "source": [
     "And use these to scale the first entry in `data`, to confirm the `BatchNorm` calculation of `-1.324` was correct."
@@ -205,7 +205,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "hydraulic-oklahoma",
+   "id": "lasting-savings",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -215,7 +215,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "loaded-champion",
+   "id": "ambient-rapid",
    "metadata": {},
    "source": [
     "As mentioned before, `BatchNorm` has a number of parameters that update throughout training. 2 of the parameters are not updated in the typical fashion (using gradients), but instead are updated deterministically using exponential smoothing. We need to keep track of the average mean and variance of batches during training, so that we can use these values for normalization during inference.\n",
@@ -230,7 +230,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "statutory-education",
+   "id": "convinced-olive",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -240,7 +240,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "noted-relation",
+   "id": "regional-lewis",
    "metadata": {},
    "source": [
     "You should notice though that these running statistics do not match the batch statistics we just calculated. And instead they are just 10% of the value we'd expect. We see this because of the exponential average process, and because the `momentum` parameter of `BatchNorm` is equal to 0.9 : i.e. 10% of the new value, 90% of the old value (which was initialized to 0). Over time the running statistics will converge to the statistics of the input distribution, while still being flexible [...]
@@ -249,7 +249,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "driving-instruction",
+   "id": "fiscal-concern",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -264,7 +264,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "falling-standard",
+   "id": "southeast-thomas",
    "metadata": {},
    "source": [
     "#### Beta and Gamma\n",
@@ -279,7 +279,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "athletic-violation",
+   "id": "artistic-update",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -289,7 +289,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "according-right",
+   "id": "proved-elimination",
    "metadata": {},
    "source": [
     "We can also check the gradient on these parameters. Since we were finding the gradient of the sum of absolute values, we would expect the gradient of `gamma` to be equal to the number of points in the data (i.e. 16). So to minimize the loss we'd decrease the value of `gamma`, which would happen as part of a `trainer.step`."
@@ -298,7 +298,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "unlike-change",
+   "id": "afraid-uzbekistan",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -308,7 +308,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "combined-possession",
+   "id": "mediterranean-significance",
    "metadata": {},
    "source": [
     "#### Inference Mode\n",
@@ -319,7 +319,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "asian-sheep",
+   "id": "chief-detective",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -329,7 +329,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "rough-overall",
+   "id": "allied-alexander",
    "metadata": {},
    "source": [
     "## Layer Normalization\n",
@@ -355,7 +355,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "surgical-great",
+   "id": "animated-journey",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -365,7 +365,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "constant-country",
+   "id": "dependent-people",
    "metadata": {},
    "source": [
     "With MXNet Gluon we can apply layer normalization with the `mx.gluon.nn.LayerNorm` block. We need to call `initialize` because `LayerNorm` has two learnable parameters by default: `beta` and `gamma` that are used for post normalization shifting and scaling of each channel."
@@ -374,7 +374,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "unique-walker",
+   "id": "informed-somalia",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -386,7 +386,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "crucial-sector",
+   "id": "spread-cornell",
    "metadata": {},
    "source": [
     "We can see that normalization has been applied across all channels for each time step and each sample.\n",
@@ -397,7 +397,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "alert-refrigerator",
+   "id": "angry-correlation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -407,7 +407,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "presidential-navigation",
+   "id": "forward-horizontal",
    "metadata": {},
    "source": [
     "##  Instance Normalization\n",
@@ -427,7 +427,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "female-writing",
+   "id": "executed-customs",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -437,7 +437,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "optional-feeling",
+   "id": "eligible-communist",
    "metadata": {},
    "source": [
     "With MXNet Gluon we can apply instance normalization with the `mx.gluon.nn.InstanceNorm` block. We need to call `initialize` because InstanceNorm has two learnable parameters by default: `beta` and `gamma` that are used for post normalization shifting and scaling of each channel."
@@ -446,7 +446,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "threatened-spotlight",
+   "id": "close-sheep",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -458,7 +458,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "minor-template",
+   "id": "thick-palmer",
    "metadata": {},
    "source": [
     "We can also check the parameters `beta` and `gamma` and see that they are per channel (i.e. 2 of each in this example)."
@@ -467,7 +467,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "greenhouse-bride",
+   "id": "bored-assignment",
    "metadata": {},
    "outputs": [],
    "source": [
diff --git a/api/python/docs/_sources/tutorials/packages/gluon/training/trainer.ipynb b/api/python/docs/_sources/tutorials/packages/gluon/training/trainer.ipynb
index 33e87b7..76c3b2d2 100644
--- a/api/python/docs/_sources/tutorials/packages/gluon/training/trainer.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/gluon/training/trainer.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "compound-progress",
+   "id": "enhanced-mortality",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -42,7 +42,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "beginning-timing",
+   "id": "great-discount",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -57,7 +57,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "educational-translation",
+   "id": "small-exchange",
    "metadata": {},
    "source": [
     "### Forward and Backward Pass\n",
@@ -68,7 +68,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "recreational-species",
+   "id": "brief-domestic",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -88,7 +88,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cardiovascular-glenn",
+   "id": "conservative-short",
    "metadata": {},
    "source": [
     "**Warning**: It is extremely important that the gradients of the loss function with respect to your model parameters are computed before running `trainer step`. A common way to introduce bugs to your model training code is to omit the `loss.backward()`before the update step.\n",
@@ -101,7 +101,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "wanted-supervisor",
+   "id": "favorite-henry",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -111,7 +111,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "baking-spending",
+   "id": "plain-potato",
    "metadata": {},
    "source": [
     "### `Trainer` step\n",
@@ -122,7 +122,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "occupied-curve",
+   "id": "modern-richardson",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -132,7 +132,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fifteen-spokesman",
+   "id": "nasty-lover",
    "metadata": {},
    "source": [
     "Since we used plain SGD, the update rule is $w = w - \\eta/b \\nabla \\ell$, where $b$ is the batch size and $\\nabla\\ell$ is the gradient of the loss function with respect to the weights and $\\eta$ is the learning rate.\n",
@@ -143,7 +143,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "respected-nickel",
+   "id": "every-homeless",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -152,7 +152,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "turned-honduras",
+   "id": "balanced-invention",
    "metadata": {},
    "source": [
     "## Advanced Usage\n",
@@ -171,7 +171,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "incoming-mercy",
+   "id": "requested-twenty",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -182,7 +182,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "african-blackjack",
+   "id": "unlikely-template",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -193,7 +193,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fossil-ghost",
+   "id": "proper-diary",
    "metadata": {},
    "source": [
     "For reference and implementation details about each optimizer, please refer to the [guide](../../optimizer/index.ipynb) and [API doc](../../../../api/optimizer/index.rst) for the `optimizer` module.\n",
@@ -216,7 +216,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "better-expansion",
+   "id": "deluxe-reminder",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -225,7 +225,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "wrapped-purse",
+   "id": "local-travel",
    "metadata": {},
    "source": [
     "We can change it through the `set_learning_rate` method."
@@ -234,7 +234,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "earned-afghanistan",
+   "id": "funded-cloud",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -244,7 +244,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "blind-wrapping",
+   "id": "cleared-ethiopia",
    "metadata": {},
    "source": [
     "In addition, there are multiple pre-defined learning rate scheduling methods that are already implemented in the [mxnet.lr_scheduler](../../../../api/lr_scheduler/index.rst) module. The learning rate schedulers can be incorporated into your trainer by passing them in as an `optimizer_param` entry. Please refer to the [LR scheduler guide](./learning_rates/learning_rate_schedules.ipynb) to learn more.\n",
diff --git a/api/python/docs/_sources/tutorials/packages/kvstore/kvstore.ipynb b/api/python/docs/_sources/tutorials/packages/kvstore/kvstore.ipynb
index 46d25ea..7d50410 100644
--- a/api/python/docs/_sources/tutorials/packages/kvstore/kvstore.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/kvstore/kvstore.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "agreed-stage",
+   "id": "joined-avenue",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -37,7 +37,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "split-dialogue",
+   "id": "intelligent-february",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -53,7 +53,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "incorporate-publicity",
+   "id": "representative-burlington",
    "metadata": {},
    "source": [
     "`[[ 2.  2.  2.],[ 2.  2.  2.]]`<!--notebook-skip-line-->\n",
@@ -66,7 +66,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "electric-million",
+   "id": "signed-packet",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -77,7 +77,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hourly-third",
+   "id": "intended-mayor",
    "metadata": {},
    "source": [
     "`[[ 8.  8.  8.],[ 8.  8.  8.]]`<!--notebook-skip-line-->\n",
@@ -91,7 +91,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "talented-property",
+   "id": "printable-coordinator",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -104,7 +104,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hairy-pontiac",
+   "id": "impressed-update",
    "metadata": {},
    "source": [
     "`[[ 4.  4.  4.],[ 4.  4.  4.]]`<!--notebook-skip-line-->\n",
@@ -117,7 +117,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "above-london",
+   "id": "alert-shoot",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -131,7 +131,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "dangerous-second",
+   "id": "tribal-server",
    "metadata": {},
    "source": [
     "`[[ 4.  4.  4.],[ 4.  4.  4.]]`<!--notebook-skip-line-->"
@@ -140,7 +140,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "cooperative-diving",
+   "id": "crude-guarantee",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -151,7 +151,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "fifty-fitting",
+   "id": "essential-nevada",
    "metadata": {},
    "source": [
     "`update on key: 3`<!--notebook-skip-line-->\n",
@@ -168,7 +168,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "miniature-blowing",
+   "id": "super-clinton",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -179,7 +179,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "adequate-township",
+   "id": "powered-founder",
    "metadata": {},
    "source": [
     "`[ 6.  6.  6.]],[[ 6.  6.  6.]`<!--notebook-skip-line-->\n",
@@ -195,7 +195,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "mechanical-heating",
+   "id": "difficult-daily",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -209,7 +209,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "posted-release",
+   "id": "martial-chick",
    "metadata": {},
    "source": [
     "`update on key: 5`<!--notebook-skip-line-->\n",
@@ -226,7 +226,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "union-communication",
+   "id": "supposed-valuation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -238,7 +238,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "hired-bosnia",
+   "id": "local-federation",
    "metadata": {},
    "source": [
     "`update on key: 5`<!--notebook-skip-line-->\n",
diff --git a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/01-ndarray-intro.ipynb b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/01-ndarray-intro.ipynb
index bf4f678..d321871 100644
--- a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/01-ndarray-intro.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/01-ndarray-intro.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "positive-cemetery",
+   "id": "introductory-border",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -54,7 +54,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "compound-discharge",
+   "id": "twenty-reply",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -64,7 +64,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "anticipated-anthony",
+   "id": "velvet-macintosh",
    "metadata": {},
    "source": [
     "Let's start with a very simple 1-dimensional array with a python list."
@@ -73,7 +73,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "latin-adapter",
+   "id": "balanced-worse",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -83,7 +83,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "finnish-attention",
+   "id": "athletic-diving",
    "metadata": {},
    "source": [
     "Now a 2-dimensional array."
@@ -92,7 +92,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "compressed-canal",
+   "id": "animal-buying",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -102,7 +102,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "knowing-closer",
+   "id": "moving-responsibility",
    "metadata": {},
    "source": [
     "Next, let's see how to create an `NDArray`, without any values initialized.\n",
@@ -114,7 +114,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "statewide-reliance",
+   "id": "marked-nepal",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -126,7 +126,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "known-cemetery",
+   "id": "senior-sweet",
    "metadata": {},
    "source": [
     "`empty` just grabs some memory and hands us back a matrix without setting the\n",
@@ -144,7 +144,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "personal-outdoors",
+   "id": "double-implementation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -154,7 +154,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "numeric-vampire",
+   "id": "romantic-feeding",
    "metadata": {},
    "source": [
     "Similarly, `ndarray` has a function to create a matrix of all ones aptly named\n",
@@ -164,7 +164,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "subsequent-germany",
+   "id": "medieval-interpretation",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -174,7 +174,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "equivalent-riverside",
+   "id": "documented-resource",
    "metadata": {},
    "source": [
     "Often, we'll want to create arrays whose values are sampled randomly. This is\n",
@@ -192,7 +192,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "bronze-morning",
+   "id": "north-rainbow",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -202,7 +202,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "super-effect",
+   "id": "chief-infection",
    "metadata": {},
    "source": [
     "Sometimes you will want to copy an array by its shape but not its contents. You\n",
@@ -212,7 +212,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "light-salvation",
+   "id": "studied-birthday",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -222,7 +222,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "decimal-macro",
+   "id": "packed-custom",
    "metadata": {},
    "source": [
     "As in NumPy, the dimensions of each `NDArray` are accessible via the `.shape`\n",
@@ -232,7 +232,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "antique-abraham",
+   "id": "appropriate-reflection",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -241,7 +241,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "patent-minimum",
+   "id": "progressive-webster",
    "metadata": {},
    "source": [
     "We can also query its `.size`, which is equal to the product of the components\n",
@@ -254,7 +254,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "several-attempt",
+   "id": "meaningful-photography",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -263,7 +263,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "understood-master",
+   "id": "generic-village",
    "metadata": {},
    "source": [
     "We can query the data type using `.dtype`."
@@ -272,7 +272,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "usual-albany",
+   "id": "executed-collection",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -281,7 +281,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "collectible-forge",
+   "id": "sealed-blade",
    "metadata": {},
    "source": [
     "`float32` is the default data type. Performance can be improved with less\n",
@@ -293,7 +293,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "divided-rainbow",
+   "id": "external-saying",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -306,7 +306,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "regular-republican",
+   "id": "alleged-royal",
    "metadata": {},
    "source": [
     "As you will come to learn in detail later, operations and memory storage will\n",
@@ -318,7 +318,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "finnish-collector",
+   "id": "determined-cannon",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -327,7 +327,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "central-james",
+   "id": "measured-animation",
    "metadata": {},
    "source": [
     "## Next Up\n",
diff --git a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/02-ndarray-operations.ipynb b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/02-ndarray-operations.ipynb
index d57ab2d..0cf6146 100644
--- a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/02-ndarray-operations.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/02-ndarray-operations.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "suitable-devil",
+   "id": "rural-mapping",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -46,7 +46,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "breathing-nomination",
+   "id": "boolean-netherlands",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -57,7 +57,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "personal-nightlife",
+   "id": "british-domain",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -71,7 +71,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "center-breach",
+   "id": "sixth-shame",
    "metadata": {},
    "source": [
     "Multiplication:"
@@ -80,7 +80,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "focused-curtis",
+   "id": "armed-retrieval",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -91,7 +91,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "understood-polymer",
+   "id": "tutorial-vessel",
    "metadata": {},
    "source": [
     "And exponentiation:\n",
@@ -102,7 +102,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "victorian-salem",
+   "id": "rocky-singing",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -111,7 +111,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "outdoor-thumbnail",
+   "id": "decent-thomas",
    "metadata": {},
    "source": [
     "We can also grab a matrix's transpose to compute a proper matrix-matrix product.\n",
@@ -122,7 +122,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "convertible-antibody",
+   "id": "upset-symbol",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -131,7 +131,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "cordless-pillow",
+   "id": "present-saver",
    "metadata": {},
    "source": [
     "## In-place operations\n",
@@ -157,7 +157,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "excessive-superior",
+   "id": "short-gathering",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -170,7 +170,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "proof-environment",
+   "id": "tutorial-sunrise",
    "metadata": {},
    "source": [
     "We can assign the result to a previously allocated array with slice notation,\n",
@@ -180,7 +180,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "active-technical",
+   "id": "decent-paint",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -196,7 +196,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "connected-highlight",
+   "id": "practical-convertible",
    "metadata": {},
    "source": [
     "However, `x+y` here will still allocate a temporary buffer to store the result\n",
@@ -208,7 +208,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "pregnant-transportation",
+   "id": "beautiful-rider",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -223,7 +223,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "proud-governor",
+   "id": "owned-shore",
    "metadata": {},
    "source": [
     "If we're not planning to re-use ``x``, then we can assign the result to ``x``\n",
@@ -236,7 +236,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "played-desperate",
+   "id": "standard-consortium",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -247,7 +247,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "offensive-weather",
+   "id": "compact-patrick",
    "metadata": {},
    "source": [
     "## Slicing\n",
@@ -267,7 +267,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "romance-syria",
+   "id": "chubby-shirt",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -283,7 +283,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "regulation-creature",
+   "id": "systematic-hospital",
    "metadata": {},
    "source": [
     "Now let's try writing to a specific element."
@@ -292,7 +292,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "overhead-turning",
+   "id": "fundamental-harvard",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -307,7 +307,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "composite-chemistry",
+   "id": "spiritual-optimization",
    "metadata": {},
    "source": [
     "Multi-dimensional slicing is also supported."
@@ -316,7 +316,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "northern-marsh",
+   "id": "exposed-starter",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "suburban-victorian",
+   "id": "immune-admission",
    "metadata": {},
    "source": [
     "## Broadcasting\n",
@@ -362,7 +362,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "rural-powder",
+   "id": "located-majority",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -375,7 +375,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "funky-rendering",
+   "id": "eastern-pasta",
    "metadata": {},
    "source": [
     "While `y` is initially of shape $6$,\n",
@@ -390,7 +390,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "abroad-bottom",
+   "id": "hungry-small",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -403,7 +403,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "pediatric-month",
+   "id": "answering-amino",
    "metadata": {},
    "source": [
     "## Converting from MXNet NDArray to NumPy\n",
@@ -414,7 +414,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "flying-absence",
+   "id": "arbitrary-passenger",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -425,7 +425,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "healthy-romance",
+   "id": "rational-console",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -435,7 +435,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "angry-trust",
+   "id": "soviet-fossil",
    "metadata": {},
    "source": [
     "## Next Up\n",
diff --git a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/03-ndarray-contexts.ipynb b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/03-ndarray-contexts.ipynb
index 63908e6..ff1015e 100644
--- a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/03-ndarray-contexts.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/03-ndarray-contexts.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "strange-jason",
+   "id": "split-petroleum",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -52,7 +52,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "wanted-poverty",
+   "id": "second-courtesy",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -64,7 +64,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "aging-illinois",
+   "id": "opened-location",
    "metadata": {},
    "source": [
     "Given an NDArray on a given context, we can copy it to another context by using\n",
@@ -74,7 +74,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "affiliated-norway",
+   "id": "portuguese-ballet",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -84,7 +84,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "academic-chest",
+   "id": "retained-twins",
    "metadata": {},
    "source": [
     "The result of an operator will have the same context as the inputs."
@@ -93,7 +93,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "photographic-obligation",
+   "id": "aquatic-trinity",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -102,7 +102,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "environmental-cassette",
+   "id": "understanding-award",
    "metadata": {},
    "source": [
     "## Watch out!\n",
@@ -122,7 +122,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "thirty-heart",
+   "id": "fiscal-damage",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -136,7 +136,7 @@
   },
   {
    "cell_type": "markdown",
-   "id": "freelance-israel",
+   "id": "surface-fence",
    "metadata": {},
    "source": [
     "## Next Up\n",
diff --git a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/gotchas_numpy_in_mxnet.ipynb b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/gotchas_numpy_in_mxnet.ipynb
index ef7c19b..2d3acc5 100644
--- a/api/python/docs/_sources/tutorials/packages/legacy/ndarray/gotchas_numpy_in_mxnet.ipynb
+++ b/api/python/docs/_sources/tutorials/packages/legacy/ndarray/gotchas_numpy_in_mxnet.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "surrounded-generation",
+   "id": "plain-murder",
    "metadata": {},
    "source": [
     "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
@@ -65,7 +65,7 @@
   {
    "cell_type": "code",
... 19740 lines suppressed ...