pytorch中的贝叶斯优化

botorch的Python项目详细描述


BoTorch Logo

CondaPyPILicenseCircleCICodecov

Botorch是一个基于Pythorch的贝叶斯优化库。

botorch目前处于测试阶段,正在积极开发中!

为什么是波托奇?

波托奇

  • 提供一个模块化且易于扩展的接口,用于编写贝叶斯 优化原语,包括概率模型,捕获函数, 以及优化器。
  • 利用pytorch的强大功能,包括自动差异化、本地支持 对于使用与设备无关的代码的高度并行化的现代硬件(如GPU)。 以及动态计算图。
  • 通过 reparameterization trick,所以 直截了当地实施新想法而不必施加限制 关于基础模型的假设。
  • 支持与pytorch中的深层和/或复杂体系结构无缝集成。
  • 对最先进的概率模型有一流的支持 GPyTorch,包括支持多任务高斯 过程(GPS)深核学习,深GPS和近似推理。

目标受众

研究人员和 在贝叶斯优化和人工智能方面经验丰富的实践者。 我们建议使用botorch作为实现新算法的低级api 为了Ax。ax被设计成一个易于使用的平台 对于最终用户来说,同时对贝叶斯具有足够的灵活性。 用于处理特征转换的优化研究人员, (元)数据管理、存储等。 我们建议不积极研究贝叶斯的最终用户 优化只需使用ax。

安装

安装要求

  • Python=3.6
  • Pythorch=1.2
  • gpytorch>;=0.3.5
  • scipy
安装最新版本

最新版本的Botorch可以通过 Anaconda(推荐):

conda install botorch -c pytorch

或通过pip

pip install botorch

MacOS用户的重要注意事项:

  • 你需要确保你的pytorch版本与mkl( 非优化版本的波托奇在 一些设置)。在MacOS上手动设置此项可能很棘手-以确保 工作正常,请按照 PyTorch installation instructions
  • 如果你在macos上需要cuda,你需要从源代码构建pytorch。拜托 请参阅上面的pytorch安装说明。
从最新主机安装

如果你想试试我们的最新功能(不要介意潜在的 偶尔会遇到一些bug),您可以安装最新的 直接从github获取主控文件(这还需要安装当前的gpytorch主控文件):

pip install git+https://github.com/cornellius-gp/gpytorch.git
pip install git+https://github.com/pytorch/botorch.git

手动/dev安装

或者,也可以手动安装。对于基本安装,请运行:

git clone https://github.com/pytorch/botorch.git
cd botorch
pip install -e .

要自定义安装,还可以运行 上图:

  • pip install -e .[dev]:还安装开发所需的所有工具 (测试、过梁、文档构建;请参见下面的Contributing)。
  • pip install -e .[tutorials]:还安装运行教程笔记本所需的所有软件包。

开始

下面是贝叶斯优化循环的主要组成部分的简要介绍。 有关更多详细信息,请参见我们的DocumentationTutorials

  1. 将高斯过程模型拟合到数据
importtorchfrombotorch.modelsimportSingleTaskGPfrombotorch.fitimportfit_gpytorch_modelfromgpytorch.mllsimportExactMarginalLogLikelihoodtrain_X=torch.rand(10,2)Y=1-torch.norm(train_X-0.5,dim=-1)+0.1*torch.rand(10)train_Y=(Y-Y.mean())/Y.std()gp=SingleTaskGP(train_X,train_Y)mll=ExactMarginalLogLikelihood(gp.likelihood,gp)fit_gpytorch_model(mll)
  1. 构造一个获取函数
frombotorch.acquisitionimportUpperConfidenceBoundUCB=UpperConfidenceBound(gp,beta=0.1)
  1. 优化采集功能
frombotorch.optimimportjoint_optimizebounds=torch.stack([torch.zeros(2),torch.ones(2)])candidate=joint_optimize(UCB,bounds=bounds,q=1,num_restarts=5,raw_samples=20,)

贡献

请参阅CONTRIBUTING文件以获取帮助。

许可证

botorch是mit授权的,可以在LICENSE文件中找到。

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

推荐PyPI第三方库


热门话题
java为什么我的Droid Mini不会出现在Eclipse设备中?[视窗]   有没有一种方法专门从Java到Ada的数组中挑选元素   java字符串s1==字符串s2(true),但FieldOffset不同   java如何解决listView Onclick项编译时代码过大的错误   java如何知道文件的哪一行发生了IOexception   java在SharedReferences中保存JSON数组可以吗?   java中数组的不变性   有没有办法用Java下载Microsoft Azure数据中心IP范围?   java在gwt中更改装饰选项卡栏的背景图像   jsp中基于64字节数组的Java图像显示   Java应用程序内存使用情况   在对接受的socket调用close()之前,Java ServerSocket不会接受新连接   Android或Xamarin中Edittext的java设置提示   java如何在安卓中将图像和音频文件附加到电子邮件?   java在更新方法中获取JDBCTemplate中的最后一个插入密钥   java使用ExecutorService时,线程内的类是否安全?   java需要我的2d数组来打印,但它在输出框中只显示一个点   java如何在它下面显示一些文件夹属性?   java SQLite如何在数据库中搜索特定表?