NNI 1 使用体验

本文介绍了NNI的安装、使用过程,包括配置要求、安装方法、基本使用技巧和实验运行。NNI支持对已有模型进行参数调优,提供了灵活的注解方式。此外,文章还对比了NNI与其他自动机器学习工具,如Auto-Keras和Hyperopt的安装、功能和使用体验,强调NNI在操作界面和参数调参方式上的优势,但也提出了一些改进建议。
摘要由CSDN通过智能技术生成

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设定模型调优的详细信息。
    config.yml 设置模型调优详细信息

  • 在search_space.json中设定待调参数的寻优范围。待寻优的参数会放入Tuner,每次运行一个实验调用一批参数。
    search_space.json
    "_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之前调用,否则会报错。
    将实验结果传入nni

  • 在命令行使用 nnictl create –config config.yml 运行一个nni实例。获得实例唯一对应的id(The experiment id is xxxxx)和webUI的url(The Web UI urls are: …)。
    nnictl create

  • 通过命令行监测实例运行情况
    nnictl experiment show 显示当前实例的基本信息。
    nnictl trial ls 显示实例所进行实验的参数(hyperParameter)、log文件地址(logPath)、运行状况(status)等。
    nnictl trial ls
    nnictl top 实时显示当前实例的实验情况。 nnictl top
    nnictl log stderrnnictl log stdout输出log。(来源不明)
    nnictl log stdout
    nnictl stop 停止实验(到达config.yml中设置的停止条件后不会自动停止实验,需要手动停止,否则占用当前webUI使用的端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值