This repository uses the following libraries:
- python (3.8.8)
- pytorch (1.8.1)
- torchvision (0.9.1)
- gco-wrapper (3.0.8) (https://github.com/Borda/pyGCO)
We use 100,000 training samples and 10,000 validation samples for Tiny-ImageNet. You can download the dataset by running the command tinyimagenet.sh in your terminal. Once the download is complete, ensure that the data is organized in the following directory structure:
└── /dataset/tiny-imagenet-200/
├── train/
│ ├── n01443537/
│ │ ├── n01443537_0.JPEG
│ │ ├── ...
│ │ └── n01443537_99.JPEG
│ ├── n01443537/
│ ├── ...
│ └── n12267677/
├── val/
│ ├── n01443537/
│ │ ├── val_1230.JPEG
│ │ ├── ...
│ │ └── val_9949.JPEG
│ ├── n01443537/
│ ├── ...
│ ├── n12267677/
│ └── val_annotations.txt
├── test/
└── wnids.txt
Method | ResNet18 | ResNext50 |
---|---|---|
Vanilla | 77.73 (7h 49m) |
80.58 (1d 4h 43m) |
Mixup (p=1.0) [ICLR '18] |
79.22 (7h 53m) |
81.42 (1d 4h 45m) |
CutMix (p=0.5) [ICCV '19] |
80.30 (8h 00m) |
81.23 (1d 4h 25m) |
ResizeMix (p=0.5) [arXiv '20] |
79.79 (7h 46m) |
80.24 (1d 4h 29m) |
PuzzleMix (p=0.5) [ICML '20] |
80.87 (13h 12m) |
83.43 (1d 23h 00m) |
PuzzleMix (p=1.0) [ICML '20] |
81.10 (18h 42m) |
80.94 (2d 13h 04m) |
Method | ResNet18 | ResNext50 |
---|---|---|
Vanilla | 63.01 (20h 16m) |
65.91 (2d 5h 35m) |
Mixup (p=1.0) [ICLR '18] |
64.47 (20h 13m) |
67.48 (2d 4h 40m) |
CutMix (p=0.5) [ICCV '19] |
65.41 (19h 40m) |
67.83 (2d 8h 39m) |
ResizeMix (p=0.5) [arXiv '20] |
65.34 (19h 41m) |
67.86 (2d 2h 02m) |
PuzzleMix (p=0.5) [ICML '20] |
65.26 (1d 8h 29m) |
68.23 (3d 11h 48m) |
PuzzleMix (p=1.0) [ICML '20] |
66.98 (1d 22h 14m) |
69.19 (4d 22h 23m) |
- CutMix with ResNet-18
#!/bin/bash
PORT="tcp://127.0.0.1:12345"
GPU=0
DATASET="cifar100"
SAVEDIR="saved/${DATASET}/R18"
NAME="cutmix"
python train.py -c configs/${DATASET}/resnet18/config_cutmix.json \
-d ${GPU} --dist_url ${PORT} --save_dir ${SAVEDIR} --name ${NAME} --dataset ${DATASET}
- PuzzleMix with ResNeXt-50
#!/bin/bash
PORT="tcp://127.0.0.1:12345"
GPU=0,1 # Using two GPUs
DATASET="tiny_imagenet"
SAVEDIR="saved/${DATASET}/R18"
NAME="puzzlemix"
python train.py -c configs/${DATASET}/resnext50-32x4d/config_puzzlemix.json \
-d ${GPU} --dist_url ${PORT} --save_dir ${SAVEDIR} --name ${NAME} --dataset ${DATASET}
- This template is borrowed from pytorch-template.
- This project is licensed under the GPL-3.0 license - see the LICENSE file for details