2024年最新nnU-Net v2的环境配置到训练自己的数据集(详细步骤)_nnunetv2,2024年最新我阿里P7了解到的大数据开发面试的一些小内幕

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  1. 创建虚拟环境:在pycharm中打开终端,输入命令行:conda create -n nnUNet python=3.9,创建一个名字为 nnUNet 的虚拟环境,并且指定python为3.9的版本
    创建虚拟环境
    在这里插入图片描述
    在这里插入图片描述
  2. 在虚拟环境中安装torch:
    (1) 首先输入:nvidia-smi 查看信息,下图中的CUDA Version:12.0是指CUDA最高版本为12.0,即安装GPU版本的torch 的时候,安装12.0以下的版本
    在这里插入图片描述

(2) 打开Pytorch官网:Pytorch地址,在此界面下拉,按照自己配置选择,然后复制给出的命令行
在这里插入图片描述
在这里插入图片描述
(3) 回到pycharm终端,进入粘贴此代码,进行torch安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、nnUNet框架的安装

**注意:**环境已经安装配好之后,接下来的所有操作都在此环境中,即:都需要先激活虚拟环境。GitHub-文档说明link

  1. 安装nnUNet:(1)激活虚拟环境,(2)使用此命令行:
pip install nnunetv2

  1. 创建nnUNet代码副本,和直接在GitHub上下载下来一样效果,继续在终端的虚拟环境中,按顺序分别执行以下3个命令行:(**注意:**最后一个命令最后有一个.)其中,pip install -e .的目的:(1)安装nnUNet需要的python包;(2)向终端添加新的命令,这些命令用于后续整个nnU-Net pipeline的执行,这些命令都有一个前缀:nnUNetv2_
git clone https://github.com/MIC-DKFZ/nnUNet.git
cd nnUNet
pip install -e .

具体步骤如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 安装隐藏层(可选,可以不安装),hiddenlayer 使 nnU-net 能够生成网络拓扑图
pip install --upgrade git+https://github.com/FabianIsensee/hiddenlayer.git

在这里插入图片描述

四、数据集的准备

得到克隆之后的副本,即:名为 nnUNet 的文件夹,参照官方文档,准备数据集。GitHub-文档说明link

  1. 数据集文件夹结构:按照如下步骤创建文件夹,存放相应的数据集
    (1) 在 名为 nnUNet 的文件夹 中创建一个名为 名为 GATASET 的文件夹 的文件夹
    (2) 在 名为 GATASET 的文件夹 中创建3个文件夹,命名分别为:nnUNet_rawnnUNet_preprocessednnUNet_trained_models。如下图所示:

在这里插入图片描述
(3) 在 名为 nnUNet_raw 的文件夹 中创建1个 名为 Dataset001_Teeth 的文件夹

说明1:文件夹命名为:Dataset+三位整数+任务名,Dataset001_Teeth中数据集ID为1,任务名为Teeth。此文件夹下存放需要的训练数据集imageTr、测试集imageTs、标签labelsTr。其中imageTs 是与imageTr中一一对应的标签,文件中都是nii.gz文件。imageTs是可选项,可以没有。如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说明2:json文件是对三个文件夹内容的字典呈现。先在 Dataset001_Teeth文件夹下创建一个空白的dataset.json文件,然后运行以下代码写入相应的 json文件

import json

nnUNet_dir = '/root/autodl-tmp/nnU-Net/nnUNet/DATASET/' #此路径根据自己实际修改

def sts\_json():
    info = {
        "channel\_names": {
            "0": "CBCT"
        },
        "labels": {
            "background": 0,
            "Teeth": 1
        },
        "numTraining": 12,
        "file\_ending": ".nii.gz"
    }
    with open(nnUNet_dir + 'nnUNet\_raw/Dataset001\_Teeth/dataset.json',
              'w') as f:
        json.dump(info, f, indent=4)

sts\_json()

运行后生成的 json文件内容如下:

在这里插入图片描述

五、设置读取文件路径设置(重要)

  1. 需要让nnUNet知道文件存放在哪里,否则执行数据处理等一下相关操作都会报错,如下图
    在这里插入图片描述
    在这里插入图片描述

  2. 方法一:(自己使用的方法一)
    (1) 找到root文件夹下的.bashrc文件(**注:**这里自己租用的云平台的服务器,若是自己的服务器在home文件夹下找 .bashrc文件,若没有,在home目录下使用Ctrl+h,显示隐藏文件)
    在这里插入图片描述
    (2) 打开.bashrc文件,在最后添加此三行内容,记得要更新一下修改后的文件,具体说明如下图

export nnUNet_raw="/root/autodl-tmp/nnU-Net/nnUNet/DATASET/nnUNet\_raw"
export nnUNet_preprocessed="/root/autodl-tmp/nnU-Net/nnUNet/DATASET/nnUNet\_preprocessed"
export nnUNet_results="/root/autodl-tmp/nnU-Net/nnUNet/DATASET/nnUNet\_trained\_models"

在这里插入图片描述

  1. 方法二:

在这里插入图片描述
4 注:更新文档可以点击按钮更新,然后在终端使用命令行source .bashrc更新,如下图
(1)在这里插入图片描述
(2)
在这里插入图片描述

六、数据集的转换

  1. 此任务的数据集不需要格式转换,此步骤是为了将数据集转换成上述imageTr文件夹里面图片中显示的样子:名字_000X 的形式
  2. 数据集转换的指令:
nnUNet_convert_decathlon_task -i /root/autodl-tmp/nnU-Net/nnUNet/DATASET/nnUNet_raw/Dataset001_Teeth

  1. 此步骤参考:link

七、数据集预处理

  1. 此步骤对数据进行:裁剪crop,重采样resample以及标准化normalization,具体论文中有讲解,或参看此博文:nnU-Net论文解读。将提取数据集指纹(一组特定于数据集的属性,例如图像大小、体素间距、强度信息等)。此信息用于设计三种 U-Net 配置。每个管道都在其自己的数据集预处理版本上运行
  2. 继续在虚拟环境中执行一下命令行:
nnUNetv2_plan_and_preprocess -d DATASET\_ID --verify_dataset_integrity  

此命令行中的DATASRT_ID根据自己任务修改,此任务中,Dataset001_Teeth 中可知ID为1 所以执行的命令为:

nnUNetv2_plan_and_preprocess -d 1 --verify_dataset_integrity  

具体如下图所示:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值