nnUNet推理与预测(手把手一步一步实现。接上文用自己的数据训练)

 如上图所示,当我们训练了大概几轮之后会在nnUNet_trained_models文件下生成nnUNet以及2d的模型文件,我们可以看到fold_4里面会有model_best.model,这个模型文件就是我们训练好的模型了,我们也可以通过同级目录下的progress.png,来查看loss函数的变化。接上文有几点要注意的情况,首先nnunet并不需要手动调学习率和训练轮数(这里nnunet默认是要训练1000轮),学习率的调整是用的损失函数的加权平均值使用的损失函数来对其进行更正的。还有就是nnunet的loss函数默认是趋向-1的,也就是说在训练的过程中,我们通过每轮训练的日志可以查看到每轮的loss函数,这个数值应该是负数,而且越趋向于-1,效果越好。(后期发现虽然第一次趋向-1但是大概率是我第一次显卡的问题,显卡算力和显存都会影响,后期在服务器上运行发现损失函数趋势正常(好像服务器也是趋向-1 但是不重要loss只要下降了就行),但是从效果来看,损失函数趋势对影响不是很大,这边建议还是在服务器上跑,当时我用了400张左右采集到的数据,最后效果还不错,效果要好于UNet网络。对于损失函数还想说的是,只要他的loss在下降就ok我们中途也可以通过生成的best_model来看一下当前训练轮数的效果怎么样  。)我们可以注意到我们选择使用的是V2也就是nnUNetTrainerV2训练方法,我们可以仔细查看这个py文件,大致说来就是他在V1的训练方法上进行了改进(深监督),想要具体的了解loss函数,我们可以通过这篇论文来了解”Focal Loss for Dense Object Detection“附上个论文加实现代码的链接🔗:Focal Loss for Dense Object Detection | Papers With Code#3 best model for Long-tail Learning on EGTEA (Average Precision metric)https://paperswithcode.com/paper/focal-loss-for-dense-object-detection#

言归正传,这里我附一张根据上一篇文章训练的loss结果:

 可以看出接近1000epochs的时候loss不断的趋向于-1,如果你在训练的时候发现loss数值大于0而且没有趋向于-1的趋势,这可能因为GPU的原因,主要还是显存,官方推荐至少要8G,这里我在自己电脑上(4G,1650)修改过batchsize之后是可以训练的,但是我的电脑上给出的loss函数均大于0,而在服务器上运行(3090)的结果是越来越趋向于-1的,(显存一定要大!!还有预处理的时候要100G固态硬盘,固态硬盘是原论文中说到的,硬盘我没有受到影响,但是显存一定要大!!最少8G,不然没有效果)而且训练的效果也完全不一样,所以还是需要一个配置高的GPU去训练,毕竟nnunet从预训练开始就是对数据集进行大量的处理。其次有就是nnunet默认的batchsize是2,这里不建议再去减小batchsize(batchsize也不能调小,可以大但是不能小,确实可以自己改代码(这个代码很难去改,因为原论文不想你修改这个参数,我自己强制给改了为了测试,发现没有分割效果,所以说到这里就是在服务器上做就行!!)),找一个显存大的显卡这些问题都可以ignore。

中途可以用生成好的best_model检查一些效果,这个代码是:-chk model_best #应该是这个太久了有些忘记了,不对的话说一下我再看看。

预测的话把数据弄到数据的ts里。具体代码如果你做到这里肯定能知道的,我时间太久了忘记了。。

如果要fintune的话,load原模型,继续训练就好了。

差不多就这些吧。

如果损失函数趋势没有问题,那么我们只需要等待1000轮的训练即可。(当时是差不多500轮左右就拟合了,所以只训练了一半,效果还是ok的)

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SetMaker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值