Image Classification using Residual Networks
In this example, we convert Residual Networks trained on Torch to SINGA for image classification. Tested with the parameters pretrained by Torch
Instructions
Please
cd
tosinga/examples/imagenet/resnet/
for the following commands
Download
Download one parameter checkpoint file (see below) and the synset word file of ImageNet into this folder, e.g.,
$ wget https://s3-ap-southeast-1.amazonaws.com/dlfile/resnet/resnet-18.tar.gz
$ wget https://s3-ap-southeast-1.amazonaws.com/dlfile/resnet/synset_words.txt
$ tar xvf resnet-18.tar.gz
Usage
$ python serve.py -h
Example
# use cpu
$ python serve.py --use_cpu --parameter_file resnet-18.pickle --model resnet --depth 18 &
# use gpu
$ python serve.py --parameter_file resnet-18.pickle --model resnet --depth 18 &
The parameter files for the following model and depth configuration pairs are provided:
- resnet (original resnet), 18|34|101|152
- addbn (resnet with a batch normalization layer after the addition), 50
- wrn (wide resnet), 50
- preact (resnet with pre-activation) 200
Submit images for classification
$ curl -i -F image=@image1.jpg http://localhost:9999/api
$ curl -i -F image=@image2.jpg http://localhost:9999/api
$ curl -i -F image=@image3.jpg http://localhost:9999/api
image1.jpg, image2.jpg and image3.jpg should be downloaded before executing the above commands.
Details
The parameter files were extracted from the original torch files via the convert.py program.
Usage:
$ python convert.py -h