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 사용자 계정에서 계정에 따라 코드 사본을 만듭니다. 저장소를 포크하는 방법에 대한 자세한 내용은이 안내서를 참조하십시오.
Hyperopt Repo의 포크를 GitHub 계정에서 로컬 디스크로 복제하십시오.
git clone https://github.com/ < github username > /hyperopt.git
cd hyperopt 환경 생성 :
$ python3 -m venv my_env 또는 $ python -m venv my_env 또는 conda :
$ conda create -n my_env python=3
환경 활성화 :
$ source my_env/bin/activate
또는 콘다와 함께 :
$ 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]상류 리모컨을 추가하십시오. 이로 인해 기본 하이퍼 로프 리포지토리에 대한 참조가 저장되며,이를 최신 변경 사항과 동기화하는 데 사용할 수 있습니다.
$ 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 Add를 사용하여 변경된 파일을 추가 한 다음 git commit을 추가하십시오.
git add modified_files
git commit -m " my first hyperopt commit " 이 프로젝트에 대한 테스트는 Pytest를 사용하며 pytest 호출하여 실행할 수 있습니다.
GIT에 변경 사항을 기록한 다음 변경 사항을 GitHub 계정으로 푸시하십시오.
git push -u origin my_featureDEV 종속성에는 Python 3.6+가 필요합니다.
현재 3 개의 알고리즘이 HyperOpt에서 구현됩니다.
Hyperopt는 가우스 프로세스 및 회귀 트리를 기반으로 한 베이지안 최적화 알고리즘을 수용하도록 설계되었지만 현재 구현되지 않았습니다.
모든 알고리즘은 다음을 사용하여 두 가지 방식으로 병렬화 할 수 있습니다.
Hyperopt 문서는 여기에서 찾을 수 있지만 부분적으로 Wiki에서 개최됩니다. 다음은 가장 관련성이 높은 페이지에 대한 빠른 링크입니다.
위키에서 Hyperopt를 사용하는 프로젝트를 참조하십시오.
공지 사항
논의
이 소프트웨어를 연구에 사용하는 경우 다음과 같이 논문 (http://proceedings.mlr.press/v28/bergstra13.pdf)을 인용하십시오.
Bergstra, J., Yamins, D., Cox, DD (2013) 모델 검색 과학 : 비전 아키텍처를위한 수백 가지 차원에서 하이퍼 파라미터 최적화. tproc. 머신 러닝에 관한 30 번째 국제 회의 (ICML 2013), 2013 년 6 월, pp. I-115 ~ I-23.
이 프로젝트는 지원을 받았습니다