文章目录
1. NNI安装过程
安装环境要求:https://github.com/Microsoft/nni/blob/master/docs/Installation.md
内存4GB及以上。
测试并支持Ubuntu16.04及以上,MacOS10.14.1及以上。不支持windows系统。
仅支持python版本3.5及以上。
提供pip和源码安装两种安装方式:https://github.com/Microsoft/nni#install--verify。
pip安装需要单独下载实例运行(Verify install)。运行实例需要tensorflow/pytorch等深度学习环境。
体会
NNI安装对软硬件配置有一定要求,作为自动算法调参工具对内存和系统稳定性有一定要求。使用家用机或笔记本电脑运行深度模型的调参时消耗大。
安装过程顺利,没有遇到问题。使用pip时只能使用python3脚本安装。在python2.7环境下通过源码可以安装但无法使用(在python2和3环境均存在的情况下测试)。
2. NNI使用过程
第一次运行需要手动下载dill包否则会报错!(pip install dill)
基本使用方法
NNI可以为已有模型寻找自定义的最优参数。
-
获得一个可以顺利运行的待检测模型,并将训练模型和测试模型的流程整合为一个流程,确保运行时可以获得测试得到的结果。(以nni-master\examples\trials\mnist为例。)
-
在已有模型项目目录下,建立config.yml设定模型调优的详细信息。
-
在search_space.json中设定待调参数的寻优范围。待寻优的参数会放入Tuner,每次运行一个实验调用一批参数。
"_type"有以下选择:
choice: 从value中选取一个值,value是list;
randint: 在upper的范围内随机选择一个整数值,value是[upper];
uniform: 是low和high直接的一个值,value是[low,high];
quniform: 取平滑后的low和high之间的一个值,(uniform(low, high) / q) * q,value是[low,high,q];
…… https://github.com/Microsoft/nni/blob/master/docs/SearchSpaceSpec.md -
修改已有模型脚本,
import nni
-
使用
nni.get_next_parameter()
获得一批待调优参数,并使用update更新到现有参数中。在使用argparse
获得参数时需要将获得的args转为dict对象。vars(args)
-
传入实验结果到nni平台,传入的值为一个数。
nni.report_intermediate_result
用于传入实验中间结果,
nni.report_final_result
用于传入实验最终结果。
nni.report_intermediate_result非必需,但若调用nni.report_intermediate_result必须在nni.report_final_result之前调用,否则会报错。
-
在命令行使用
nnictl create –config config.yml
运行一个nni实例。获得实例唯一对应的id(The experiment id is xxxxx)和webUI的url(The Web UI urls are: …)。
-
通过命令行监测实例运行情况
nnictl experiment show
显示当前实例的基本信息。
nnictl trial ls
显示实例所进行实验的参数(hyperParameter)、log文件地址(logPath)、运行状况(status)等。
nnictl top
实时显示当前实例的实验情况。
nnictl log stderr
,nnictl log stdout
输出log。(来源不明)
nnictl stop
停止实验(到达config.yml中设置的停止条件后不会自动停止实验,需要手动停止,否则占用当前webUI使用的端口