NNI 在 Windows 上的安装与验证:从 pip/源码安装到跑通第一个 HPO 实验

发布时间:2026/9/22 18:36:21

NNI 在 Windows 上的安装与验证:从 pip/源码安装到跑通第一个 HPO 实验 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),仅供参考
延伸阅读

更多相关文章

2026/9/22 18:36:21

WinSW 贡献指南:环境准备、源码构建与测试验证全流程

WinSW 贡献指南:环境准备、源码构建与测试验证全流程 【免费下载链接】winsw A wrapper executable that can run any executable as a Windows service, in a permissive license. 项目地址: https://gitcode.com/gh_mirrors/wi/winsw WinSW(Win…

2026/9/22 18:36:21

3个案例讲透什么叫做互质数,新手避坑指南

3个案例讲透什么叫做互质数,新手避坑指南 面试被问原理答不上来,这种尴尬谁没经历过?我见过太多人背了一堆概念,遇到“什么叫做互质数”这种基础问题,脑子瞬间一片空白。别慌,今天咱们不整虚的,直接拆解底层逻辑,帮你把这块硬骨头啃下来,这也是新手…

2026/9/22 19:31:25

5个实战技巧: 攻克开创ERP性能瓶颈源码解析

5个实战技巧: 攻克开创ERP性能瓶颈源码解析 版本升级后 API 全变了?别急着崩溃。很多老哥在接手【开创ERP】二次开发或系统迁移时,第一反应就是骂娘:怎么连个查询接口都换了写法,旧代码跑起来慢得像蜗牛。这时候光看报错没用,你得沉下心去…

2026/9/22 19:31:25

车载视频监控系统底层逻辑一文搞懂

车载视频监控系统底层逻辑一文搞懂 很多刚入行的应届生朋友,手里攥着几本厚厚的语法书,Python 的缩进倒背如流,Java 的多态也能讲头头是道。但一旦面试官问:“如果让你从 0 到 1…

2026/9/22 19:31:25

云开日出优化实战:3个面试必问的性能坑

云开日出优化实战:3个面试必问的性能坑 面试被问原理答不上来,这种丢人的事谁还没干过?上周陪一个朋友模拟面试,聊到高并发场景下的资源调度,他愣了半天,只憋出一句“加缓存”。面试官追问“为什么是云开日出这种状态恢复机制而不是全量重建”,他直接…

2026/9/22 19:26:25

【合并多个RIS文件为一个文件】

合并多个RIS文件为一个文件 from pathlib import PathSOURCE_DIR = Path(r"C:\Users\11\Desktop\test") OUTPUT_FILE = Path(r"C:\Users\11\Desktop\merged_ris_files.ris")def read_ris(path: Path) -

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/21 18:32:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码