官方文档:https://github.com/microsoft/nni
(本文介绍均基于windows系统,Linux和Mac请参考GitHub的官方文档)
一、介绍
NNI (Neural Network Intelligence) 是一个工具包,可有效的帮助用户设计并调优机器学习模型的神经网络架构,复杂系统的参数(如超参)等。 NNI 的特性包括:易于使用,可扩展,灵活,高效。
NNI的体系结构:
相关概念:
Experiment(实验):实验是一次找到模型的最佳超参组合,或最好的神经网络架构的任务。 它由 Trial 和自动机器学习算法所组成。
搜索空间:是模型调优的范围。 例如,超参的取值范围。
Configuration(配置):配置是来自搜索空间的一个参数实例,每个超参都会有一个特定的值。
Trial: Trial 是一次尝试,它会使用某组配置(例如,一组超参值,或者特定的神经网络架构)。 Trial 会基于提供的配置来运行。
Tuner: Tuner 是一个自动机器学习算法,会为下一个 Trial 生成新的配置。 新的 Trial 会使用这组配置来运行。
Assessor:Assessor 分析 Trial 的中间结果(例如,测试数据集上定期的精度),来确定 Trial 是否应该被提前终止。
训练平台:是 Trial 的执行环境。 根据 Experiment 的配置,可以是本机,远程服务器组,或其它大规模训练平台(如,OpenPAI,Kubernetes)。
Experiment 的运行过程为:Tuner 接收搜索空间并生成配置。 这些配置将被提交到训练平台,如本机,远程服务器组或训练集群。 执行的性能结果会被返回给 Tuner。 然后,再生成并提交新的配置。
每次 Experiment 执行时,用户只需要定义搜索空间,改动几行代码,就能利用 NNI 内置的 Tuner/Assessor 和训练服务来搜索最好的超参组合以及神经网络结构。 基本上分为三步:
第一步:定义搜索空间
第二步:改动模型代码
第三步:定义 Experiment 配置
二、安装
和AutoKeras相比,这个装起来太简单了!!感动到哭!
官方推荐anaconda,我用anaconda prompt执行命令:
python -m pip install --upgrade nni
安装完毕可以进行验证,验证试验依赖TensorFlow:
git clone -b v0.8 https://github.com/Microsoft/nni.git
nnictl create --config nni\examples\trials\mnist\config_windows.yml
出现以上信息就好了
ps
第一次运行的时候出了restful server start failed的错误,查了查也没查出来怎么回事,重新运行一遍就好了。