Official implementation of the ECCV 2026 paper "Geometric Gradient Rectification for Safe Open-Set Semi-Supervised Learning".
GGR is a plug-in optimization framework that reformulates open-set SSL as
gradient-level control rather than sample-level selection. Given a supervised
gradient
surgery_mode |
Rectifier | Update rule |
|---|---|---|
vlr (default) |
Vector-Level Rectifier |
|
osr |
Orthogonal Subspace Rectifier | |
csr |
Conic Subspace Rectifier |
conda create -n ggr python=3.10 -y
conda activate ggr
pip install -r requirements.txtAll datasets are expected under ./data:
./data
├── cifar10/cifar-10-batches-py
├── cifar100/cifar-100-python
├── cifar10_openset
├── cifar100_openset
├── imagenet30
└── ood_data
CUDA_VISIBLE_DEVICES=0 python train.py --c config/openset_cv/ggriomatch/ggriomatch_cifar10_6_150_0.yamlHelper scripts:
bash scripts/train_cifar10.sh 0 ggriomatch
bash scripts/train_cifar100_20.sh 0 ggropenmatch
bash scripts/train_cifar100_50.sh 0 ggrdac
bash scripts/train_in30.sh 0 ggriomatchCheckpoints go to ./saved_models/openset_cv/<algorithm>/<save_name>/.
Configs live under config/openset_cv/<algorithm>/.
- CIFAR-10 / CIFAR-100 base:
<algorithm>_<dataset>_<num_classes>_<num_labels>_<seed>.yaml - ImageNet-30 base:
<algorithm>_in30_<percent>_<seed>.yamlwithpercentin{p1, p5}
Closed-set accuracy on the in-distribution validation split is reported in
the training log at every num_eval_iter iterations, and the best checkpoint
is saved as model_best.pth. For the open-set evaluation, which measures
balanced accuracy across the in-distribution classes and the "unknown"
category on the full test set (optionally with auxiliary OOD data), run
eval.py against a saved checkpoint:
python eval.py \
--c config/openset_cv/ggriomatch/ggriomatch_cifar10_6_150_0.yaml \
--load_path saved_models/openset_cv/ggriomatch/ggriomatch_cifar10_6_150_0/model_best.pthBuilt on top of:
@misc{chen2026geometricgradientrectificationsafe,
title={Geometric Gradient Rectification for Safe Open-Set Semi-Supervised Learning},
author={Jiahe Chen and Qian Shao and Qiyuan Chen and Jiaying He and Jintai Chen and Jian Wu and Hongxia Xu},
year={2026},
eprint={2606.26973},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2606.26973},
}