来这里寻找你的答案!
- 一、写在前面
- 二、GITHUB ISSUE
-
- I. 使用上的问题:
-
- #477 《3D nnUNet支持FP16量化吗?》
- #474 《ImportError: cannot import name find_namespace_packages》
- #471 《我怎么在本地评估一些预训练模型的指标呢?》
- #469 《无任何报错的进程死亡》
- #464 《如何对PET进行归一化》
- #459 《`orientation`这个属性在nnUNet里起作用吗?》
- #456 《cannot import name 'SpatialTransform_2' from 'batchgenerators.transforms'》
- #454 《能给个自己编译pytorch解决2d训练问题的教程吗?》
- #449 《前景多标签有重叠情况怎么解决?》
- #446 《在用多GPU训练以后发现推理时候报错》
- #437 《在Microsoft Azure VM Instance虚拟机中存在的一个bug》
- #427 《nnUNet能不能使用cupy来加速预处理过程呢?》
- #425 《当生成的patch_size大于图像本身的时候会发生什么?》
- #424 《能直接把预处理以后的npz文件的patch抽出来在我的新模型上进行训练吗?》
- #423 《想在你的模型中添加新的网络块,应该怎么做?》
- #422 《使用find_best_configuration时npz丢失》
- #421 《cuda10.0+torch1.2可以训练吗?》
- #420 《怎么训练2D图片?》
- #417 《推理时间特别慢(32g的RAM)》
- #416 《在docker中运行nnUNet遇到错误`RuntimeError: MultiThreadedAugmenter.abort_event was set, something went wrong. Maybe one of your workers crashed. This is not the actual error message! Look further up your stdout to see what caused the error. Please also check whether your RAM was full`》
- #322 《关于修改最大轮数》
- #321 《在执行plan_preprocess的时候卡住》
- #318 《12GB的显存仍然不够的问题》
- #312 《混合精度问题(TypeError: predict_preprocessed_data_return_seg_and_softmax() got an unexpected keyword argument 'mixed_precision')》
- #311 《训练时找不到预处理文件夹》
- #310 《"Segmentation fault (core dumped)"》
- #309《"RuntimeError: CUDA error: device-side assert triggered"》<---(Non-consecutive labels within ground truth )
- #304《1000的epoch太多了,我怎么自定义一个epoch?》
- #302《训练第一个fold的时候正常,但是其他四个fold的训练损失是NaN》
- #299《五折产生五个fold,每个训练出一个模型,怎么把这五个合成一个模型呢?》
- #297《简单修改了batchsize和patchsize并不成功,目的是希望在32GB的显卡上充分利用显存》
- #296《"TypeError: consolidate_folds() got an unexpected keyword argument 'folds'"》
- #295《"AttributeError: 'list' object has no attribute 'size'"(推理时候卡住并报错)》
- #290《预测时候卡主卡了一天没有反应》
- #288《怎么使用FabiansUNet,而不是默认的generic_Unet》
- #281《关于怎么评估模型测试结果》
- #280《怎么关闭deep-supervision》
- #273《代码中的"softmax_helper"相比torch中的"torch.nn.functional.softmax"有什么优点》
- #271《怎么读取权重(找不到权重文件)》
- #270《怎么在预训练模型的基础上加入一些新的数据以提高模型泛化能力?》
- #268《训练数据有四个通道(而不是五个),最后一个通道是一个二进制的map(应该是五个通道时候的xy合并在一起的),怎么应用数据增强》
- #263《有些测试CT推理不出来,有些CT推理出来啥也没有》
- #259《同样的数据集,为什么我的训练结果没有作者论文里的效果好呢?》
- #258《关于推理速度如此之慢的问题》
- #257《nnUNet怎么对预处理好的文件进行推理》
- II. 理论上的问题:
- III. 代码上的问题:
一、写在前面
1. 发现最近大家的问题有很多,有部分是理论上的问题。但是很多还只是框架使用上的问题,其实个人觉得整个框架就现在来说已经相当的成熟,为了有一个类似于github的issue总结的地方,我希望去写一片问题总结的博客还是具有相当大的意义,一方面处于对工作学习内容的总结,一方面有个很好的反馈问题查找答案的地方。我会慢慢更新到最开始的位置。
2. 本篇博客总结的内容包括三个来源:
- ① GITHUB:我会从github的issue界面这里进行全面的检索和内容精要的提取,主要是已经关闭的issue。按照由今至古的时间线进行,同时会将内容分为如下三类:
- I. 使用上的问题:主要是使用过程出现的问题总结;
- II. 理论上的问题: 涉及到理论的新颖知识,基本的概念或常识;
- III. 代码上的问题:算法的代码实现,以及一些可能存在的bug。
- ② 个人使用经验:总结我在使用nnUNet过程中出现的问题和解决方案。
- ③ 访客问题:总结大家向我提出的问题,只会涉及到我之前没有遇到过也没有时间常识解决且GITHUB上暂时没有提到的问题。
3. 笔者希望各位看官在方便自己工作学习的同时,也能为贡献自己的一份力,我们距离德国的医疗卫生水平还有着巨大的鸿沟式的差距,人生在世,总得留下点有价值的东西,无论出于什么目的,大家一起加油,不忘初心。
二、GITHUB ISSUE
I. 使用上的问题:
#477 《3D nnUNet支持FP16量化吗?》
- 1. 解决方法:最近的更新将会支持FP16的量化,结果是一样的,有兴趣的同学测试下速度。
#474 《ImportError: cannot import name find_namespace_packages》
- 1. 问题描述:在
pip install -e .
时遇到问题。 - 2. 解决方法:先执行
pip install -U setuptools
,再pip install -e .
。
#471 《我怎么在本地评估一些预训练模型的指标呢?》
- 1. 解决方法:在论文的附录里有的。
#469 《无任何报错的进程死亡》
- 1. 问题描述:我正在尝试使用马萨诸塞州道路分割数据集训练2D模型。 但是,当训练过程达到第四轮,终端将显示“ killed”,而没有任何错误消息。
- 2. 解决方法:这里的
nnU-Net training (2D U-Net): High (and increasing) system RAM usage, OOM
解释了这个原因。 - 3. 问题解决:
分别将CUDA和CUDNN版本更新为11.0.194和8.0.5,然后我重新编译pyTorch,它可以正常工作。 - 4. 我有话说:几个月没看nnUNet,看来已经可以进行自然场景的2D分割了 ,很多同学问过这个问题,不知道你们有没有跟进关注呢?我在这个问题发现了这个任务的数据预处理---->here,看来作者已经把脚本写好了,确实得看一下了。
#464 《如何对PET进行归一化》
- 1. 解决方法:PET图像将像其他任何非CT图像一样处理:每个样本均使用其自己的均值和标准差进行归一化。
#459 《orientation
这个属性在nnUNet里起作用吗?》
- 1. 解决方法:nnUNet不考虑这个属性,你的数据集必须要保证方向一致。
#456 《cannot import name ‘SpatialTransform_2’ from ‘batchgenerators.transforms’》
- 1. 解决方法:更新下
batchgenerators
或者重新安装下nnUNet。
#454 《能给个自己编译pytorch解决2d训练问题的教程吗?》
- 1. 解决方法:这里有哦!说真的,只要你编译过ffmpeg的cuda版本这都是小儿科,人都能疯。pytorch已经很友好了。
#449 《前景多标签有重叠情况怎么解决?》
- 1. 解决方法:多分类的前景标签有重叠的情况现在nnUNet尚不支持。
#446 《在用多GPU训练以后发现推理时候报错》
- 1. 问题描述:
- 2. 解决方法:这是当前版本仍然存在的问题,会在未来进行改进,所以不建议去使用多gpu训练。
#437 《在Microsoft Azure VM Instance虚拟机中存在的一个bug》
- 1. 问题描述:
shutil.Error: [('/nnUnet/nnUNet_raw_data_base/nnUNet_cropped_data/Task001_Brain/gt_segmentations/BRAIN_000.nii.gz', '/nnUnet/nnUNet_preprocessed/Task001_Brain/gt_segmentations/BRAIN_000.nii.gz', "[Errno 38] Function not implemented: '/nnUnet/nnUNet_raw_data_base/nnUNet_cropped_data/Task001_Brain/gt_segmentations/BRAIN_000.nii.gz'"), .
- 2. 解决方法:https://stackoverflow.com/questions/51616058/shutil-copystat-fails-inside-docker-on-azure。
#427 《nnUNet能不能使用cupy来加速预处理过程呢?》
- 1.我的理解:我对这个问题的理解应该就是它想通过加速numpy来加速skimage这个库,从而对插值进行加速。后续我会做这部分工作,因为之前我用torch的加速替代了skimage的加速,但发现因为量化或者是我插值方法的原因,速度虽然提升了,但精度损失了很多。
#425 《当生成的patch_size大于图像本身的时候会发生什么?》
- 1. 解决方法:如果patch大小大于图像,则原始图像将用零填充。这根本不与非零裁剪冲突。 这两个有不同的目的。
#424 《能直接把预处理以后的npz文件的patch抽出来在我的新模型上进行训练吗?》
- 1. 作者解释:作者认为这样可能效果并不是很好。 因为他们在nnU-Net中解决了许多与之相关的陷阱。 最好的比较是在训练时使用nnU-Net所使用的相同数据加载器(包括增强),这应该很容易从nnU-Net存储库中提取出来。如果由于某种原因不想这样做,那么使用npz也可以,但是您仍然必须报告由原始nnU-Net获得的Dice分数作为基准。
#423 《想在你的模型中添加新的网络块,应该怎么做?》
- 1. 问题描述:想把这个模块添加到nnUNet的模型当中。
- 2. 作者解释