NVIDIA Deep Learning Examples
NVIDIA Deep Learning Examples
ResNet50 v1.5 for MXNet
Resource
NVIDIA Deep Learning Examples
NVIDIA Deep Learning Examples
ResNet50 v1.5 for MXNet

With modified architecture and initialization this ResNet50 version gives ~0.5% better accuracy than original.

To train your model using mixed or TF32 precision with Tensor Cores or using FP32, perform the following steps using the default parameters of the ResNet-50 model on the ImageNet 1k dataset. For the specifics concerning training and inference, see the Advanced section.

  1. Clone the repository.
git clone https://github.com/NVIDIA/DeepLearningExamples
cd DeepLearningExamples/MxNet/Classification/RN50v1.5
  1. Build the ResNet-50 MXNet NGC container.

After Docker is set up, you can build the ResNet-50 image with:

docker build . -t nvidia_rn50_mx
  1. Start an interactive session in the NGC container to run preprocessing/training/inference.
nvidia-docker run --rm -it --ipc=host -v <path to dataset>:/data/imagenet/train-val-recordio-passthrough nvidia_rn50_mx
  1. Download the data.
  • Download the images from http://image-net.org/download-images.

  • Extract the training and validation data:

    mkdir train && mv ILSVRC2012_img_train.tar train/ && cd train
    tar -xvf ILSVRC2012_img_train.tar && rm -f ILSVRC2012_img_train.tar
    find . -name "*.tar" | while read NAME ; do mkdir -p "${NAME%.tar}"; tar -xvf "${NAME}" -C "${NAME%.tar}"; rm -f "${NAME}"; done
    cd ..
    mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xvf      ILSVRC2012_img_val.tar
    

wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash ```

  1. Preprocess the ImageNet 1k dataset.
./scripts/prepare_imagenet.sh <path to raw imagenet> <path where processed dataset will be created>
  1. Start training.
./runner -n <number of gpus> -b <batch size per GPU (default 192)>
  1. Start validation/evaluation.
./runner -n <number of gpus> -b <batch size per GPU (default 192)> --load <path to trained model> --mode val
  1. Start inference/predictions.
./runner --load <path to trained model> --mode pred --data-pred <path to the image>