Transunet复现

本文详细描述了如何下载并复现TransUNet模型,包括下载Google预训练的ViT模型,数据准备,Python环境配置,遇到的训练过程中的文件路径错误和内存不足问题的解决,以及测试阶段的问题和调整。最终目标是优化模型性能,通过Dice系数和Hausdorff距离评估分割效果。
摘要由CSDN通过智能技术生成

 git代码:

TransUNet/datasets/README.md at main · Beckschen/TransUNet (github.com)

参考文章:TransUNet模型复现_transunet复现-CSDN博客

1.下载 Google 预训练的 ViT 模型(其实 就用的这一个)
2.准备数据:参考文章里面有别人贴的
3. 环境:使用python=3.7准备一个环境   pip install -r requirements.txt 

   注意:目前最新的Simple ITK不支持py3.7,用pip install SimpleITK==2.0.0

4,代码结构:
  • 整体结构
  • 本次用的vit预训练权重
  • 数据集的格式
5.训练train.py:

报错1:找不到vit权重文件

​​​​FileNotFoundError: [Errno 2] No such file or directory:'../model/vit_checkpoint/imagenet21k/R50+ViT-B_16.npz'

 解决1:跳转函数,修改vit_seg_config:贴绝对路径

报错2:FileNotFoundError: [Errno 2] No such file or directory:'../data/Synapse/train_npz/case0023_slice036.npz

解决2:图1:数据参数:改为绝对路径。  

图二:将:parser.add_argument('--root_path', type=str, default='./data/Synapse/train_npz', help='root dir for data')修改见图

报错3:RuntimeError: CUDA out of memory. Tried to allocate 74.00 MiB (GPU 0; 10.75 GiB total capacity; 9.61 GiB already allocated; 13.62 MiB free; 9.92 GiB reserved in total by PyTorch)

解决3:显存不足够,减少bs,我根据我的实际情况改为:python train.py --batch_size 15

查看GPU:nvidia-smi(略)润:

所有训练完的.pth文件会保存在新产生的model文件,我改了好几次btachsize:最优秀的,get!

6.测试test.py

参考文章:TransUnet官方代码测试自己的数据集(已训练完毕)_transunet测试-CSDN博客

 图一:修改test.py:除了test_vol_h5,地址要放对,其他三个参数与train文件一致(此图为修改后)

图二:data_config:改为绝对路径

报错1:No such file or directory: '../model/TU_Synapse224/TU_pretrain_R50-ViT-B_16_skip3_bs24_224/epoch_29.pth'

解决1:我没有用bs=24,我用的bs=15,所以,没有这个24权重文件,使用训练后新产生的15的权重文件

报错2:

解决2:要把模型名称与train改一样了!就上面修改test的文件,与train的模型名称要一致。

润test.py:

最后:新生成记录文件

mean_dice 表示平均 Dice 系数,用于度量模型的图像分割性能。Dice 系数越接近 1,表示分割结果与真实标签的重叠越好,性能越高。

mean_hd95 表示平均 95% Hausdorff 距离,也用于评估图像分割性能。95% Hausdorff 距离越小,表示分割结果与真实标签的接近度越高,性能越好。

PS:不要迷信GPT4,感谢大家先验知识,菜鸟分享。努力摆菜。

  • 42
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值