piyushghai commented on a change in pull request #14462: [MXNET-1358][Fit API] 
Fit api tutorial
URL: https://github.com/apache/incubator-mxnet/pull/14462#discussion_r266684296
 
 

 ##########
 File path: docs/tutorials/gluon/fit_api_tutorial.md
 ##########
 @@ -0,0 +1,311 @@
+<!--- Licensed to the Apache Software Foundation (ASF) under one -->
+<!--- or more contributor license agreements.  See the NOTICE file -->
+<!--- distributed with this work for additional information -->
+<!--- regarding copyright ownership.  The ASF licenses this file -->
+<!--- to you under the Apache License, Version 2.0 (the -->
+<!--- "License"); you may not use this file except in compliance -->
+<!--- with the License.  You may obtain a copy of the License at -->
+
+<!---   http://www.apache.org/licenses/LICENSE-2.0 -->
+
+<!--- Unless required by applicable law or agreed to in writing, -->
+<!--- software distributed under the License is distributed on an -->
+<!--- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -->
+<!--- KIND, either express or implied.  See the License for the -->
+<!--- specific language governing permissions and limitations -->
+<!--- under the License. -->
+
+# Gluon Fit API
+
+In this tutorial, we will see how to use the [Gluon Fit 
API](https://cwiki.apache.org/confluence/display/MXNET/Gluon+Fit+API+-+Tech+Design)
 which is a simple and flexible way to train deep learning models using the 
[Gluon 
APIs](http://mxnet.incubator.apache.org/versions/master/gluon/index.html) in 
Apache MXNet. 
+
+Prior to Fit API, training using Gluon required one to write a custom ["Gluon 
training 
loop"](https://mxnet.incubator.apache.org/versions/master/tutorials/gluon/logistic_regression_explained.html#defining-and-training-the-model).
 Fit API reduces the complexity and amount of boiler plate code required to 
train a model, provides an easy to use and a powerful API. 
+
+To demonstrate the Fit API, this tutorial will train an Image Classification 
model using the [AlexNet](https://arxiv.org/abs/1404.5997) architecture for the 
neural network. The model will be trained using the [Fashion-MNIST 
dataset](https://research.zalando.com/welcome/mission/research-projects/fashion-mnist/).
 
+
+
+## Prerequisites
+
+To complete this tutorial, you will need:
+
+- [MXNet](https://mxnet.incubator.apache.org/install/#overview) (The version 
of MXNet will be >= 1.5.0)
+- [GluonCV](https://gluon-cv.mxnet.io)
+
+This tutorial works with both Python 2 and Python 3.
+
+
+
+```python
+import mxnet as mx
+from mxnet import gluon, autograd
+from gluoncv import utils
+from gluoncv.model_zoo import get_model
+from mxnet.gluon.estimator import estimator
+
+ctx = mx.gpu(0) # Or mx.cpu(0) is using a GPU backed machine
+mx.random.seed(7) # Set a fixed seed
+```
+
+## Dataset
+
+[Fashion-MNIST](https://research.zalando.com/welcome/mission/research-projects/fashion-mnist/)
 dataset consists of fashion items divided into ten categories : t-shirt/top, 
trouser, pullover, dress, coat, sandal, shirt, sneaker, bag and ankle boot. 
+
+- It has 60,000 gray scale images of size 28 * 28 for training.  
+- It has 10,000 gray scale images os size 28 * 28 for testing/validation. 
+
+We will use ```gluon.data.vision``` package to directly import the 
Fashion-MNIST dataset and perform pre-processing on it.
+
+
+```python
+# Get the training data 
+fashion_mnist_train = gluon.data.vision.FashionMNIST(train=True)
+
+# Get the validation data
+fashion_mnist_val = gluon.data.vision.FashionMNIST(train=False)
+```
+
+## Exploring the Data
+
+
+```python
+text_labels = ['t-shirt/top', 'trouser', 'pullover', 'dress', 'coat',
+                   'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']
+
+# Let's print the size of the dataset for train and validation.
+print ("Number of training samples : %d" % (len(fashion_mnist_train)))
+print ("Number of validation samples : %d" % (len(fashion_mnist_val)))
+
+
+train_first_elem, train_first_label = fashion_mnist_train[0]
+print ("Shape of each iamge : ", train_first_elem.shape)
+```
+
+    Number of training samples : 60000 <!--notebook-skip-line-->
+    Number of validation samples : 10000 <!--notebook-skip-line-->
+    Shape of each iamge :  (28, 28, 1) <!--notebook-skip-line-->
+
+
+Now let's try to visualize the dataset before we proceed further
+
+
+```python
+from IPython import display
+import matplotlib.pyplot as plt
+
+# Function to display the data
+def show_fashion_mnist_data(images, labels):
+    display.set_matplotlib_formats('svg')
+    _, figs = plt.subplots(1, len(images), figsize=(12, 12))
+    
+    for figure, x, y in zip(figs, images, labels):
+        figure.imshow(x.reshape((28, 28)).asnumpy())
+        axes = figure.axes
+        axes.set_title(text_labels[int(y)])
+        axes.title.set_fontsize(12)
+        axes.get_xaxis().set_visible(False)
+        axes.get_yaxis().set_visible(False)
+    
+    plt.show()
+```
+
+
+```python
+images, labels = fashion_mnist_train[0:10]
+show_fashion_mnist_data(images, labels)
+```
+
+
+![png](https://raw.githubusercontent.com/piyushghai/web-data/master/mxnet/doc/tutorials/gluon/fashion_mnist.png)<!--notebook-skip-line-->
+
+
+## Pre-processing the data
+
+In order to prepare our data to training the model, we will perform a few 
pre-processing steps on the dataset. We will :
+- Resize the image
+- Convert the pixel values in the image from (0 to 255) to (0 to 1)
+- Normalize the images with mean 0 and variance 1. 
+
+We will be using ```gluon.data.vision.tranforms``` which provides out of the 
box transformation APIs.
+To read more about the available transformations, check out [the official 
documentation](https://mxnet.incubator.apache.org/api/python/gluon/data.html#vision-transforms).
+
+
+```python
+transformers = [gluon.data.vision.transforms.Resize(224), # We pick 224 as the 
model we use takes an input of size 224.
+                gluon.data.vision.transforms.ToTensor(), 
+                gluon.data.vision.transforms.Normalize(mean = 0, std = 1)]
+
+# Now we will stack all these together.
+transform = gluon.data.vision.transforms.Compose(transformers)
+```
+
+
+```python
+# Apply the transformations
+fashion_mnist_train = fashion_mnist_train.transform_first(transform)
+fashion_mnist_val = fashion_mnist_val.transform_first(transform)
 
 Review comment:
   Well that's because this PR is yet to be merged :) 
   https://github.com/apache/incubator-mxnet/pull/14442 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to