文档首页 > > AI工程师用户指南> 训练管理> 自动化搜索作业> 示例:使用经典超参算法搜索超参

示例:使用经典超参算法搜索超参

分享
更新时间:2020/07/06 GMT+08:00

为了简单起见,以优化黑盒函数来作为示例,来介绍超参搜索的使用。平时对于超参的搜索,其实也是一个黑盒优化问题,所以可以直接迁移。

样例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import time
import autosearch    # 改动1: 导入autosearch包


def black_box_function(x, y):
    """Function with unknown internals we wish to maximize.
  This is just serving as an example, for all intents and
  purposes think of the internals of this function, i.e.: the process
  which generates its output values, as unknown.
  """
    return -(x ** 2) - (y - 1) ** 2 + 1


def train():
    result = black_box_function(autosearch.config["x"], autosearch.config["y"])    # 改动2: 获得框架下发的参数
    time.sleep(0.2)
    autosearch.reporter(result=result)    # 改动3: 反馈结果给AutoSearch框架

上述样例代码的搜索目标是,找到black_box_function函数的最大值。

配置文件编写

使用bayes算法来优化时,我们可以这样配置yaml文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
general: 
  gpu_per_instance: 1 
  cpu_per_instance: 1 

search_space: 
  - type: search_space
    params:
    - type: continuous_param 
      name : x 
      start: 1 
      stop: 4 
      num: 2 
    - type: continuous_param 
      name : y 
      start: 1 
      stop: 4 
      num: 2 

search_algorithm: 
  type: bayes_opt_search 
  reward_attr: result 
  max_concurrent: 2 
  num_samples: 4 
  mode: max

启动搜索作业

将上面的脚本和yaml文件上传至OBS后,即可在页面上启动作业。由于不需要实际数据,因此任意选择已有数据集,或者空的OBS目录即可。其他配置的选择参考示例:使用经典超参算法搜索超参中的启动搜索作业步骤。

使用其他超参算法

ModelArts支持简单的随机搜索和网格搜索,以及其他三个经典的超参搜索算法。使用不同的超参算法,只需要修改yaml中search_algorithm部分即可,具体算法参数说明可参见yaml配置文件说明章节的表4表5表6

  • 使用随机搜索时参考如下配置
    search_algorithm:
        type: random_search
        repeat: 1000
        reward_attr: result
  • 使用网格搜索时参考如下配置
    search_algorithm:
        type: grid_search
        reward_attr: result

    网格搜索默认会遍历搜索空间中的所有可能,只适合于搜索空间不太大的场景。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问