这个项目能做什么

Uncertainty Baselines 是 Google 的一个研究仓库,为深度学习中的不确定性与鲁棒性基准测试提供模板和参考实现。其既定目标是:在标准任务上提供标准方法和最先进方法的高质量实现;保持文件之间的依赖最小化,以便基线易于分叉;并规定基准测试的最佳实践。 其动机在于:不确定性与鲁棒性代码往往是每篇论文各自为政的一次性实现,没有可借鉴的共享示例;即便是标准任务,在架构、超参数和预处理上也各不相同,使得比较变得困难。 安装通过 pip 从 Git 仓库进行;没有稳定版本,API 可能发生变化。安装该软件包不会安装后端:TensorFlow、TensorFlow Addons 和 TensorBoard 必须单独安装,额外依赖列在 setup.py 中。 使用以 baselines/ 目录为中心,按训练数据集组织。例如,CIFAR 确定性基线是一个 Wide ResNet 28-10。复现基线通常需要 TPU,文中描述了三种选项:Colab(免费 TPU,方便但不保证长期可用)、Google Cloud(最灵活,附有示例环境变量和用于 BatchEnsemble 基线的启动命令),以及更改标志以使用 GPU 或更少核心。README 警告说,更改核心数量很重要,因为总批量大小通常由 num_cores 决定。 ub.datasets 模块遵循 TensorFlow Datasets API,并添加了诸如默认预处理之类的最小逻辑。数据集可以直接实例化,也可以通过字符串调用 get 函数实例化,并且可以通过 tfds.as_numpy 或更低拷贝的 _numpy 路径与 Jax 和 PyTorch 一起使用。ub.models 模块遵循 tf.keras.Model API,并给出了一个构建 wide ResNet 的示例。 跨数据集定义的指标包括参数数量、测试准确率、测试校准误差(期望校准误差)、测试负对数似然以及训练/测试运行时间。结果报告到大约三位有效数字,并在十次运行上取平均。TensorFlow 摘要写入 model_dir 以供 TensorBoard 使用,包括超参数插件,并可上传到 tensorboard.dev。 README 包含 BibTeX 引用,并列出了使用过该代码的论文。贡献指南涵盖使用 yapf 进行格式化、添加基线(分叉脚本、调整默认值、将结果添加到表格)、添加数据集(参考、BaseDataset 的子类、测试、注册)以及添加模型(参考、create_model 函数、测试、注册)。