跳到内容

sgvaze/osr_closed_set_all您需要

开放集识别:一个好的封闭集分类器就是你所需要的吗?

我们的论文代码:开放集识别:一个好的封闭集分类器就是你所需要的吗?

我们处理开放式识别:检测测试样本是否来自看不见的类(模型在训练期间没有看到)的任务。我们找到了一个简单的训练常规闭集分类器的基线,并且使用“最大logit分数”(MLS)作为开放集指标,可以在许多评估中实现SoTA。我们还提出了用于开放集识别和相关任务的语义转移基准。

形象

目录

💥 1.更新

🌐 2.语义转换基准

🏃 3.跑步

📈 4.超参数

📋5.引文

预打印后的纸张更新

  • 我们已经将Stanford Cars添加到Semantic Shift Benchmark中。我们还提供了ImageNet拆分,以与Winter’21 ImageNets版本兼容。
    • 如果可用,我们将“中等”和“硬”SSB拆分合并为单个“硬”拆分。
  • 表1中的改进结果。强大的基线现在在六个开放集数据集中的四个上击败了SoTA!
  • 我们在附录F中添加了OoD(分布外检测)基准测试的结果。
    • 我们发现,在标准基准套件上,强大的基线与SoTA OoD方法具有竞争力。
  • 我们注意到,我们认为只在ImageNet-1K上训练的ViT模型实际上是在ImageNet-21K上预先训练的。这可能解释了图3a中的异常结果。
    • 我们从在这里。回购将模型列为“在Imagenet-1K上进行预处理”,但对论文的检查表明,这意味着在Imagenet-21K上微调之前,需要在Imagenet-1K上进行预先处理。

回购更新(2022年1月18日)

  • 包括TinyImageNet上MLS基线的预训练权重预处理重量.
  • 包括bash_scripts/osr_train.sh使用本文中调优的超参数对给定数据集的所有分割进行模型训练。

SSB中数据集的下载说明可以在以下链接中找到。文件夹数据/open_set_splits包含具有类拆分的pickle文件。对于每个数据集,数据包含返回PyTorch数据集的函数,这些数据集包含根据SSB拆分的“可见”和“不可见”类。对于FGVC数据集,pickle文件还包含关于哪些未看到的类与哪些已看到的类最相似的信息。

以下链接也提供了传统开放集数据集的链接:

对于TinyImageNet,您还需要运行创建_val_img_folder在里面数据/tinyimagenet.py创建包含测试数据的目录。

依赖关系

pip安装-r要求.txt

配置

在中设置数据集和预处理模型的路径(用于细粒度实验)配置.py

设置保存目录(日志文件目标)和蟒蛇(python解释器的路径)bash_脚本脚本。

脚本

列车模型:要针对指定数据集上的所有拆分对模型进行训练(使用论文中调整过的超参数),请运行:

bash bash_scripts/osr_train.sh

评估模型:可以通过编辑评估模型导出ID(_I)在里面方法/tests/openset_test.py。实验ID打印在命名空间位于每个日志文件的顶部。

预训练模型:可以在中找到五个TinyImageNet分割上MLS基线的预训练权重预处理重量/在闭集类的测试集上,模型的平均准确率应达到84.2%(跨越五个分割),在开放集检测任务上,模型平均AUROC应达到83.0%。模型都是VGG32型和使用测试时的图像归一化图像大小=64.

我们调整了标签平滑和RandAug超参数以优化闭集单一随机验证的准确性对每个数据集进行拆分。对于其他超参数(图像大小、批量大小、学习率),我们从标准数据集(特别是ARPL论文)的开放集文献和FGVC文献中的值建议的FGVC基准。

交叉熵最优超参数:

数据集 图像大小 学习率 RandAug N公司 RandAug M公司 标签平滑 批量大小
MNIST公司 32 0.1 1 8 0 128
SVHN公司 32 0.1 1 18 0 128
CIFAR-10公司 32 0.1 1 6 0 128
CIFAR+N公司 32 0.1 1 6 0 128
微型图像网 64 0.01 1 9 0.9 128
幼崽 448 0.001 2 30 0.3 32
FGVC-飞机 448 0.001 2 15 0.2 32

ARPL+CS最优超参数:

(注意TinyImageNet的学习率较低)

数据集 图像大小 学习率 兰道8月N日 RandAug M公司 标签平滑 批量大小
MNIST公司 32 0.1 1 8 0 128
SVHN公司 32 0.1 1 18 0 128
CIFAR10公司 32 0.1 1 15 0 128
CIFAR+N公司 32 0.1 1 6 0 128
微型图像网 64 0.001 1 9 0.9 128
幼崽 448 0.001 2 30 0.2 32
FGVC-飞机 448 0.001 2 18 0.1 32

其他

该回购还包含其他有用的实用程序,包括:

  • utils/logfile_parser.py:直接解析标准输出准确性/AUROC指标输出
  • 数据/open_set_datasets.py:一个有用的框架,可以轻松地将现有数据集拆分为可控的开放集拆分进入之内火车,val值,测试已知测试未知。注意:ImageNet尚未在此处集成。
  • 实用程序/调度程序.py:将余弦热重启与线性爬升作为PyTorch学习速率调度器的实现

如果您在研究中使用此代码,请考虑引用我们的论文:

@会议记录{vaze2022打开,title={开放集识别:一个好的封闭集分类器就是你所需要的吗?},author={Sagar Vaze和Kai Han以及Andrea Vedaldi和Andrew Zisserman},booktitle={学习代表国际会议},年份={2022}}

此外,请考虑引用开放集识别中的对手互反点学习,我们根据其代码构建此回购。

关于

ICLR 22口头报告的官方报告:“开放集识别:一个好的封闭集分类器是你所需要的吗?”

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包