This repository is a fork of pytorch-classification, extended with new features.
- Unified interface for different network architectures
- Multi-GPU support
- Training progress bar with rich info
- Training log and training curve visualization code (see
./utils/logger.py) - New: Grad-CAM visualization script (
gradcam.py) compatible with all supported models. - New: Expanded model support for EfficientNet, ViT, ConvNeXt, and more.
- Install PyTorch
- Clone recursively
git clone --recursive https://github.com/adarsh-crafts/pytorch-classification-extended.git
Organize your dataset in an ImageNet-style directory structure as follows:
data/
│
├── train/
│ ├── class 1/
│ ├── class 2/
│ ├── class 3/
│
├── val/
│ ├── class 1/
│ ├── class 2/
│ ├── class 3/
Please see the Training recipes for how to train the models.
A universal Grad-CAM script (gradcam.py) is included for model visualization. It is compatible with all supported architectures (including ViT) and loads checkpoints saved by the training script (train.py).
python gradcam.py \
--checkpoint /path/to/checkpoint/model_best.pth.tar \
--image /path/to/your/image.jpg \
--arch resnet50 \
--num-classes 1000 \
--output gradcam_output.pngTop1 error rate on the CIFAR-10/100 benchmarks are reported. You may get different results when training your models with different random seed. Note that the number of parameters are computed on the CIFAR-10 dataset.
| Model | Params (M) | CIFAR-10 (%) | CIFAR-100 (%) |
|---|---|---|---|
| alexnet | 2.47 | 22.78 | 56.13 |
| vgg19_bn | 20.04 | 6.66 | 28.05 |
| ResNet-110 | 1.70 | 6.11 | 28.86 |
| PreResNet-110 | 1.70 | 4.94 | 23.65 |
| WRN-28-10 (drop 0.3) | 36.48 | 3.79 | 18.14 |
| ResNeXt-29, 8x64 | 34.43 | 3.69 | 17.38 |
| ResNeXt-29, 16x64 | 68.16 | 3.53 | 17.30 |
| DenseNet-BC (L=100, k=12) | 0.77 | 4.54 | 22.88 |
| DenseNet-BC (L=190, k=40) | 25.62 | 3.32 | 17.17 |
Single-crop (224x224) validation error rate is reported.
| Model | Params (M) | Top-1 Error (%) | Top-5 Error (%) |
|---|---|---|---|
| ResNet-18 | 11.69 | 30.09 | 10.78 |
| ResNeXt-50 (32x4d) | 25.03 | 22.6 | 6.29 |
Our trained models and training logs are downloadable at OneDrive.
Since the size of images in CIFAR dataset is 32x32, popular network structures for ImageNet need some modifications to adapt this input size. The modified models is in the package models.cifar:
- AlexNet
- VGG (Imported from pytorch-cifar)
- ResNet
- Pre-act-ResNet
- ResNeXt (Imported from ResNeXt.pytorch)
- Wide Residual Networks (Imported from WideResNet-pytorch)
- DenseNet
- All models in
torchvision.models(e.g., alexnet, vgg, resnet, densenet, inception_v3, squeezenet, mobilenet, efficientnet, vit, convnext, etc.) - ResNeXt (Custom implementation via
models.imagenet) - Wide Residual Networks
Feel free to create a pull request if you find any bugs or you want to contribute (e.g., more datasets and more network structures).

