Hypertopt es una biblioteca de Python para la optimización en serie y paralela sobre espacios de búsqueda incómodos, que pueden incluir dimensiones de valor real, discretas y condicionales.
Instale Hypheropt de Pypi
pip install hyperoptPara ejecutar su primer ejemplo
# 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} Si eres un desarrollador y desea contribuir, siga estos pasos.
Cree una cuenta en GitHub si aún no tiene una.
Bifurca el repositorio del proyecto: haga clic en el botón 'Bifurque' cerca de la parte superior de la página. Esto crea una copia del código en su cuenta en la cuenta de usuario de GitHub. Para obtener más detalles sobre cómo desembolsar un repositorio, consulte esta guía.
Clone su bifurcación del repositorio de Hypperopt de su cuenta de GitHub a su disco local:
git clone https://github.com/ < github username > /hyperopt.git
cd hyperopt Crear entorno con:
$ python3 -m venv my_env o $ python -m venv my_env o con conda:
$ conda create -n my_env python=3
Activar el entorno:
$ source my_env/bin/activate
o con conda:
$ conda activate my_env
Instalar dependencias para extras (necesitará estos para ejecutar pytest): linux/unix: $ pip install -e '.[MongoTrials, SparkTrials, ATPE, dev]'
o Windows:
pip install -e .[MongoTrials]
pip install -e .[SparkTrials]
pip install -e .[ATPE]
pip install -e .[dev]Agregue el control remoto aguas arriba. Esto guarda una referencia al repositorio principal de HypertoPt, que puede usar para mantener su repositorio sincronizado con los últimos cambios:
$ git remote add upstream https://github.com/hyperopt/hyperopt.git
Ahora debe tener una instalación en funcionamiento de HypertoPt, y su repositorio GIT correctamente configurado. Los siguientes pasos ahora describen el proceso de modificación del código y envían un PR:
Sincronice su rama maestra con la rama maestra aguas arriba:
git checkout master
git pull upstream masterCree una rama de características para mantener sus cambios de desarrollo:
$ git checkout -b my_feature
y comenzar a hacer cambios. Siempre use una rama de características. ¡Es una buena práctica nunca trabajar en la rama maestra!
Recomendamos usar Black para formatear su código antes de enviar un PR que se instala automáticamente en el paso 6.
Luego, una vez que se comprometa, asegúrese de que se activen Git Hooks (PyCharm, por ejemplo, tiene la opción de omitirlos). Esto se puede hacer utilizando el pre-Commit, que se instala automáticamente en el paso 6, de la siguiente manera:
pre-commit installEsto se ejecutará Black automáticamente cuando se comprometa en todos los archivos que modificó, no hay algún archivo que requiera ennegrecer. En caso de que Black no ejecute, ejecute lo siguiente:
black {source_file_or_directory}Desarrolle la función en su rama de características en su computadora, utilizando GIT para hacer el control de versiones. Cuando haya terminado de editar, agregue archivos cambiados usando git add y luego git confirmar:
git add modified_files
git commit -m " my first hyperopt commit " Las pruebas para este proyecto usan Pytest y se pueden ejecutar llamando pytest .
Registre sus cambios en GIT, luego presione los cambios a su cuenta de GitHub con:
git push -u origin my_featureTenga en cuenta que las dependencias requieren Python 3.6+.
Actualmente, se implementan tres algoritmos en HypertoPt:
Hypertopt ha sido diseñado para acomodar algoritmos de optimización bayesianos basados en procesos gaussianos y árboles de regresión, pero actualmente no se implementan.
Todos los algoritmos pueden ser paralelos de dos maneras, usando:
La documentación de Hypertopt se puede encontrar aquí, pero en parte todavía está alojada en el wiki. Aquí hay algunos enlaces rápidos a las páginas más relevantes:
Consulte Proyectos utilizando Hypertopt en la wiki.
Anuncios
Discusión
Si usa este software para la investigación, cita el documento (http://proceptings.mlr.press/v28/bergstra13.pdf) como sigue:
Bergstra, J., Yamins, D., Cox, DD (2013) Haciendo una ciencia de la búsqueda de modelos: optimización de hiperparameter en cientos de dimensiones para las arquitecturas de la visión. Tproc. de la 30ª Conferencia Internacional de Aprendizaje Machine (ICML 2013), junio de 2013, pp. I-115 a I-23.
Este proyecto ha recibido apoyo de