
NNI 在 Windows 上的安装与验证从 pip/源码安装到跑通第一个 HPO 实验【免费下载链接】nniAn open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.项目地址: https://gitcode.com/gh_mirrors/nn/nniNNINeural Network Intelligence是微软开源的 AutoML 工具包覆盖特征工程、超参调优、神经网络架构搜索与模型压缩等机器学习全生命周期。本文以仓库中的 InstallationWin_zh.rst 为骨架完整讲解 NNI 在 Windows 平台上的安装前置条件、pip/源码两种安装方式、通过 MNIST 示例验证安装的完整流程并结合仓库源码与配置深入剖析实验启动的关键细节与常见故障排查。读完本文你将能够在自己的 Windows 机器上从零安装 NNI跑通并理解第一个超参调优实验并具备独立排查 Windows 特有安装问题的能力。安装前的环境准备NNI 在 Windows 上的运行依赖若干基础软件建议在正式安装前逐一确认。原文档将先决条件分为三部分每一部分都有明确的用途依赖项要求用途Python3.6或以上64 位NNI 及实验代码的解释器。注意必须是 64 位版本Anaconda / Miniconda推荐安装管理多个 Python 环境可避免 DLL 缺失等 Windows 环境冲突问题详见下文常见问答Microsoft C Build Tools新装 Python 环境必需编译 NNI 的部分依赖如scikit-learn、simplejson的 C 扩展git安装克隆示例代码用于验证安装在 Windows 上推荐使用 Anaconda 或 Miniconda 管理多个 Python 环境这样既便于隔离依赖也能规避 Windows 上常见的二进制库DLL问题。如果是全新安装的 Python 环境还需要先安装 Microsoft C Build Tools并通过 pip 预先安装两个编译工具链组件pip install cython wheel从当前仓库的依赖文件可以印证这两个包的必要性dependencies/develop.txt 中将cython列为开发依赖而 dependencies/required.txt 中列出的scikit-learn、scipy、numpy、pandas等核心运行时依赖在部分旧版 Python 环境中需要本地编译缺少 C 编译器会导致安装失败典型报错见下文「simplejson 错误」一节。安装 NNI两种方式方式一从 pip 包安装推荐大多数情况下直接从 pip 安装与升级 NNI 是最方便、快捷的方式python -m pip install --upgrade nni该命令会从 PyPI 拉取最新稳定版 NNI 及其运行时依赖无需本地编译。NNI 的核心运行时依赖见 dependencies/required.txt包括scikit-learn、numpy、scipy、pandas、pyyaml、psutil、prettytable、typeguard、websockets等覆盖了调度、通信、配置解析与结果展示等能力。方式二从源代码安装如果对某个或最新版本的代码感兴趣可以通过源代码安装。原文档基于v2.6分支演示克隆仓库后切换到目标发布标签即可当前仓库为 nni 的开源镜像可执行git tag查看镜像中可用的发布标签git clone https://gitcode.com/gh_mirrors/nn/nni.git cd nni python -m pip install -U -r dependencies/setup.txt python -m pip install -r dependencies/develop.txt python setup.py develop从仓库依赖文件可以进一步理解这三条命令各做了什么dependencies/setup.txtpip 23、setuptools 63、wheel 0.38用于约束较老环境下的构建工具链版本保证setup.py可正常执行dependencies/develop.txt开发依赖包含cython、pytest、pytest-cov、coverage、flake8、pylint、sphinx等主要用于运行测试、代码检查与构建文档python setup.py develop以开发模式安装源码改动即时生效便于调试与贡献代码。如果要为 NNI 贡献代码可参考仓库中 贡献指南 与 从源码构建。验证安装运行 MNIST 示例安装完成后建议立即运行一个真实实验来验证 NNI 是否工作正常。原文档以经典的 MNIST 超参调优示例作为验收标准。第一步克隆示例代码git clone https://gitcode.com/gh_mirrors/nn/nni.git第二步理解 Windows 专用实验配置进入示例目录后使用 Windows 专用配置启动实验nnictl create --config nni\examples\trials\mnist-pytorch\config_windows.yml仓库中 config_windows.yml 的内容非常简洁却完整覆盖了 NNI 实验配置的五个核心维度searchSpaceFile: search_space.json trialCommand: python mnist.py trialGpuNumber: 0 trialConcurrency: 1 tuner: name: TPE classArgs: optimize_mode: maximize trainingService: platform: local各字段含义如下字段取值说明searchSpaceFilesearch_space.json指向搜索空间定义文件声明哪些超参参与调优及取值范围trialCommandpython mnist.py每个 Trial尝试任务要执行的命令行。Windows 上必须写python而非python3trialGpuNumber0每个 Trial 占用的 GPU 数本示例纯 CPU 训练trialConcurrency1并发运行的 Trial 数量tunerTPE最大化模式使用 TPE 算法搜索超参目标是最大化验证准确率trainingService.platformlocal在本机直接运行实验对照搜索空间文件 search_space.json可以看到 TPE 调优器会探索的四个超参batch_size16/32/64/128 四选一、hidden_size128/256/512/1024 四选一、lr0.00010.1 四选一以及momentum01 连续均匀分布{ batch_size: {_type:choice, _value: [16, 32, 64, 128]}, hidden_size:{_type:choice,_value:[128, 256, 512, 1024]}, lr:{_type:choice,_value:[0.0001, 0.001, 0.01, 0.1]}, momentum:{_type:uniform,_value:[0, 1]} }Trial 脚本 mnist.py 则展示了 NNI SDK 在 Trial 侧的标准用法这也是理解整条数据流的关键nni.get_next_parameter()从调优器获取一组超参nni.utils.merge_parameter将调优器参数与脚本默认参数合并每个 epoch 结束后通过nni.report_intermediate_result(test_acc)上报中间结果训练结束后通过nni.report_final_result(test_acc)上报最终指标供调优器用于下一轮搜索。注意原文档特别提醒如果熟悉其它框架可选择examples\trials目录下的其它示例如 TensorFlow/Keras 版本。若更换示例务必检查该示例 YAML 文件中 Trial 命令是否仍为python3Windows 默认安装的 Python 可执行文件是python.exe没有python3.exe因此所有 Trial 命令中的python3都必须改为python。仓库中 config_windows.yml 已按此约定编写。第三步解读启动日志在命令行中等待输出INFO: Successfully started experiment!该消息表明实验已成功启动INFO: Starting restful server... INFO: Successfully started Restful server! INFO: Setting local config... INFO: Successfully set local config! INFO: Starting experiment... INFO: Successfully started experiment! ----------------------------------------------------------------------- The experiment id is egchD4qy The Web UI urls are: http://223.255.255.1:8080 http://127.0.0.1:8080 -----------------------------------------------------------------------日志的关键信息包括RESTful 服务即 Web 界面后端成功启动、本地配置写入成功、Experiment 正式启动以及最重要的Experiment ID如egchD4qy与Web UI 地址默认端口 8080浏览器打开http://127.0.0.1:8080即可访问。第四步用 nnictl 管理实验nnictl是 NNI 的命令行管理工具实验启动后可以用以下命令持续监控与操作commands description 1. nnictl experiment show show the information of experiments 2. nnictl trial ls list all of trial jobs 3. nnictl top monitor the status of running experiments 4. nnictl log stderr show stderr log content 5. nnictl log stdout show stdout log content 6. nnictl stop stop an experiment 7. nnictl trial kill kill a trial job by id 8. nnictl --help get help information about nnictl其中nnictl experiment show查看实验概览、nnictl trial ls列出所有 Trial、nnictl top实时监控实验状态、nnictl log stdout/stderr查看 Trial 输出与错误日志、nnictl stop停止实验。完整的命令参考见 nnictl 参考文档。第五步通过 Web UI 查看实验详情在浏览器中打开Web UI url可看到实验的详细信息以及所有 Trial 任务的运行状态。主页面展示实验整体进度、中间指标曲线与 Trial 列表点击任意 Trial 可查看其参数、日志与详细训练过程Web 界面的完整功能指标曲线、超参对比、日志查看等可参考 Web 界面使用指南。系统需求以下是 NNI 在 Windows 上的最低配置推荐使用 Windows 10 1809 版本。由于程序变更NNI 的最低配置会有所调整配置项推荐配置最低配置操作系统Windows 10 1809 或更高版本—CPUIntel® Core™ i5 或 AMD Phenom™ II X3 或更高配置Intel® Core™ i3 或 AMD Phenom™ X3 8650GPUNVIDIA® GeForce® GTX 660 或更高配置NVIDIA® GeForce® GTX 460内存6 GB4 GB存储30 GB 可用磁盘空间—网络宽带连接—分辨率1024 x 768 以上—补充说明上述最低配置为原文档基于早期版本给出的基准。从当前仓库 dependencies/required.txt 的依赖声明可以推断较新版本的 NNI 对 Python 版本的要求已有所提升例如numpy、scipy在 Python 3.8 以上版本使用无约束的较新版本建议实际使用时采用较新的 Python 3.8 与 Windows 10 较新版本以获得完整的功能与依赖兼容性。Windows 常见问题排查安装 NNI 时出现 simplejson 错误如果安装过程中出现如下报错说明缺少 C 编译器导致simplejson._speedups扩展无法编译building simplejson._speedups extension error: [WinError 3] The system cannot find the path specified确保已安装C 14.0 编译器Microsoft C Build Tools后重试即可。命令行或 PowerShell 中 Trial 因缺少 DLL 而失败ImportError: DLL load failed此错误通常因为缺少LIBIFCOREMD.DLL和LIBMMD.DLL文件且 SciPy 安装失败所致。使用Anaconda 或 Miniconda 64 位 Python可以解决——conda 会为 SciPy 等科学计算库提供预编译的二进制包避免 DLL 缺失问题。Web 界面上的 Trial 错误先检查 Trial 日志文件了解详情如果存在 stderr 文件也要查看其内容。两种常见情况忘记将 Experiment 配置的 Trial 命令中的python3改为python——Windows 没有python3.exe可执行文件Trial 无法启动忘记安装 Experiment 的依赖如 TensorFlow、Keras 等——MNIST-PyTorch 示例的依赖在 requirements.txttorch与torchvision中声明运行前需在对应 Python 环境安装。无法在 Windows 上使用 BOHB确保安装了 C 14.0 编译器然后通过 extras 方式安装 BOHB 依赖pip install nni[BOHB]Windows 上不支持的 Tuner当前版本的 NNI 在 Windows 上不支持 SMAC调优器原因是其底层对 Linux 环境的依赖详见 SMAC3 项目的 issue #483。如需使用 SMAC请将 Experiment 部署到 Linux 环境。用 Windows 作为远程节点如果需要将 Windows 机器作为远程训练节点Remote Machine 模式参考 远程模式文档 了解所需的配置如 SSH/WinRM 连接、Python 环境路径等与限制。安装时出现 Segmentation Fault (core dumped)此类崩溃一般与本地编译的科学计算依赖有关建议优先切换到 Anaconda/Miniconda 的 64 位 Python 环境后重装并确保所有依赖numpy、scipy等均来自官方渠道而非手工编译。更多阅读围绕 NNI 的 Windows 安装与使用可以继续阅读以下仓库文档NNI 实验概览nnictl 命令行工具参考Web 界面使用指南搜索空间定义实验配置参考如何在本机运行 Experiment支持多 GPU 卡如何在多机上运行 Experiment远程模式如何在 OpenPAI 上运行 Experiment如何通过 Kubeflow 在 Kubernetes 上运行 Experiment如何通过 FrameworkController 在 Kubernetes 上运行 Experiment【免费下载链接】nniAn open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.项目地址: https://gitcode.com/gh_mirrors/nn/nni创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考