微软开源自动机器学习工具 – NNI介绍三部曲(一)让训练任务更加省时高效

NNI是微软的开源自动机器学习工具,旨在优化超参数调优过程,通过定义搜索空间和内置Tuner提高训练效率。NNI支持多种搜索空间定义方式和Tuners,如TPE、Random Search,方便用户尝试不同的自动化调参策略。通过简单的配置,用户可以轻松尝试多种超参数组合和Tuner算法,加速机器学习实验。
摘要由CSDN通过智能技术生成

NNI介绍之前情提要

  NNI(Neural Network Intelligence) 是微软开源的自动机器学习工具包,它可以帮助优化在机器学习建模中耗时耗力的大量尝试各种超参组合和寻找最佳模型的过程。NNI着力解决超参调试过程的挑战,通过内置的超参选择算法、算力的强大支持和便捷的交互方式来加速和简化超参搜索的过程。更多详细内容和代码可以参考NNI的GitHub地址
  开篇博文“微软开源自动机器学习工具 – NNI安装与使用”是快速入门篇,提到了NNI的安装和通过简单三步使用NNI训练mnist样例,本篇是NNI (Neural Network Intelligence) 系列文章的第二篇,本篇会介绍NNI内置的三个工具和使用方式来介绍NNI是如何提高自动机器学习的效率。首先介绍使用两种方式定义搜索空间来提高训练效率,帮助节省时间和减少代码,然后介绍NNI的内置命令行工具nnictl来快速控制实验,最后通过内置前端界面webUI介绍NNI的高效能和可视化管理实验。后续系列文章还将从NNI的分布式——支持OpenPAI等多端部署、NNI的可扩展性——支持多种tuner和assessor等特点介绍NNI。

NNI支持定义搜索空间—尝试实验的无限种可能

  搜索空间是通过定义变量名称、变量的类型和候选值使得变量在一定的空间内可以做组合的搜索,它通过简单的定义方式可以定义大量的、丰富种类的搜索组合,而无需用户手动去多次更改代码,这样可以节省大量的时间,并减少代码出错的可能性,并可以快速尝试多种超参的组合。

· NNI支持两种搜索空间的定义方式

  一是通过无侵入的代码注释方式进行定义,这种方式通过在代码中对其变量加入注释行的方式定义变量的取值范围和取值方式,而不对代码本身做出修改,不改变代码本来的功能;NNI兼容已有代码,通过注释方式支持 NNI 后,代码还可以单独运行。

#==========================use annotation example=================================
@nni.get_next_parameter()  //开头
@nni.variable(nni.choice(2,3,5,7),name=self.conv_size)  //变量定义
@nni.report_intermediate_result(test_acc)  //中间结果
@nni.report_final_result(test_acc)  //最终结果
@nni.function_choice(max_pool(h_conv1, self.pool_size),avg_pool(h_conv1, self.pool_size),name=max_pool)
//函数选择

  另一种是通过配置文件的方式进行定义,这种方式在代码外部定义单独文件,与代码文件分离,可以清晰查看、简单编辑。

#===========================use json file example========================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值