{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--- Licensed to the Apache Software Foundation (ASF) under one -->\n",
    "<!--- or more contributor license agreements.  See the NOTICE file -->\n",
    "<!--- distributed with this work for additional information -->\n",
    "<!--- regarding copyright ownership.  The ASF licenses this file -->\n",
    "<!--- to you under the Apache License, Version 2.0 (the -->\n",
    "<!--- \"License\"); you may not use this file except in compliance -->\n",
    "<!--- with the License.  You may obtain a copy of the License at -->\n",
    "\n",
    "<!---   http://www.apache.org/licenses/LICENSE-2.0 -->\n",
    "\n",
    "<!--- Unless required by applicable law or agreed to in writing, -->\n",
    "<!--- software distributed under the License is distributed on an -->\n",
    "<!--- \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -->\n",
    "<!--- KIND, either express or implied.  See the License for the -->\n",
    "<!--- specific language governing permissions and limitations -->\n",
    "<!--- under the License. -->\n",
    "\n",
    "# Saving and Loading Gluon Models\n",
    "\n",
    "Training large models take a lot of time and it is a good idea to save the trained models to files to avoid training them again and again. There are a number of reasons to do this. For example, you might want to do inference on a machine that is different from the one where the model was trained. Sometimes model's performance on validation set decreases towards the end of the training because of overfitting. If you saved your model parameters after every epoch, at the end you can decide to use the model that performs best on the validation set. Another reason would be to train your model using one language (like Python that has a lot of tools for training) and run inference using a different language (like Scala probably because your application is built on Scala).\n",
    "\n",
    "In this tutorial, we will learn ways to save and load Gluon models. There are two ways to save/load Gluon models:\n",
    "\n",
    "**1. Save/load model parameters only**\n",
    "\n",
    "Parameters of any Gluon model can be saved using the `save_parameters` and `load_parameters` method. This does not save model architecture. This method is used to save parameters of dynamic (non-hybrid) models. Model architecture cannot be saved for dynamic models because model architecture changes during execution.\n",
    "\n",
    "**2. Save/load model parameters AND architecture**\n",
    "\n",
    "The Model architecture of `Hybrid` models stays static and don't change during execution. Therefore both model parameters AND architecture can be saved and loaded using `export`, `imports` methods.\n",
    "\n",
    "Let's look at the above methods in more detail. Let's start by importing the modules we'll need."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "from __future__ import print_function\n",
    "\n",
    "import mxnet as mx\n",
    "import mxnet.ndarray as nd\n",
    "from mxnet import nd, autograd, gluon\n",
    "from mxnet.gluon.data.vision import transforms\n",
    "\n",
    "import numpy as np\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup: build and train a simple model\n",
    "\n",
    "We need a trained model before we can save it to a file. So let's go ahead and build a very simple convolutional network and train it on MNIST data.\n",
    "\n",
    "Let's define a helper function to build a LeNet model and another helper to train LeNet with MNIST."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "# Use GPU if one exists, else use CPU\n",
    "ctx = mx.gpu() if mx.context.num_gpus() else mx.cpu()\n",
    "\n",
    "# MNIST images are 28x28. Total pixels in input layer is 28x28 = 784\n",
    "num_inputs = 784\n",
    "# Clasify the images into one of the 10 digits\n",
    "num_outputs = 10\n",
    "# 64 images in a batch\n",
    "batch_size = 64\n",
    "\n",
    "# Load the training data\n",
    "train_data = gluon.data.DataLoader(gluon.data.vision.MNIST(train=True).transform_first(transforms.ToTensor()),\n",
    "                                   batch_size, shuffle=True)\n",
    "\n",
    "# Build a simple convolutional network\n",
    "def build_lenet(net):    \n",
    "    with net.name_scope():\n",
    "        # First convolution\n",
    "        net.add(gluon.nn.Conv2D(channels=20, kernel_size=5, activation='relu'))\n",
    "        net.add(gluon.nn.MaxPool2D(pool_size=2, strides=2))\n",
    "        # Second convolution\n",
    "        net.add(gluon.nn.Conv2D(channels=50, kernel_size=5, activation='relu'))\n",
    "        net.add(gluon.nn.MaxPool2D(pool_size=2, strides=2))\n",
    "        # Flatten the output before the fully connected layers\n",
    "        net.add(gluon.nn.Flatten())\n",
    "        # First fully connected layers with 512 neurons\n",
    "        net.add(gluon.nn.Dense(512, activation=\"relu\"))\n",
    "        # Second fully connected layer with as many neurons as the number of classes\n",
    "        net.add(gluon.nn.Dense(num_outputs))\n",
    "\n",
    "        return net\n",
    "\n",
    "# Train a given model using MNIST data\n",
    "def train_model(model):\n",
    "    # Initialize the parameters with Xavier initializer\n",
    "    model.collect_params().initialize(mx.init.Xavier(), ctx=ctx)\n",
    "    # Use cross entropy loss\n",
    "    softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss()\n",
    "    # Use Adam optimizer\n",
    "    trainer = gluon.Trainer(model.collect_params(), 'adam', {'learning_rate': .001})\n",
    "\n",
    "    # Train for one epoch\n",
    "    for epoch in range(1):\n",
    "        # Iterate through the images and labels in the training data\n",
    "        for batch_num, (data, label) in enumerate(train_data):\n",
    "            # get the images and labels\n",
    "            data = data.as_in_context(ctx)\n",
    "            label = label.as_in_context(ctx)\n",
    "            # Ask autograd to record the forward pass\n",
    "            with autograd.record():\n",
    "                # Run the forward pass\n",
    "                output = model(data)\n",
    "                # Compute the loss\n",
    "                loss = softmax_cross_entropy(output, label)\n",
    "            # Compute gradients\n",
    "            loss.backward()\n",
    "            # Update parameters\n",
    "            trainer.step(data.shape[0])\n",
    "\n",
    "            # Print loss once in a while\n",
    "            if batch_num % 50 == 0:\n",
    "                curr_loss = nd.mean(loss).asscalar()\n",
    "                print(\"Epoch: %d; Batch %d; Loss %f\" % (epoch, batch_num, curr_loss))\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's build a model and train it. After training, we will save and restore this model from a file."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "net = build_lenet(gluon.nn.Sequential())\n",
    "train_model(net)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<pre>Epoch: 0; Batch 0; Loss 2.288904 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 50; Loss 0.269372 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 100; Loss 0.238990 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 150; Loss 0.320592 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 200; Loss 0.048619 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 250; Loss 0.121555 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 300; Loss 0.083645 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 350; Loss 0.040627 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 400; Loss 0.195946 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 450; Loss 0.155514 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 500; Loss 0.031762 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 550; Loss 0.056516 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 600; Loss 0.095174 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 650; Loss 0.054901 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 700; Loss 0.030067 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 750; Loss 0.102611 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 800; Loss 0.010036 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 850; Loss 0.051853 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 900; Loss 0.008402 <!--notebook-skip-line-->\n",
    "</pre> <!--notebook-skip-line-->\n",
    "\n",
    "## Saving model parameters to file\n",
    "\n",
    "Okay, we now have a model (`net`) that we can save to a file. Let's save the parameters of this model to a file using the `save_parameters` function."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "file_name = \"net.params\"\n",
    "net.save_parameters(file_name)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have successfully saved the parameters of the model into a file.\n",
    "\n",
    "Note: `Block.collect_params().save()` is not a recommended way to save parameters of a Gluon network if you plan to load the parameters back into a Gluon network using `Block.load_parameters()`.\n",
    "\n",
    "## Loading model parameters from file\n",
    "\n",
    "Let's now create a network with the parameters we saved into the file. We build the network again using the helper first and then load the weights from the file we saved using the `load_parameters` function."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "new_net = build_lenet(gluon.nn.Sequential())\n",
    "new_net.load_parameters(file_name, ctx=ctx)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "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",
    "\n",
    "If our network is [Hybrid](https://mxnet.apache.org/tutorials/gluon/hybrid.html), we can even save the network architecture into files and we won't need the network definition in a Python file to load the network. We'll see how to do it in the next section.\n",
    "\n",
    "Let's test the model we just loaded from file."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def verify_loaded_model(net):\n",
    "    \"\"\"Run inference using ten random images.\n",
    "    Print both input and output of the model\"\"\"\n",
    "\n",
    "    def transform(data, label):\n",
    "        return data.astype(np.float32)/255, label.astype(np.float32)\n",
    "\n",
    "    # Load ten random images from the test dataset\n",
    "    sample_data = mx.gluon.data.DataLoader(mx.gluon.data.vision.MNIST(train=False, transform=transform),\n",
    "                                  10, shuffle=True)\n",
    "\n",
    "    for data, label in sample_data:\n",
    "\n",
    "        # Display the images\n",
    "        img = nd.transpose(data, (1,0,2,3))\n",
    "        img = nd.reshape(img, (28,10*28,1))\n",
    "        imtiles = nd.tile(img, (1,1,3))\n",
    "        plt.imshow(imtiles.asnumpy())\n",
    "        plt.show()\n",
    "\n",
    "        # Display the predictions\n",
    "        data = nd.transpose(data, (0, 3, 1, 2))\n",
    "        out = net(data.as_in_context(ctx))\n",
    "        predictions = nd.argmax(out, axis=1)\n",
    "        print('Model predictions: ', predictions.asnumpy())\n",
    "\n",
    "        break\n",
    "\n",
    "verify_loaded_model(new_net)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Model inputs](https://raw.githubusercontent.com/indhub/web-data/4a9c100aa996df3dff0e7f493029d411c2b526c3/mxnet/tutorials/gluon/save_load_params/mnist_in_1.png) <!--notebook-skip-line-->\n",
    "\n",
    "Model predictions:  [1. 1. 4. 5. 0. 5. 7. 0. 3. 6.] <!--notebook-skip-line-->\n",
    "\n",
    "## Saving model parameters AND architecture to file\n",
    "\n",
    "[Hybrid](https://mxnet.apache.org/tutorials/gluon/hybrid.html) models can be serialized as JSON files using the `export` function. Once serialized, these models can be loaded from other language bindings like C++ or Scala for faster inference or inference in different environments.\n",
    "\n",
    "Note that the network we created above is not a Hybrid network and therefore cannot be serialized into a JSON file. So, let's create a Hybrid version of the same network and train it."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "net = build_lenet(gluon.nn.HybridSequential())\n",
    "net.hybridize()\n",
    "train_model(net)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<pre>Epoch: 0; Batch 0; Loss 2.323284 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 50; Loss 0.444733 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 100; Loss 0.103407 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 150; Loss 0.166772 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 200; Loss 0.227569 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 250; Loss 0.069515 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 300; Loss 0.074086 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 350; Loss 0.074382 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 400; Loss 0.026569 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 450; Loss 0.097248 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 500; Loss 0.059895 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 550; Loss 0.053194 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 600; Loss 0.076294 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 650; Loss 0.047274 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 700; Loss 0.007898 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 750; Loss 0.039478 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 800; Loss 0.031342 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 850; Loss 0.059289 <!--notebook-skip-line-->\n",
    "Epoch: 0; Batch 900; Loss 0.037809 <!--notebook-skip-line-->\n",
    "</pre> <!--notebook-skip-line-->\n",
    "\n",
    "We now have a trained hybrid network. This can be exported into files using the `export` function. The `export` function will export the model architecture into a `.json` file and model parameters into a `.params` file."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "net.export(\"lenet\", epoch=1)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`export` in this case creates `lenet-symbol.json` and `lenet-0001.params` in the current directory.\n",
    "\n",
    "## Loading model parameters AND architecture from file\n",
    "\n",
    "### From a different frontend\n",
    "\n",
    "One of the main reasons to serialize model architecture into a JSON file is to load it from a different frontend like C, C++ or Scala. Here is a couple of examples:\n",
    "1. [Loading serialized Hybrid networks from C](https://github.com/apache/incubator-mxnet/blob/master/example/image-classification/predict-cpp/image-classification-predict.cc)\n",
    "2. [Loading serialized Hybrid networks from Scala](https://github.com/apache/incubator-mxnet/blob/master/scala-package/infer/src/main/scala/org/apache/mxnet/infer/ImageClassifier.scala)\n",
    "\n",
    "### From Python\n",
    "\n",
    "Serialized Hybrid networks (saved as .JSON and .params file) can be loaded and used inside Python frontend using `gluon.nn.SymbolBlock`. To demonstrate that, let's load the network we serialized above."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "import warnings\n",
    "with warnings.catch_warnings():\n",
    "    warnings.simplefilter(\"ignore\")\n",
    "    deserialized_net = gluon.nn.SymbolBlock.imports(\"lenet-symbol.json\", ['data'], \"lenet-0001.params\", ctx=ctx)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`deserialized_net` now contains the network we deserialized from files. Let's test the deserialized network to make sure it works."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```python\n",
    "verify_loaded_model(deserialized_net)\n",
    "```\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Model inputs](https://raw.githubusercontent.com/indhub/web-data/4a9c100aa996df3dff0e7f493029d411c2b526c3/mxnet/tutorials/gluon/save_load_params/mnist_in_2.png) <!--notebook-skip-line-->\n",
    "\n",
    "Model predictions:  [4. 8. 0. 1. 5. 5. 8. 8. 1. 9.] <!--notebook-skip-line-->\n",
    "\n",
    "That's all! We learned how to save and load Gluon networks from files. Parameters of any Gluon network can be persisted into files. For hybrid networks, both the architecture of the network and the parameters can be saved to and loaded from files.\n",
    "\n",
    "<!-- INSERT SOURCE DOWNLOAD BUTTONS -->"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}