BDL基准

bdl-benchmarks的Python项目详细描述


贝叶斯深度学习基准

为了使用bayesian deep learning(bdl)工具改变现实世界,这些工具必须扩展到现实世界的设置。为此,我们,研究界,必须能够评估我们的推理工具(并快速迭代)与现实世界的基准任务。我们应该能够做到这一点,而不必担心特定于应用程序的领域知识,例如医学应用程序中经常需要的专业知识。除了开发的成本和努力之外,我们还需要基准测试推理的健壮性、性能和准确性。这些基准测试应该具有多种规模,从快速开发周期的玩具级基准测试,到真实到真实应用程序的大型数据基准测试,捕捉它们的约束。

我们的bdl基准应该

  • 提供透明、模块化和一致的接口,用于评估各种下游任务的深层概率模型
  • 依赖于不确定性质量的专家驱动度量(实际应用程序利用真实世界中的bdl不确定性),但会抽象出专家知识,并消除在真实世界数据集上运行实验所需的样板步骤;
  • 在公平和现实的环境下(例如,计算资源、模型大小、数据集),将新模型的性能与机器学习社区广泛采用的经过良好调整的基线进行比较;
  • 提供基线模型的参考实现(例如,蒙特卡罗辍学推断、平均场变分推断、深集成),实现快速原型和新工具的轻松开发;
  • 独立于特定的深度学习框架(例如,不依赖于TensorFlowPyTorch等),并与scipy生态系统(即NumPyPandasMatplotlib)集成。基准测试与框架无关,而基线依赖于框架。

在这个回购协议中,我们努力为bdl社区提供这些急需的基准,并收集和维护社区提供的新基准和基准。colab笔记本演示了我们基准测试中类似mnist的工作流是available here

我们强烈建议您将您的模型作为新的基线供其他人竞争,并为其他人评估其模型贡献新的基准

基准列表

bayesian deep learning benchmarks(简称bdl benchmarks)是一个开源框架,旨在弥合深度概率机器学习模型设计与应用于实际问题之间的差距。我们目前支持的基准是:

安装

bdl benchmarks作为pypi包(python3兼容)提供,可安装为:

pip3 install git+https://github.com/OATML/bdl-benchmarks.git

数据下载和准备是特定于基准的,您可以按照baselines/<benchmark>/README.md(例如^{})上的相关指南进行操作。

示例

例如,Diabetic Retinopathy Diagnosis基准有几个基线,包括mc dropout、mfvi、deep ensembles等等。这些模型使用眼睛中的血管图像进行训练:

模型试图预测糖尿病视网膜病变hy,并将其不确定性用于预筛选(将模型不确定的患者发送给专家进行进一步检查)。当您实现一个新模型时,您可以很容易地根据回购中提供的现有基线结果对您的模型进行基准测试,并使用专家度量生成情节(如在将50%个最不确定的病人交给专家时,保留数据的AUC)。

您甚至可以使用colab notebook来查看基准的工作流,并为其他人提供您的模型以进行基准测试。

引用为

请在使用这些基准时引用个别基准,以及比较基准。关于Diabetic Retinopathy Diagnosis基准,请参见here

联系我们

存储库由Oxford Applied and Theoretical Machine Learning组开发和维护。通过电子邮件向我们询问问题或提交任何问题以改进框架。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Google Billing Library:QueryPurchaseAsync:取消购买的订阅资源未返回   java转换列表mapsturct中的单个对象   java简单算法。我做不好   包含集合的@ManyToMany映射的java JPA2持久性   在Java中序列化和反序列化对象时发生BuffereImage错误   java使用ui:param传递值并在backingbean中访问它们   java从应用程序读取配置。yml至POJO列表地图   java中在while循环外部调用文件值   java如何与来自不同类的UI交互   java如何在jTable中显示2D数组?   在Java 8中,类为什么不从接口继承默认方法?   java类。getAnnotation和getAnnotations无法正常工作   java处理pagertabstrip上的触摸事件   java GWT和struts2异常   用Java解析HTTP查询字符串   java这段代码SQL注入安全吗?