贝叶斯优化结构搜索

aalto-boss的Python项目详细描述


贝叶斯优化结构搜索(BOSS)是一种主动机器学习技术,用于加速能量和物性相空间的全局搜索。它旨在促进计算机和实验自然科学中的机器学习。在

有关代码和教程的更详细描述,请参阅user guide。在

安装

BOSS作为PyPI包分发,可以使用pip安装:

python3 -m pip install --user aalto-boss

基本用途

作为一个简单的例子,考虑有界一维函数的优化。BOSS可以直接从Python运行,也可以通过CLI接口运行,下面将简要说明这两种方法。注意,BOSS总是最小化给定函数。在

Python iterface

要从Python运行BOSS,我们首先定义目标函数,默认情况下,BOSS希望该函数以单个2dnumpy数组作为参数(此行为可以修改)并返回一个标量值。接下来,我们导入BOMain对象,并向它提供函数加上任意数量的BOSS关键字,然后可以开始优化。完成后,优化结果将返回到BOResults对象中。在

^{pr2}$

命令行iterface

CLI由名为boss的可执行文件提供。用户必须提供一个包含BOSS关键字列表的输入文件和定义要优化的函数的单独Python脚本。默认情况下,BOSS希望此函数以单个2dnumpy数组作为参数(此行为可以修改)并返回一个标量值。下面我们在Python脚本中定义这样一个函数,任意命名为user_function.py

""" user_function.py
This script contains the function definition for the minimization problem
f(x) = sin(x) + 1.5*exp(-(x-4.3)**2) ,  0 < x < 7
Note that the bounds are specified in the BOSS input file.
"""importnumpyasnpdeffunc(X):""" BOSS-compatible definition of the function. """x=X[0,0]returnnp.sin(x)+1.5*np.exp(-(x-4.3)**2)

为了最小化受约束0<;x<;7约束的函数,我们定义了一个BOSS输入文件boss.in

# boss.inuserfnuser_function.pyfuncbounds07yrange-11kernelrbfinitpts5iterpts15verbosity2

现在可以从命令行启动优化:

$ boss o boss.in

学分

BOSS正在阿尔托大学的Computational Electronic Structure Theory (CEST) group积极发展中。开发团队的过去和现在的成员包括

  • 帕克金维尔
  • 亨利·保兰斯基
  • 阿特图·托尔瓦南
  • 乌尔普雷姆斯
  • 努蒂·斯坦恩
  • Joakim Löfgren(维修人员)
  • Milica Todorović(组长)

如果您希望在您的研究中使用BOSS,请引用

米利卡·托多罗维奇、迈克尔·古特曼、朱卡·科兰德和帕特里克·林克
功能材料原子结构的贝叶斯推断 npj计算材料5,35(2019年)

问题和功能请求

强烈建议通过 gitlab issue tracker。 BOSS开发团队可以通过电子邮件联系milica.todorovic@aalto.fi

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

推荐PyPI第三方库


热门话题
jsf-java。安全NoSuchAlgorithmException:在jboss上部署时AES密钥生成器不可用   使用servlet与持久化java应用程序对话   java SPNEGO获取用户详细信息   如何向数组中的每个元素添加特定的数字?JAVA   佛教日历中的java JSpinner日期编辑器   tomcat6如何使用ip地址从另一台机器运行java动态web项目   向数据模型添加行时发生java ArrayIndexOutOfBoundsException   java奇怪的线程行为   java为什么程序没有显示任何输出?   具有弱值的java HashMap   java可以收集数据。不可修改地图是否保留原始地图?   java如何确定应用程序中的gccpu利用率?   带文本文件和比较索引的java摩尔斯电码   java第二个按钮没有响应   Maven LifecycleExecutionException java。util。ConcurrentModificationException帮助读取此堆栈跟踪/调试   java试图实现持有密钥绑定   运行时如何在Java程序中检索环境变量(外部修改)的修改值?   java可以在Gsheets数据验证下拉菜单中使用IF函数吗   java应该是抽象还是实现的一部分?