微软自动调参工具—NNI安装与快速上手,AutoML必备工具

文章目录

  • 概述
  • 直观的看看里面有什么
  • 安装方法
  • NNI 快速入门与超参优化
    • 设置超参数的搜索范围
    • 配置config.yaml

听说点进蝈仔帖子的都喜欢点赞加关注~~
老规矩官网送上:
https://github.com/microsoft/nni
中文官方文档:
https://github.com/microsoft/nni/blob/master/README_zh_CN.md

鸣谢:
https://www.zhihu.com/question/297982959

微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第1张图片

微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第2张图片

概述

自动机器学习是近年来火热的应用和研究方向,各种自动机器学习工具也层出不穷,它们各有优点与局限性。有的聚焦于算法,但不支持分布式训练;有的功能强大,但没有易用的用户界面,学习成本较高;有的只支持特定领域,不提供通用功能;还有的只能在云端使用。微软自动深度学习工具 NNI 具备以下优势:
• 支持多种框架:提供基于 Python 的 SDK,支持 PyTorch、TensorFlow、scikit-learn、LightGBM 等主流框架和库;
• 支持多种训练平台:除在本机直接运行外,还能通过 SSH 调度一组 GPU 服务器,或通过 FrameworkController、KubeFlow、OpenPAI 等在 Kubernetes 下调度大规模集群;
• 支持机器学习生命周期中的多环节:特征工程、神经网络架构搜索(NAS)、超参调优和模型压缩等;
• 提供易用的命令行工具和友好的 WEB 用户界面;
• 大量的示例能帮助你很快上手;
• 最后划重点,NNI的所有文档都有中文版!

直观的看看里面有什么

微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第3张图片
微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第4张图片

安装方法

微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第5张图片
NNI 支持并在 Ubuntu >= 16.04, macOS >= 10.14.1, 和 Windows 10 >= 1809 通过了测试。 在 python 64-bit >= 3.6 的环境中,只需要运行 pip install 即可完成安装。

Linux 或 macOS

python3 -m pip install --upgrade nni

Windows

python -m pip install --upgrade nni

如果想试试最新代码,可参考从源代码安装 NNI。

Linux 和 macOS 下 NNI 系统需求参考这里 ,Windows 参考这里。

注意:

如果遇到任何权限问题,可添加 --user 在用户目录中安装 NNI。
目前,Windows 上的 NNI 支持本机,远程和 OpenPAI 模式。 强烈推荐使用 Anaconda 或 Miniconda 在 Windows 上安装 NNI。
如果遇到如 Segmentation fault 等错误参考常见问题。 Windows 上的 FAQ 参考在 Windows 上使用 NNI。 Windows 上的 FAQ 参考在 Windows 上使用 NNI。

NNI 快速入门与超参优化

NNI 的使用也非常简单:首先,定义好需要搜索的超参空间;然后,在需要调参的网络启动之前,通过 NNI 的接口读取参数并在训练中将精确度等指标传入 NNI;最后,配置好要使用的调参算法等,即可开始。具体过程可参考入门教程:
https://aka.ms/nnizq
你也可以在这里找到所有示例:
https://aka.ms/nnize

微软自动调参工具—NNI安装与快速上手,AutoML必备工具_第6张图片

设置超参数的搜索范围

打开NNI的示例程序先来观摩一下

cd ./nni/examples/trials/mnist/

可以看到目录中有 config.yml, mnist.py ,search_space.json 三个文件,这三个文件分别决定了我们的NNI配置文件,main.py和超参数搜索空间。
1.打开 search_space.json文件

{
    "dropout_rate":{"_type":"uniform","_value":[0.5, 0.9]},
    "conv_size":{"_type":"choice","_value":[2,3,5,7]},
    "hidden_size":{"_type":"choice","_value":[124, 512, 1024]},
    "batch_size": {"_type":"choice", "_value": [1, 4, 8, 16, 32]},
    "learning_rate":{"_type":"choice","_value":[0.0001, 0.001, 0.01, 0.1]}
}

配置config.yaml

authorName: default
experimentName: example_mnist
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
#choice: local, remote, pai
trainingServicePlatform: local
searchSpacePath: search_space.json
#choice: true, false
useAnnotation: false
tuner:
  #choice: TPE, Random, Anneal, Evolution, BatchTuner, MetisTuner, GPTuner
  #SMAC (SMAC should be installed through nnictl)
  builtinTunerName: TPE
  classArgs:
    #choice: maximize, minimize
    optimize_mode: maximize
trial:
  command: python3 mnist.py
  codeDir: .
  gpuNum: 0

你可能感兴趣的:(Python相关,人工智能,算法,人工智能,神经网络,调参,超参数)