TransUNet训练过程的一些问题

参考博客:SwinUnet官方代码训练自己数据集(单通道灰度图像的分割)_swinunet代码-CSDN博客

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

TransUnet官方代码训练自己数据集(彩色RGB3通道图像的分割)_transunet训练自己的数据集-CSDN博客

【swinUnet官方代码测试自己的数据集(已训练完毕)】_swinunet训练自己的数据集-CSDN博客

参考这个博主TranUnet和SwinUNet的四篇博客,很赞的教程!

①我用的是医学图像的二分类数据(image和label的命名要一一对应)

npz文件的制作参考swinunet这篇

代码:

import os
import glob
import cv2
import numpy as np

def npz():
    # 图像路径
    image_path = "/*.png"
    # 输出npz文件路径
    output_path = ""

    for i, img_path in enumerate(glob.glob(image_path)):
        # 
        image = cv2.imread(img_path)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

        label_path = img_path.replace('image', 'label')
        label = cv2.imread(label_path, flags=0)

        # 标签要归一化
        label = label / 255.0

        # 
        np.savez(output_path + str(i), image=image, label=label)
        print('------------', i)

    print('ok')

npz()

------------------
②除了改博主博客里的部分代码,还需要参考这篇博客改对应的部分

KeyError: ‘Transformer/...query\\kernel is not a file in the archive‘(已解决)_keyerror: 'mocap_framerate is not a file in the ar-CSDN博客

③我遇到的有评论区的问题也有评论区没有的问题,都是能够解决的,多翻评论区或者直接百度搜索,或者chatgpt,全部都能解决de!要相信互联网的力量!!

④最后预测的问题,预测结果全为0,注意检查npz文件和txt文件是不是按顺序一一对应的,我的npz之前写进txt里面是乱序的,导致出来的指标全部为0(尊的很无语的问题),还有就是要将label的像素归一化,最后预测的可以直接保存黑色的图(只要指标算出来不是0,图一般都是有像素值的)然后自己再转一下0-255就可以看到预测的图了,或者直接跟着博主改(我怕再报错就直接自己重新转了一下像素)

⑤没有会员的同学(博主那边下载要会员)可以自己挂梯子去下载预训练模型,我下载了好多次才成功

⑥需要安装的一些库(每个人环境不一样,直接运行代码缺哪个pip哪个就好):ml_collections,medpy,tensorboardX,tqdm,

⑦在utils.py中(两个网络都需要)

错误:NameError: name 'Image' is not defined

解决方法:from PIL import Image

⑧swinunet中

FileNotFoundError: [Errno 2] No such file or directory: './data/Synapse/test_vol_h5/test_vol_h5/0.npz'不知道哪里的问题test_vol_h5文件夹路径拼接重复了,有两个,我直接按错误提示改文件夹,也可以直接找代码的对应部分改,只要读得到文件就可以

⑨swinunet中

FileNotFoundError: [Errno 2] No such file or directory: './data/Synapse/test_vol_h5/test_vol_h5/.npz'
是因为txt文件中多了一行空格,删掉空格就可以了

⑩swinunet的预训练权重只有224*224的,我的图片数据是128*128,我是用等比缩放的方式处理了图片再输进去网络,不确定会不会对结果有影响,也可以试试不使用预训练权重来跑

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值