用于执行无梯度优化的python工具箱

nevergrad的Python项目详细描述


CircleCI

Nevergrad-无梯度优化平台

nevergrad是一个python 3.6+库。它可以与以下组件一起安装:

pip install nevergrad

您也可以使用以下命令安装主分支而不是最新版本:

pip install git+https://github.com/facebookresearch/nevergrad@master#egg=nevergrad

或者,可以克隆存储库并从存储库文件夹中运行pip install -e .

默认情况下,这仅安装优化和检测子包的要求。如果你也对基准测试感兴趣, 安装时应该使用[benchmark]标志(例如:pip install 'nevergrad[benchmark]'),如果还需要测试工具,请使用 [all]标志(例如:pip install -e '.[all]'

目标和结构

此软件包的目标是提供:

  • 无梯度/无导数优化算法,包括能够处理噪声的算法。
  • 工具,用于插入任何代码,使优化参数/超参数(无论它们是连续的、离散的还是连续变量和离散变量的混合)变得轻松。
  • 函数用于测试优化算法。
  • benchmark例程以便轻松比较算法。

包的结构遵循其目标,因此您将找到子包:

  • optimization:实现优化算法
  • instrumentation:将代码转换为定义良好的函数以进行优化的工具。
  • functions:实现简单和复杂的基准函数
  • benchmark:用于运行在基准函数上比较算法的实验
  • common:整个包中使用的一组工具

Example of optimization

具有两点de.

文档

下面的自述文件非常通用,这里有一些链接,可以找到有关的详细信息:

基本优化示例

所有优化器都假设在优化开始时有一个居中且减少的先验值(即0平均值和酉标准差)。但是,他们能够找到与最初的解决方案相去甚远的解决方案。

优化(最小化!)使用优化器的函数(这里是OnePlusOne)可以很容易地使用以下命令运行:

importnevergradasngdefsquare(x):returnsum((x-.5)**2)optimizer=ng.optimizers.OnePlusOne(instrumentation=2,budget=100)recommendation=optimizer.optimize(square)print(recommendation)# optimal args and kwargs>>>Candidate(args=(array([0.500,0.499]),),kwargs={})

recommendation保存优化器为所提供函数找到的最佳属性argskwargs。 在本例中,最佳值将在recommendation.args[0]中找到,并且是大小为2的np.ndarray

instrumentation=n是表示函数只有一个变量的快捷方式,即维度n, 有关更复杂的检测,请参见instrumentation tutorial

您可以使用以下命令打印优化器的完整列表:

importnevergradasngprint(list(sorted(ng.optimizers.registry.keys())))

optimization documentation包含有关如何使用多个工作进程、通过asktell接口完全控制优化的更多信息,以及有关如何为问题选择适当的优化器的一些建议。

引用

@misc{nevergrad,author={J. Rapin and O. Teytaud},title={{Nevergrad - A gradient-free optimization platform}},year={2018},publisher={GitHub},journal={GitHub repository},howpublished={\url{https://GitHub.com/FacebookResearch/Nevergrad}},}

许可证

nevergrad是在mit许可下发布的。有关其他详细信息,请参见LICENSE

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

推荐PyPI第三方库


热门话题
java为BST支持的符号表创建Iterable   java抽屉布局在按下后未关闭(取决于supportv4 lib)   java Spring Soap拦截器如何修改消息的内容?   使用camel和springboot时,java ProducerTemplate始终为空   RecycleServiceAdapter中的java itemview不能为空错误   java HSSFCell setCellStyle将样式应用于所有工作表的单元格,而不是所选单元格   java底页Android滚动问题   导致一致GC搅动的java技术   java Ho w在用户成功登录SAML OKTA后获取用户信息   java始终在顶部图像视图   java如何在Android中创建需要上下文的单例?   java Jersey提供程序未以编程方式获取上下文   java Observablelist和arraylist,不同的行为   java构造函数给我的参数列表长度不同   java Eclipse Lombok批注未编译。。。为什么?