【一、整理-加上数据图片】MT-Unet模型的复现使用【个人记录学习】

找MT-UNet-main代码----GitHub

一、复现MT-UNet

1.思路:先复现MT-UNet-main,再用我们的数据集跑

2.代码中有ACDC dataset 数据,但我们要跑Synapse dataset. 

3.找dataset数据:根据作者提示去 TransUnet.项目中寻找。

4.TransUnet作者提供了两种方法:

  • 发邮件,联系作者,要已经处理好的Synapse dataset.数据集,但是作者至今未回复,GitHub项目issues里面,其他的研究人员也未能联系到作者获取到数据集。
  • 根据TransUnet作者提示:“在Synapse官方网站注册并下载数据集。将其转换为numpy格式,剪辑在[- 125,275]范围内的图像,将每个3D图像归一化为[0,1],从3D volume中提取2D切片用于训练用例,而对测试用例保留h5格式的3D volume。

5.采用4.2的方法,去在Synapse官方网站注册,并选择其中的一个16G左右数据集进行了下载。然后,按照作者的预处理要求,对原始数据进行了处理。这里的原始数据,后面发现,和作者论文中使用的数据并不是同一组,无法知道作者使用的数据是哪一组

6.原始数据(img.nii.gz和label.nii.gz)处理成了case0001_slice000.npz用于训练和case0001.npy.h5用于测试(.npy是numpy的数组以未压缩的原始二进制格式保存在扩展名为.npy文件中,而.npz相当于对多个.npy文件的压缩文件。而.h5文件就是 “dataset” 和 “group” 二合一的容器。Dataset中可以存储numpy的数据等。有时.h5文件也可以用来存储训练的模型的参数),以及保存名称的train.txt和test.txt。(Q1至于为什么没有val的部分,还没时间研究)

7.阅读代码,并进行修改和调试。除了一些其他细节外,主要是改了两个地方:

  • 增加了log,将训练的一些日志写入.txt
  • 更改了test,由于测试用例太多,花费时间太长,将每save_interval轮(epoch)测试一次,改为了30轮之后再每save_interval轮(epoch)进行测试。然后,将每测试一次就保存一次img、gt、pre改为了,只有这次的测试的dice大于best_dice才进行保存。

8.在本地将代码调通以后,然后扔到服务器上,安装相应环境进行测试batch_size=12,size=(244,244,3),epoch=100 r=0.0001(每一轮衰减0.01),class=14.到目前为止的训练结果(还没训练完,训练25轮了):

论文中的数据:

25轮的结果就和论文的相差不多,至于为是什么会有这样的结果,我反思和思考了许久,最后的原因很搞笑,是因为自己写代码在预处理数据出现了点问题,大概可以说是将训练的数据和测试的数据用为同一组数据了(Q2,这个数据的问题,后面会进行修改重新训练)

9.想查看训练结果的图像,测试保存下来的是img.nii.gz、gt.nii.gz、pre.nii.gz

于是查找资料,可以用ITK-SNAP软件打开显示:

  

                               Img.nii.gz                                                         pre.nii.gz

  

                         Img.nii.gz+ pre.nii.gz                                       Img.nii.gz+ gt.nii.gz

10.至此,原文的用Synapse dataset复现项目,因为Q2的原因,差不多算是完成了90%. 

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

OWN CODE WORLD

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

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

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

打赏作者

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

抵扣说明:

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

余额充值