This project compares:
baseline_model.py: plain U-Net baselinemodel.py: TransUNet
The default dataset is now Pascal VOC 2012 via torchvision.
dataset.py: single dataset-loading entrypointtrain.py: train TransUNettrain_baseline.py: train U-Net baselineeval.py: evaluate TransUNeteval_baseline.py: evaluate U-Net baseline
The code uses torchvision.datasets.VOCSegmentation and can download VOC 2012 automatically.
- Dataset name in scripts:
voc - Default root:
data/voc - Default image size:
256x256 - Number of classes:
21
The first time you run training or evaluation, torchvision will download the dataset into data/voc.
uv syncTrain the U-Net baseline:
uv run python train_baseline.pyTrain TransUNet:
uv run python train.pyYou can also pass the dataset explicitly:
uv run python train_baseline.py --dataset voc --data-root data/voc
uv run python train.py --dataset voc --data-root data/vocEvaluate the U-Net baseline:
uv run python eval_baseline.pyEvaluate TransUNet:
uv run python eval.pyTo also save a few example prediction figures, use:
uv run python eval.py --output-dir results/eval --viz-samples 3
uv run python eval_baseline.py --output-dir results/eval_baseline --viz-samples 3export XDG_CACHE_HOME=/home/clin4/scratch/cache export UV_CACHE_DIR=/home/clin4/scratch/uv-cache
- Evaluation defaults to the VOC
valsplit. - Metrics reported are pixel accuracy and mean IoU.
- Sample prediction plots, when enabled, show the input image, ground truth overlay, and predicted mask.
dataset.pystill contains Cityscapes and legacy CIFAKE loaders, but the default path is VOC.