nnU-Net v2 安装与初始化配置完全指南:从零搭建首个 nnU-Net 运行环境
人工智能深度学习计算机视觉医疗健康【免费下载链接】nnUNet项目地址https://gitcode.com/gh_mirrors/nn/nnUNet点击查看免费下载导读本文是 nnU-Net v2即nnunetv2包的首次运行环境搭建指南系统覆盖 PyTorch 前置安装、nnunetv2包安装含开发模式与 Intel macOS 特殊处理、三大目录nnUNet_raw/nnUNet_preprocessed/nnUNet_results的规划与创建、跨平台环境变量设置以及安装后的验证方法。读完本文你将能够在本机Linux / macOS / Windows搭建一套完整可用、可直接进入数据准备prepare-a-dataset.md与训练train-models.md流程的 nnU-Net v2 环境。1. 环境基线检查开始安装前先确认这四点在动手安装之前请先对照以下基线要求逐项确认避免装到一半再返工Python 版本使用Python 3.10 或更新版本。仓库的 pyproject.toml 中声明requires-python 3.10低于该版本将无法完成 pip 安装。操作系统Linux 是首要支持目标Windows 与 macOS 同样受支持。仓库在 installation_instructions.md 中说明 nnU-Net 已在 Ubuntu 18.04/20.04/22.04、centOS、RHEL、Windows 与 macOS 上测试通过。GPU 强烈建议训练阶段强烈建议使用 NVIDIA GPU 并搭配 CUDA 版 PyTorch。训练显存建议不低于 10 GB如 RTX 2080 Ti、RTX 3080/3090、RTX 4080/4090推理则至少需要 4 GB 可用显存同时建议配备较强 CPU至少 6 核 12 线程因为数据增强是 CPU 密集操作GPU 越快CPU 越不能拖后腿。Apple Silicon 的 mps 限制macOS 上可以使用 Applemps后端但3D 卷积目前仍可能回退到 CPU 执行因此训练速度会明显受限如果你在 Apple Silicon 上训练 3D 模型请做好使用 CPU 的心理与时间预期。2. 第一步永远是先装 PyTorch为什么顺序如此重要在安装nnunetv2之前必须先为你的硬件安装好匹配的 PyTorch。这是整篇指南里最容易出错、也最关键的一步。选择与你环境匹配的构建版本你的硬件PyTorch 构建NVIDIA GPUcuda版本Apple Siliconmps版本无加速器纯 CPUcpu版本请前往 PyTorch 官网的本地安装页pytorch.org/get-started/locally按提示选择 conda 或 pip 命令。官方强烈建议安装最新且支持你硬件的版本追求极致性能的高级用户可以自行从源码编译 PyTorch此时需使用 conda 环境。为什么必须先装 PyTorch因为 pyproject.toml 将torch2.1.2,!2.9.*列为nnunetv2的硬性依赖。若先执行pip install nnunetv2pip 会拉取默认的 PyTorch 版本这个版本很可能不带 CUDA / MPS 支持导致后续训练根本无法使用 GPU。正确的做法是先用 PyTorch 官网命令装好带硬件加速的版本再安装nnunetv2此时 pip 检测到 torch 已满足版本约束不会再覆盖它。另外值得注意nnU-Net v2 可以与 nnU-Net v1 共存于同一环境互不冲突。3. 安装 nnU-Net按你的使用场景二选一3.1 普通使用标准化基线 / 开箱即用的分割算法 / 推理预训练模型如果你的目标是把 nnU-Net 当作开箱即用的分割算法来用或只需要跑预训练模型推理直接安装发行包即可pip install nnunetv23.2 开发模式可编辑安装作为可修改的框架如果你打算把 nnU-Net 当作一个可深度定制的框架在其源码基础上二次开发请克隆仓库并进行可编辑安装git clone https://github.com/MIC-DKFZ/nnUNet.git cd nnUNet pip install -e .可编辑安装会在你的机器上保留一份仓库代码副本之后你可以自由修改nnunetv2/下的源码例如自定义nnUNetTrainer子类、新增数据增强等而无需反复重装。仓库路径说明上述命令中的git clone地址是 nnU-Net 上游官方仓库MIC-DKFZ/nnUNet。本镜像仓库gh_mirrors/nn/nnUNet的文件布局与之一致其中 setup.py 仅作为 setuptools 入口实际的依赖与脚本声明均集中在 pyproject.toml 中。3.3 Intel非 Apple SiliconmacOS 的特殊处理在 Intel 版 macOS 上请使用intel_macos附加依赖extra它会将 torch 与 numpy 固定到兼容版本pip install nnunetv2[intel_macos]可编辑安装对应的写法为pip install -e .[intel_macos]这个 extra 在 pyproject.toml 中定义如下可帮助你理解它到底做了什么intel_macos [ torch2.3 ; platform_system Darwin, numpy2 ; platform_system Darwin, ]即仅在 DarwinmacOS平台上收紧 torch2.3与 numpy2的版本上限避免新版本在 Intel Mac 上出现兼容性问题。3.4 安装完成后验证命令是否就位安装完成后nnunetv2会在你的终端中注册一批以nnUNetv2_为前缀的命令nnUNetv2_plan_and_preprocess、nnUNetv2_train、nnUNetv2_predict、nnUNetv2_find_best_configuration等它们由 pyproject.toml 中的[project.scripts]声明映射到具体的 Python 入口函数。你可以在任意目录下直接执行这些命令注意如果你安装在虚拟环境中必须先激活该环境所有命令都支持-h参数查看用法想查看某个命令背后执行的具体脚本可对照 pyproject.toml 中[project.scripts]的映射关系。4. 创建三个存储目录nnU-Net 的文件系统骨架nnU-Net 的整套流程依赖三个必须存在的位置分别存放原始数据、预处理数据和训练结果环境变量作用存储内容nnUNet_raw原始数据集目录符合 nnU-Net 格式的原始数据训练/测试图像与标签nnUNet_preprocessed预处理数据目录训练时读取的预处理后数据强烈建议放在低延迟、高吞吐的 NVMe SSD 上nnUNet_results结果目录训练产出的模型权重下载的预训练模型也会保存在这里推荐的目录布局/path/to/nnUNet_raw /path/to/nnUNet_preprocessed /path/to/nnUNet_results在nnUNet_raw内部每个数据集占据一个独立的DatasetXXX_Name文件夹其中XXX是三位数字编号如001、002、043、999Name是唯一的数据集名称。例如nnUNet_raw/ └── Dataset001_MyDataset ├── dataset.json ├── imagesTr ├── imagesTs └── labelsTr各子目录含义详见 dataset_format.mdimagesTr训练图像nnU-Net 将用它完成流水线配置、交叉验证训练、后处理与集成搜索labelsTr训练图像对应的金标准分割图imagesTs可选。测试图像nnU-Net 本身不会使用它们仅作为存放位置Medical Segmentation Decathlon 文件夹结构的遗留dataset.json数据集元数据声明通道名channel_names、标签labels、训练样本数numTraining与文件后缀file_ending等。当你添加自定义数据集时注意挑选一个未被占用的 IDID 001-010 保留给 Medical Segmentation Decathlon。仓库 nnunetv2/dataset_conversion 目录下提供了大量示例转换脚本可以选取与你数据最接近的作为模板。关于nnUNet_preprocessed的磁盘性能提示训练过程中数据会反复从nnUNet_preprocessed读取因此该目录应位于低访问延迟、高吞吐的存储上例如 NVMe SSDPCIe Gen 3 即足够。若使用网络存储或机械硬盘训练的数据加载会成为明显瓶颈。详见 setting_up_paths.md。5. 设置环境变量三种操作系统 × 三种方式nnU-Net 通过环境变量定位上述三个目录因此这三个变量必须被正确设置否则 nnU-Net 无法工作。仓库中的 paths.py 用_EnvPath类封装了这些变量调用require()时若变量未定义会直接抛出RuntimeError并提示阅读 setting_up_paths.md。未设置nnUNet_raw时nnUNetv2_plan_and_preprocess、nnUNetv2_train、nnUNetv2_predict等命令都会因此失败。补充除了上述三个核心变量还有一个可选的nnUNet_extTrainer用于从nnunetv2包外部加载自定义nnUNetTrainer子类例如运行别人用自定义 Trainer 训练的模型多个目录用系统路径分隔符Linux/macOS 为:Windows 为;分隔。完整说明见 setting_up_paths.md 与 share-models-with-custom-trainers.md。5.1 Linux 与 macOS持久设置推荐将以下内容追加到你的 shell 配置文件bash 为~/.bashrczsh 为~/.zshrcexport nnUNet_raw/path/to/nnUNet_raw export nnUNet_preprocessed/path/to/nnUNet_preprocessed export nnUNet_results/path/to/nnUNet_results请务必将路径替换为你实际的目录。临时设置在每次使用 nnU-Net 前于当前终端执行同样的export命令。注意这些变量在关闭终端后即失效且只对当前终端窗口生效不会传递到其他终端。你甚至可以把变量直接内联在命令前nnUNet_results/path/to/nnUNet_results nnUNet_preprocessed/path/to/nnUNet_preprocessed nnUNetv2_train ...5.2 Windows PowerShell$Env:nnUNet_raw C:/path/to/nnUNet_raw $Env:nnUNet_preprocessed C:/path/to/nnUNet_preprocessed $Env:nnUNet_results C:/path/to/nnUNet_results5.3 Windows 命令提示符Command Promptset nnUNet_rawC:/path/to/nnUNet_raw set nnUNet_preprocessedC:/path/to/nnUNet_preprocessed set nnUNet_resultsC:/path/to/nnUNet_results与 Linux 临时设置一样Windows 的临时变量在关闭会话后即被清除且仅对当前窗口生效。如需 Windows 持久化可使用系统环境变量 GUI 或setx命令。更全面的设置说明参见 set_environment_variables.md。6. 验证安装与配置是否就绪安装完成后请按你的平台执行以下命令确认三个环境变量已被正确识别未设置时echo会返回空字符串说明设置失败Linux / macOSecho $nnUNet_raw echo $nnUNet_preprocessed echo $nnUNet_resultsPowerShellecho $Env:nnUNet_raw echo $Env:nnUNet_preprocessed echo $Env:nnUNet_results命令提示符echo %nnUNet_raw% echo %nnUNet_preprocessed% echo %nnUNet_results%三个变量全部返回非空路径后你的 nnU-Net v2 环境即宣告就绪可以进入下一步数据准备。7. 可选增强网络拓扑可视化与数据增强并行度调优7.1 安装 hiddenlayer网络结构可视化hiddenlayer允许 nnU-Net 在训练时生成网络拓扑结构图。安装命令来自 nnU-Net 维护者的 forkpip install --upgrade githttps://github.com/FabianIsensee/hiddenlayer.git安装后训练过程中即可看到 nnU-Net 自动生成的网络结构图便于直观理解规划出的模型架构。7.2 调优nnUNet_n_proc_DA数据增强进程数如果你使用较快的 GPU 训练可能需要对数据增强的并行进程数进行调优通过环境变量nnUNet_n_proc_DA设置export nnUNet_n_proc_DA12其底层逻辑见 default_n_proc_DA.py该文件维护了一张基于 DKFZ 集群主机名的进程数查找表例如 RTX 3090 对应 12、A100 对应 28但只要检测到nnUNet_n_proc_DA环境变量就以它的值为准见该文件第 20-21 行最终值还会被os.cpu_count()截断第 49 行。从源码可以推断这个值表示每个 GPU 用于数据增强的进程数。推荐的参考取值假设 CPU 较新且 IPC 良好RTX 2080 Ti 约 10-12RTX 3090 约 12RTX 4090 约 16-18A100 约 28-32。最优值会随输入通道数、类别数与 CPU/GPU 配比而变化需要结合自己的硬件实测。注意数据增强的 CPU 需求会随输入通道数与分割目标数量的增加而上升GPU 越快越需要更强的 CPU 来喂饱它。如果你在服务器上每 GPU 配备 16 核如 8×A100 2×AMD EPYC 7763 共 256 线程的配置24-30 是常用的合理区间。8. 安装完成后的下一步环境就绪后官方推荐的首次跑通路线为准备数据集 —— 把数据整理为 nnU-Net 数据集格式DatasetXXX_Namedataset.jsonimagesTr/labelsTr规划与预处理Plan and preprocess —— 运行nnUNetv2_plan_and_preprocess完成数据指纹提取、实验规划与预处理训练模型 —— 运行nnUNetv2_train训练指定配置与折可选寻找最佳配置 与 运行推理。相关参考文档安装说明完整版更详细地讨论了系统/硬件要求、PyTorch 编译安装与命令前缀说明路径设置三个目录的语义与nnUNet_extTrainer的详细说明环境变量设置跨平台的持久化/临时设置与验证方法详解数据集格式nnUNet_raw内部目录结构与dataset.json字段的完整规范。赞分享人工智能深度学习计算机视觉医疗健康【免费下载链接】nnUNet项目地址https://gitcode.com/gh_mirrors/nn/nnUNet点击查看免费下载相关推荐nnU-Net 安装和配置指南nnU Net 安装和配置指南 1. 项目基础介绍和主要编程语言 项目基础介绍 nnU NetNo New Net是一个用于医学图像分割的开源项目旨在自动人工智能深度学习计算机视觉医疗健康CANN社区ReduceAll算子实现ReduceAll 产品支持情况 | 产品 | 是否支持 | | | : :| |Atlas A2 训练系列产品/Atlas A2 推理系列产品|√| 功能说明人工智能深度学习计算机视觉医疗健康goja 安装与配置从零开始搭建 JavaScript 运行环境goja 安装与配置从零开始搭建 JavaScript 运行环境 goja 是一个用纯 Go 语言实现的 ECMAScript/JavaScript 引擎它编程语言语言运行时上一篇12 种 AI 服务接入微信wechat-bot 机器人快速搭建指南下一篇突破实分析学习瓶颈GitHub精选课程习题资源全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考