当前位置: 首页 > news >正文

【nnUnetv2】推理+评估+测试

在 Windows 系统下设置环境变量

之前训练和推理的时候开着AutoDL的服务器,是在 Linux 系统下设置的环境变量。

但是现在开始研究具体代码了,就在本地跑(一直开着服务器有点费钱),所以就在Windows 系统下设置环境变量。


①右键点击 “此电脑”,选择 “属性”。

②在左侧导航栏中,点击 “高级系统设置”。

③在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。

④在 “系统变量” 部分,点击 “新建” 按钮,分别创建 nnUNet_rawnnUNet_preprocessed 和 nnUNet_results 三个环境变量,并设置相应的路径。

⑤点击 “确定” 保存设置。

🎀inference

之前复现的时候不是安装了nnUnet嘛,安装 nnU-Net 会在我的终端中添加几个新命令,用于运行整个 nnU-Net 流水线。

这些添加的命令在执行的时候本质只是执行 Python 脚本。(pyproject.toml文件中的 project.scripts 写明了执行的是哪些脚本/函数。)

nnUNetv2_predict_from_modelfolder = "nnunetv2.inference.predict_from_raw_data:predict_entry_point_modelfolder"
nnUNetv2_predict = "nnunetv2.inference.predict_from_raw_data:predict_entry_point"

 这两个命令 nnUNetv2_predict_from_modelfolder 和 nnUNetv2_predict 都是用于运行 nnU-Net 推理(预测)的命令,但它们在使用场景和参数上有所不同。

当你已经有一个训练好的模型文件夹“autodl-tmp/nnUNet_results/Dataset201_BrainTumour”,并且想要手动指定该文件夹路径来进行推理时使用nnUNetv2_predict_from_modelfolder


当你想要根据数据集名称或 ID 来指定nnUNet_results中的模型进行推理时使用nnUNetv2_predict,这个命令用于它会自动从环境变量指定的nnUNet_results中找到相应的模型。

参数:

  • -i: 输入文件夹路径,包含待预测的图像文件。

  • -o: 输出文件夹路径,预测结果将保存到这里。

  • -d: 数据集名称或 ID,指定你要预测的数据集。

  • -p: 计划标识符(plans identifier),默认是 nnUNetPlans

  • -tr: 训练器类名称,默认是 nnUNetTrainer

  • -c: 配置名称,指定用于预测的配置。

  • -f: 指定用于预测的折叠(folds),默认是 (0, 1, 2, 3, 4)

  • -step_size: 滑动窗口预测的步长,默认是 0.5

  • --disable_tta: 禁用测试时数据增强(如镜像),默认是启用的。

  • --save_probabilities: 保存预测的概率图,默认不保存。

  • -chk: 指定使用的检查点文件名,默认是 checkpoint_final.pth

  • -npp: 预处理使用的进程数,默认是 3

  • -nps: 分割导出使用的进程数,默认是 3

  • -prev_stage_predictions: 如果使用级联模型,指定前一阶段的预测结果文件夹。

  • -num_parts: 指定预测任务的分割数,默认是 1

  • -part_id: 指定当前预测任务的 ID,默认是 0

  • -device: 指定推理设备(cudacpumps),默认是 cuda

由于之前已经设置了三个环境变量,训练结果也已经放在了“autodl-tmp/nnUNet_results”,而且之前推理使用的也是nnUNetv2_predict,所以重点研究predict_from_raw_data.py中的predict_entry_point函数

🧸predict_entry_point

def predict_entry_point():
    # 导入argparse模块,用于解析命令行参数
    import argparse
    # 创建一个ArgumentParser对象,用于解析命令行参数
    parser = argparse.ArgumentParser(description='Use this to run inference with nnU-Net. This function is used when '
                                                 'you want to manually specify a folder containing a trained nnU-Net '
                                                 'model. This is useful when the nnunet environment variables '
                                                 '(nnUNet_results) are not set.')
    # 添加命令行参数
    # -i表示输入文件夹
    parser.add_argument('-i', type=str, required=True,
                        help='input folder. Remember to use the correct channel numberings for your files (_0000 etc). '
                             'File endings must be the same as the training dataset!')
    # -o表示输出文件夹
    parser.add_argument('-o', type=str, required=True,
                        help='Output folder. If it does not exist it will be created. Predicted segmentations will '
                             'have the same name as their source images.')
    # -d表示数据集名称或 ID,指定你要预测的数据集。
    arser.add_argument('-d', type=str, required=True,
                        help='Dataset with which you would like to predict. You can specify either dataset name or id')
    # -p表示plans标识符
    parser.add_argument('-p', type=str, required=False, default='nnUNetPlans',
                        help='Plans identifier. Specify the plans in which the desired configuration is located. '
                             'Default: nnUNetPlans')
    # -tr表示训练器类
    parser.add_argument('-tr', type=str, required=False, default='nnUNetTrainer',
                        help='What nnU-Net trainer class was used for training? Default: nnUNetTrainer')
    # -c表示配置
    parser.add_argument('-c', type=str, required=Tru

相关文章:

  • 计算机网络的分类及其性能指标
  • victoriametrics 部署
  • 【技术】外设驱动库开发笔记55:MAX31865热电阻变送器驱动
  • Pydantic Mixin:构建可组合的验证系统体系
  • Zstd(Zstandard)压缩算法
  • 数据库设计-笔记2
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例9,TableView15_09带排序的导出表格示例
  • 多层感知机与反向传播
  • Qt调用Miniconda的python方法
  • 桥接模式 (Bridge Pattern)
  • Centos6配置yum源
  • 国企笔试之2025年中广核校招SHL测评笔试内容详解
  • 一文了解 threejs 中.bin 文件与 .gltf 文件 和 .glb 文件三者之间的关系
  • 汽车芯片成本控制:挑战、策略与未来趋势
  • 数学建模中的最大最小值模型详解
  • vue3:十一、主页面布局(优化页面跳转方式)
  • 网络层之IP协议
  • MySQL拒绝访问
  • 使用Docker部署MySQL8.0.29
  • SpringDoc和Swagger使用
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 国务院任免国家工作人员:颜清辉任人社部副部长
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 光明网评“泉州梦嘉商贸楼不到5年便成危楼”:监管是否尽职尽责?
  • 直播电商行业代表呼吁:携手并肩伸出援手助力外贸企业攻坚克难
  • 发布亮眼一季度报后,东阿阿胶股价跌停:现金流隐忧引发争议