
# 创建自动模型优化的训练作业
#### 背景信息
如果用户使用的AI引擎为pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64和tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64，并且优化的超参类型为float类型，ModelArts支持用户使用超参搜索功能。
在0代码修改的基础下，实现算法模型的超参搜索。需要完成以下步骤：
1. [准备工作]
2. [创建算法]
3. [创建训练作业]
4. [查看超参搜索作业详情]
 
#### 约束限制
创建算法仅旧版ModelArts控制台页面支持。
 #### 准备工作
- 数据已完成准备：已在ModelArts中创建可用的数据集，或者您已将用于训练的数据集上传至OBS目录。
- 请准备好训练脚本，并上传至OBS目录。训练脚本开发指导参见[开发用于预置框架训练的代码](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0008.html)。
- 在训练代码中，用户需打印搜索指标参数。
- 已在OBS创建至少1个空的文件夹，用于存储训练输出的内容。
- 由于训练作业运行需消耗资源，确保账户无欠费。
- 确保您使用的OBS目录与ModelArts在同一区域。
 
 #### 创建算法
进入登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，参考[创建算法](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0003.html)操作指导，创建自定义算法。镜像应该满足pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64或tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64引擎。
对于用户希望优化的超参，需在"超参"设置中定义，可以给定名称、类型、默认值、约束等，具体设置方法可以参考[表6](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0003.html#ZH-CN_TOPIC_0000002002276141__table2782192604113)。
单击勾选"自动搜索"，为算法设置算法搜索功能。自动搜索作业运行过程中，ModelArts后台通过指标正则表达式获取搜索指标参数，朝指定的优化方向进行超参优化。用户需要在代码中打印搜索参数并在控制台配置以下参数。
图1设置算法搜索功能   
![](https://support.huaweicloud.com/usermanual-standard-modelarts/figure/zh-cn_image_0000002011799846.png "点击放大")
- 搜索指标 搜索指标为目标函数的值，通常可以设置为loss、accuracy等。通过优化搜索指标的目标值超优化方向收敛，找到最契合的超参，提高模型精度和收敛速度。
  表1搜索指标参数 
  | 参数   | 说明                             |
  |:---|:---|
  | 名称   | 搜索指标的名称。需要与您在代码中打印的搜索指标参数保持一致。 |
  | 优化方向 | 可选"最大化"或者"最小化"。                |
  | 指标正则 | 填入正则表达式。您可以单击智能生成功能自动获取正则表达式。  |
     
  
- 设置自动化搜索参数 从已设置的"超参"中选择可用于搜索优化的超参。优化的超参仅支持float类型，选中自动化搜索参数后，需设置取值范围。
  
- 搜索算法配置 ModelArts内置三种超参搜索算法，用户可以根据实际情况选择对应的算法，支持多选。对应的算法和参数解析请参考以下：
  - bayes_opt_search：[贝叶斯优化（SMAC）](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0031.html#ZH-CN_TOPIC_0000002011641562__section412510356126)
  
  - tpe_search：[TPE算法](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0031.html#ZH-CN_TOPIC_0000002011641562__section19403105812125)
  
  - anneal_search：[模拟退火算法（Anneal）](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0031.html#ZH-CN_TOPIC_0000002011641562__section15726112121312)
   
提交创建算法完成后即可执行下一步，创建训练作业。
 #### 创建训练作业
登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，参考[创建训练作业](https://support.huaweicloud.com/usermanual-standard-modelarts/develop-modelarts-0022.html)操作指导，创建训练作业。用户需关注以下操作才能开启超参搜索。
当您选择支持超参搜索的算法，需单击超参的范围设置按钮才能开启超参搜索功能。
图2开启超参搜索功能   
![](https://support.huaweicloud.com/usermanual-standard-modelarts/figure/zh-cn_image_0000002011799854.png "点击放大")
开启超参搜索功能后，用户可以设置搜索指标、搜索算法和搜索算法参数。三个参数显示的支持值与算法管理模块的超参设置对应。
完成超参搜索作业的创建后，训练作业需要运行一段时间。
 #### 查看超参搜索作业详情
训练作业运行结束后，可以查看自动超参搜索结果判断此训练作业是否满意。
如果训练作业是超参搜索作业，进入训练作业详情页，选择"自动超参搜索结果"页签查看超参搜索结果。
图3超参搜索结果   
![](https://support.huaweicloud.com/usermanual-standard-modelarts/figure/zh-cn_image_0000002047720433.png "点击放大")
