Creating an MXNet Image Classifier in AWS SageMaker

1 hour
  • 5 Learning Objectives

About this Hands-on Lab

Apache MXNet is an open-source machine learning framework focusing on deep learning with neural networks. In this lab, you will use MXNet to create a neural network that performs a basic image classification task: deciding which LEGO brick is in an image to help you sort your giant pile of blocks. MXNet supports many programming languages, but we will use Python.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Navigate to the Jupyter Notebook

Log in to the AWS console and navigate to the AWS SageMaker page. From there, load the Jupyter Notebook that has been provided with this hands-on lab.

Load and Prepare the Data
  1. Load the training images and labels into an NDArray using Pickle. The images and labels are provided in the lego-simple-mx-train file.
  2. Load the testing images and labels into an NDArray using Pickle. The images and labels are provided in the lego-simple-mx-test file.
  3. Add in the human-readable class names for the labels.
  4. Convert the training and testing NDArrays to MXNet Tensors. For better results, normalize the data using the mean of 0.13 and standard deviation of 0.31, which have been precomputed for this dataset.
  5. Visualize the first few images from the training data set to better understand the data.
Train the MXNet Model
  1. Create a neural network model using Gluon.
    • Remember to check your input shape and adjust if necessary.
    • You can get decent performance from a single hidden layer, but feel free to experiment with different model architectures.
    • You should have as many output nodes as labels you are trying to predict. Remember to pick an activation function that will output categorical probabilities.
  2. Keep track of accuracy during your training process.
  3. Choose a loss function appropriate for classification tasks.
  4. Train the model using the training data and training labels. You won’t need to train for many epochs. Save the history of the training process.
Evaluate the Model
  1. Calculate the accuracy of the model on the testing data.
  2. View the raw output of a model prediction for an image in the test set.
  3. Determine the label that the model predicted for the image and compare that to the actual label.
Make a Batch Prediction
  1. Predict the labels for all of the testing data.
  2. Compare the predictions against the actual labels.

Additional Resources

Scenario

You have a lot of LEGO bricks to sort. Doing it by hand will take forever, and will cause you so much eye strain from looking at the tiny pieces. Instead, you should train a machine to recognize the bricks and tell you (or ideally, a robot) which bin the piece should be placed in. You already have a lot of pictures of LEGO bricks, which is what you'll use to train the model.

The following are the human-readable class names (in order) for the dataset. These are the LEGO bricks we will be trying to classify:

  • 2x3 Brick
  • 2x2 Brick
  • 1x3 Brick
  • 2x1 Brick
  • 1x1 Brick
  • 2x2 Macaroni
  • 2x2 Curved End
  • Cog 16 Tooth
  • 1x2 Handles
  • 1x2 Grill

The files used in this lab can be found on GitHub.

Lab Goals

  1. Navigate to the Jupyter Notebook
  2. Load and Prepare the Data
  3. Train the MXNet Model
  4. Evaluate the Model
  5. Make a Batch Prediction

Logging in to the lab Environment

To avoid issues with the lab, use a new Incognito or Private browser window to log in to the lab. This ensures that your personal account credentials, which may be active in your main window, are not used for the lab.

Please make sure you are in the us-east-1 (N. Virginia) region when in the AWS console.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?