HyperOPT是在尴尬搜索空间上进行串行和并行优化的Python库,其中可能包括实现,离散和条件维度。
从PYPI安装HyperOPT
pip install hyperopt运行第一个示例
# define an objective function
def objective ( args ):
case , val = args
if case == 'case 1' :
return val
else :
return val ** 2
# define a search space
from hyperopt import hp
space = hp . choice ( 'a' ,
[
( 'case 1' , 1 + hp . lognormal ( 'c1' , 0 , 1 )),
( 'case 2' , hp . uniform ( 'c2' , - 10 , 10 ))
])
# minimize the objective over the space
from hyperopt import fmin , tpe , space_eval
best = fmin ( objective , space , algo = tpe . suggest , max_evals = 100 )
print ( best )
# -> {'a': 1, 'c2': 0.01420615366247227}
print ( space_eval ( space , best ))
# -> ('case 2', 0.01420615366247227} 如果您是开发人员并希望做出贡献,请遵循以下步骤。
如果您还没有一个帐户,请在Github上创建一个帐户。
分叉项目存储库:单击页面顶部附近的“叉”按钮。这将在GitHub用户帐户上的您的帐户下的代码副本。有关如何分配存储库的更多详细信息,请参阅本指南。
从您的github帐户到当地磁盘克隆hyperopt仓库的叉子:
git clone https://github.com/ < github username > /hyperopt.git
cd hyperopt通过以下方式创建环境$ python3 -m venv my_env或$ python -m venv my_env或with conda:
$ conda create -n my_env python=3
激活环境:
$ source my_env/bin/activate
或与Conda:
$ conda activate my_env
安装附加功能的依赖项(您需要这些运行pytest):linux/unix: $ pip install -e '.[MongoTrials, SparkTrials, ATPE, dev]'
或Windows:
pip install -e .[MongoTrials]
pip install -e .[SparkTrials]
pip install -e .[ATPE]
pip install -e .[dev]添加上游遥控器。这节省了对主要HyperOPT存储库的引用,您可以使用该存储库来保持存储库同步与最新更改:
$ git remote add upstream https://github.com/hyperopt/hyperopt.git
现在,您应该使用HyperOPT的工作安装,并且您的GIT存储库正确配置。现在,下一步描述修改代码并提交PR的过程:
将您的主分支与上游主分支同步:
git checkout master
git pull upstream master创建一个功能分支以保持您的开发更改:
$ git checkout -b my_feature
并开始进行更改。始终使用功能分支。最好不要在大师分支上工作!
我们建议在提交在步骤6中自动安装的PR之前使用Black格式化代码。
然后,一旦提交确保激活git钩(例如,Pycharm可以选择省略它们)。这可以使用预先建筑物(在步骤6中自动安装)进行,如下所示:
pre-commit install当您在修改的所有文件上提交所有文件时,这将自动运行黑色,如果有任何文件要变黑,则会失败。如果Black不运行以下执行以下操作:
black {source_file_or_directory}使用git在计算机上的功能分支上开发功能,并使用git进行版本控件。编辑完成后,使用git add添加更改的文件,然后添加git commit:
git add modified_files
git commit -m " my first hyperopt commit "该项目的测试使用pytest,可以通过调用pytest来运行。
记录您的git的更改,然后将更改推向您的github帐户:
git push -u origin my_feature请注意,开发依赖项需要python 3.6+。
目前,在HyperOPT中实现了三种算法:
HyperOPT旨在根据高斯工艺和回归树来容纳贝叶斯优化算法,但目前尚未实施。
所有算法都可以通过两种方式并行,使用:
HyperOPT文档可以在此处找到,但仍部分托管在Wiki上。以下是一些最相关页面的快速链接:
请参阅Wiki上使用HyperOPT的项目。
公告
讨论
如果您使用此软件进行研究,请引用论文(http://proceedings.mlr.press/v28/bergstra13.pdf),如下所示:
Bergstra,J.,Yamins,D.,Cox,DD(2013)进行模型搜索科学:在数百个方面的视觉体系结构中的超参数优化。 Tproc。第30届机器学习国际会议(ICML 2013),2013年6月,第I-115至I-23。
该项目已得到来自