博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hyperopt中文文档:Interfacing-With-Other-Languages(在其他语言中使用hyperopt)
阅读量:4962 次
发布时间:2019-06-12

本文共 1277 字,大约阅读时间需要 4 分钟。

translated this article on 23 December 2017

两种接口策略

基本上有两种方法将 hyperopt 与其他语言进行连接:

  1. 你可以为你的成本函数中编写一个Python包装器,这个函数不是用Python编写的(用Python调用其它语言,译者注)
  2. 您可以将 hyperopt-mongo-worker 替换为直接使用JSON与MongoDB通信。

包装对非Python代码的调用

使用hyperopt优化非python函数的参数(例如外部可执行文件)的最简单方法是在外部可执行文件周围编写一个Python函数包装器。假设你有一个可执行文件 foo 需要一个整数的命令行参数 --n 并打印出一个分数,你可以像这样包装它:

import subprocess    def foo_wrapper(n):        # Optional: write out a script for the external executable        # (we just call foo with the argument proposed by hyperopt)        proc = subprocess.Popen(['foo', '--n', n], stdout=subprocess.PIPE)        proc_out, proc_err = proc.communicate()        # 
score = float(proc_out) return score

当然,要优化 n 参数给 foo 你也需要调用 hyperopt.fmin ,并且定义搜索空间。我觉得你会想在Python中做这个部分。

from hyperopt import fmin, hp, random    best_n = fmin(foo_wrapper, hp.quniform('n', 1, 100, 1), algo=random.suggest)    print best_n

当这里的搜索空间大于简单的搜索空间时,您可能需要或者必须包装函数来将其参数转换为外部可执行文件的某种 配置文件/脚本。

这种方法与MongoTrials完全兼容。

直接与MongoDB进行通信

通过直接与MongoDB进行通信,可以更直接地与搜索过程(使用 MongoTrials 时)进行交互,就像 hyperopt-mongo-worker 一样。该内容已经超过了本教程的范围,但Hannes Schultz(@ Contemporaryer)的hyperopt与他的MDBQ项目可以作为有不错的参考,这是一个独立的基于MongoDB的任务队列:

查看代码以及 的内容,了解工作进程如何在工作队列中保留作业,并将结果存储回MongoDB。

转载于:https://www.cnblogs.com/fonttian/p/8480697.html

你可能感兴趣的文章
mysql的SQL_CALC_FOUND_ROWS 使用
查看>>
Quartz 2D编程指南(1) - 概览
查看>>
《Android深度探索卷一》读书笔记一
查看>>
【C语言】Coursera课程《计算机程式设计》台湾大学刘邦锋——Week2课堂笔记
查看>>
Hibernate JPA 如何使用SQL文直接查询
查看>>
synchronized的原理,以及其中的偏向锁
查看>>
Uboot环境变量分析
查看>>
Can we call an undeclared function in C++?
查看>>
oracle荣誉acd_oracle函数
查看>>
adb 静默安装_android开发,关于android app实现静默安装自己(系统签名)
查看>>
mbio期刊拒稿率_科学网—投不出去的论文续:终于被接收了 - 赵广的博文
查看>>
additemdecoration重复_为RecyclerView设置相同尺寸的分割线——不止简单的自定义ItemDecoration...
查看>>
j循环赋予li id_北理工黄佳琦教授:金属基预催化剂在Li–S电池中的电化学相演变...
查看>>
c调用python代码找不到模块_想用Python调用C++代码?Pytorch原来是这样做的
查看>>
cef 3.2 启动速度优化_新区炼钢厂干法除尘控制系统优化改造
查看>>
avd已创建模拟手机 点击开始没反应_如何从零开始搭建属于你自己的博客
查看>>
中文拼写纠错_美国孩子背单词有多么疯狂!娃参加拼写比赛后终于知道了
查看>>
pytdx 获取板块指数_一季度哪个是增强指数王中王?
查看>>
timimg学习数据删了_HexMap学习笔记(一)——创建六边形网格
查看>>
label里面的文字换行_Android 模仿微信读书左右对齐的文字效果
查看>>