NNI (Neural Network Intelligence) 是一个工具包,可有效的帮助用户设计并调优机器学习模型的神经网络架构,复杂系统的参数(如超参)等。
本项目提供NNI针对不同框架的使用示例,如tensorflow,pytorch,mindspore等, 你可以参考这些示例来创建自己的训练。
mnist-ms:mindspore示例
mnist-pytorch:pytorch示例
mnist-tfv1:tensorflow 1.x版本示例
mnist-tfv2:tensorflow 2.x版本示例
你可以使用以下的指令简单地运行一个训练:
nnictl create -c config.yml -p 40000
或者使用nnictl -h
来获取更多使用指引。
在 NNI 中,Tuner 会根据搜索空间来取样生成参数和网络架构。搜索空间通过JSON文件来定义。
搜索空间示例如下:
{
"dropout_rate": {"_type": "uniform", "_value": [0.1, 0.5]},
"conv_size": {"_type": "choice", "_value": [2, 3, 5, 7]},
"hidden_size": {"_type": "choice", "_value": [124, 512, 1024]},
"batch_size": {"_type": "choice", "_value": [50, 250, 500]},
"learning_rate": {"_type": "uniform", "_value": [0.0001, 0.1]}
}
关于搜索空间的更多信息,请参考NNI搜索空间。
本项目使用不同的文件后缀来区分不同的设备,比如CPU
使用config-cpu.yml
,GPU
使用config-gpu.yml
,NPU
使用config-npu.yml
:
nnictl create -c config-cpu.yml -p 40000 # using CPU
nnictl create -c config-gpu.yml -p 40000 # using GPU
nnictl create -c config-npu.yml -p 40000 # using NPU
关于配置的更多信息,请参考NNI配置。
注意: 由于需要支持NPU, 我们移除了原有的gpuNum
字段,并添加了以下几个配置字段:
# 设备类型是一个可选字段,系统默认会使用集群中拥有的设备作为设备类型
# 如果集群中拥有多种设备(如GPU + NPU),则必须指定一种设备类型,否则,系统会默认使用集群第一个安装的设备
# 设备类型的值可能是nvidia_gpu_amd64,huawei_npu_arm64,可以在平台创建训练的页面中获得设备类型的值
deviceType: huawei_npu_arm64
# 使用设备的数量
deviceNum: 1
# 如果你需要使用NPU进行训练,必须提供框架类型,当前支持的框架有tensorflow,pytorch和mindspore
# 如果你不需要使用NPU,请指定框架类型为none
frameworkType: mindspore
NNI提供了实验管理
的Web界面, 你可以通过如http://localhost:40000 http://127.0.0.1:40000 等链接来访问Web界面。
在依瞳平台
中, 你可能需要使用可交互端口
来访问Web界面。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。