NVIDIA Deep Learning Examples
ResNet50 v1.5 for MXNet
Resource
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>