tree: b038fed82d4eee52da61fc3dfb45f22f4aeba22f [path history] [tgz]
  1. CMakeLists.txt
  2. image-classification-predict.cc
  3. Makefile
  4. README.md
example/image-classification/predict-cpp/README.md

Image Classification Example Using the C Predict API

This is a simple predictor which shows how to use the MXNet C Predict API for image classification with a pre-trained ImageNet model in a single thread and multiple threads.

Prerequisites

How to Use this Example

Download the Model Artifacts

  1. You will need the model artifacts for the Inception ImageNet model. You can download these from http://data.mxnet.io/mxnet/models/imagenet/inception-bn/
  2. Place them into a model/Inception/ subfolder, or if not, you will need to edit the source file and update the paths in the Build step.

Build

  1. If using a different location for the model artifacts, edit image-classification-predict.cc file, and change the following lines to your artifacts' paths:
  // Models path for your model, you have to modify it
  std::string json_file = "model/Inception/Inception-BN-symbol.json";
  std::string param_file = "model/Inception/Inception-BN-0126.params";
  std::string synset_file = "model/Inception/synset.txt";
  std::string nd_file = "model/Inception/mean_224.nd";
  1. You may also want to change the image size and channels:
  // Image size and channels
  int width = 224;
  int height = 224;
  int channels = 3;
  1. Simply just use our Makefile to build:
make

Run

Run the example by passing it an image that you want to classify. If you don't have one handy, run the following to get one:

wget https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Honeycrisp.jpg/1920px-Honeycrisp.jpg

Then run the image-classification-predict program, passing the image as the first argument and the number of threads as the second parameter.

./image-classification-predict 1920px-Honeycrisp.jpg 1

Tips

  • If you don't run it in the MXNet root path, you may need to copy the lib folder here.

Author

Thanks

  • pertusa (for Makefile and image reading check)

  • caprice-j (for reading function)

  • sofiawu (for sample model)

  • piiswrong and tqchen (for useful coding suggestions)