Demo to train a ResNet model on a custom dataset. The code is written such that it can be easily used as a base for specific projects.
- (Install Anaconda)[https://conda.io/docs/user-guide/install/linux.html] if not already installed in the system.
- Create an Anaconda environment:
conda create -n resnet-demo python=2.7and activate it:source activate resnet-demo. - Install PyTorch and TorchVision inside the Anaconda environment. First add a channel to conda:
conda config --add channels soumith. Then install:conda install pytorch torchvision cuda80 -c soumith. - Install the dependencies using conda:
conda install scipy Pillow tqdm scikit-learn scikit-image numpy matplotlib ipython pyyaml.
Experimental settings such as learning rates are defined in config.py, each setting being a numbered key in a Python dict.
The demo code is in the file train_resnet_demo.py. The command for running it on GPU:0 and using configuration:1 is python train_resnet_demo.py -g 0 -c 1. The code has detailed comments and serves as a walkthrough for training deep networks on custom datasets in PyTorch.
Each time the training script is run, a new output folder with a timestamp is created by default under ./logs -- logs/MODEL-CFG-TIMESTAMP/. Under an experiment's log folder the settings for each experiment can be viewed in config.yml; metrics such as the training and validation losses are updated in log.csv.