TransReID provides several .yml configuration files for different datasets and model variants (Baseline, JPM, SIE, or full TransReID).
Common Training Commands:
DukeMTMC variants:
- Baseline:
configs/DukeMTMC/vit_base.yml - Baseline + JPM:
configs/DukeMTMC/vit_jpm.yml - Baseline + SIE:
configs/DukeMTMC/vit_sie.yml - TransReID (Baseline + SIE + JPM):
configs/DukeMTMC/vit_transreid.yml - TransReID with stride [12, 12]:
configs/DukeMTMC/vit_transreid_stride.yml
Other Datasets:
- MSMT17:
configs/MSMT17/vit_transreid_stride.yml - OCC_Duke:
configs/OCC_Duke/vit_transreid_stride.yml - Market:
configs/Market/vit_transreid_stride.yml - VeRi:
configs/VeRi/vit_transreid_stride.yml
Distributed Training (VehicleID):
Since VehicleID is large, use 4 V100 GPUs via torch.distributed.launch or the provided dist_train.sh script.
# DukeMTMC transformer-based baseline
python train.py --config_file configs/DukeMTMC/vit_base.yml MODEL.DEVICE_ID "('0')"
# VehicleID (Distributed training with 4 GPUs)
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port 66666 train.py --config_file configs/VehicleID/vit_transreid_stride.yml MODEL.DIST_TRAIN True
# Or use the shell script
Bash dist_train.sh