TransUnet训练自己的数据集

这篇具有很好参考价值的文章主要介绍了TransUnet训练自己的数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

github的源代码https://github.com/Beckschen/TransUNet

一.先对自己的数据集进行处理

1.原始数据集如下图所示分images和labels,若数据集是png/jpg....格式,首先需要将每一张图的image和其对应的label合并转化为一个.npz文件.

TransUnet训练自己的数据集

# 自建的将图片及对应标签合并为一个npz格式数据的转换代码
import cv2
import glob
import numpy as np

def npz():
    # 图像路径
    path = r'D:/train/images/*.png'
    # 项目中存放训练所用的npz文件路径
    path2 = r'D:/data/Synapse/train_npz//'  
    for i, img_path in enumerate(glob.glob(path)):
        # 读入图像
        image = cv2.imread(img_path, flags=0)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        # 读入标签
        label_path = img_path.replace('images', 'labels')
        label = cv2.imread(label_path, flags=0)   #flag=0时为灰度图像
        #label = cv2.imread(label_path)   #现在为彩色图像
        #label = cv2.cvtColor(label, cv2.COLOR_BGR2RGB)
        # 保存npz
        np.savez(path2 + str(i), image=image, label=label)
        print('', i)

if __name__ == '__main__':
    npz()

train文件转化为 train_npz文件;val转化为test_vol_h5文件,如图(注意这里训练集与测试集均转化为.npz格式,需修改读取文件的方法,具体是修改datasets/dataset_synapse.py文件中的Synapse_dataset类,修改__getitem__函数和datasets/dataset_synapse.py文件中的RandomGenerator类,修改__call__函数)

TransUnet训练自己的数据集

npz文件生成完成之后,找到train.txt和test_vol.txt,清空文件夹中的内容,按照原内容的格式对应train_npz文件与test_vol_h5文件中.npz文件的全部文件名分别写入train.txt/test_vol.txt文件,一个名称一行(参考原内容的格式)。

2.若数据集为.npz格式,则直接加载

二.开始训练

1.修改train.py(根据自己需要修改红线部分)

TransUnet训练自己的数据集

TransUnet训练自己的数据集

 2.根据自己需要,看是否加载预训练权重

通过修改train.py中   args.is_pretrain = True # False   与   net.load_from(weights=np.load(config_vit.pretrained_path))   实现

若要加载预训练权重则将权重文件放在model中

则可以开始训练,运行train.py

三.训练中我出现花费较长时间的报错,以及解决方法

1.在生成train_npz文件与test_vol_h5文件时

报错:libpng warning: iCCP: known incorrect sRGB profile  

解决:通过别的方法读取再保存即可解决。

path = r"D:/Desktop/car/all/train/labels/" #为文件的路径
fileList = os.listdir(path)
for i in tqdm(fileList):
    image = io.imread(path+i)  # image = io.imread(os.path.join(path, i))
    image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGRA)
    cv2.imencode('.png',image)[1].tofile(path+i)

2.训练过程中

报错:not enough memory:you tried to allocate

因为我用的cpu,应该是内存不够了

解决方法:将batchsize减少,之前我设置的是4,改为2后就可以正常运行了

3.报错:FileNotFoundError: [Errno 2] No such file or directoryTransUnet训练自己的数据集

 解决方法:

1)检查是否存在此文件。存在没问题

2)检查数据集路径,为绝对路径。路径正确

3)  检查加载数据集方式,正确

4)最后检查出来是train.txt中的训练样本的名称前多打了一个空格(粗心造成浪费了快一天时间),删除空格后正常运行。文章来源地址https://www.toymoban.com/news/detail-411154.html

到了这里,关于TransUnet训练自己的数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Bitbucket vs GitHub:代码托管(源代码管理)选哪个?

    选择一个资源库托管服务是一个重要的决定。如何托管你的代码是你工作的一个重要部分,影响你的生产力。所以你要确保你选择的平台最有利于你(和你的团队)的具体需求和目标。 如果你和大多数开发者一样,你可能正在使用Git作为你的版本控制系统(VCS)。然而,决定

    2024年01月17日
    浏览(62)
  • vscode源代码管理简单使用(默认上传github)

    在vscode中的插件管理输入如下后下载 点击文件--首选项--设置 点击右上角设置小图标   首先仓库文件一定是要git init是git所管理的 1.在代码文件夹下使用git init创建仓库 2.打开vscode的git管理  3.点击添加暂存区,再点击提交,可以输入提交内容 单个提交 全部提交到暂存区  

    2024年01月19日
    浏览(47)
  • 四旋翼无人机建模 (附github源代码)

    四旋翼无人机的应用十分广泛,而且四旋翼无人机是非常理想的控制模型。因为四旋翼是四输入(四个螺旋桨的升力) 六输出 (三个位置,三个姿态角)的欠驱动系统,而且四旋翼的三个姿态角之间是互相耦合的,并且位置与姿态也是耦合的,加上其固有的非线性特性,因此对于

    2024年02月01日
    浏览(68)
  • Tensorflow车牌识别完整项目(含完整源代码及训练集)

    基于TensorFlow的车牌识别系统设计与实现,运用tensorflow和OpenCV的相关技术,实现车牌的定位、车牌的二值化、车牌去噪增强、图片的分割,模型的训练和车牌的识别等 项目问题,毕设,大创可私聊博主 目录 环境准备 思路流程 功能描述 细节阐述 项目总体框架 过程展示 技术

    2024年02月02日
    浏览(43)
  • Mac上传项目源代码到GitHub的修改更新

    最近在学习把代码上传到github,不得不说,真的还挺方便 这是一个关于怎样更新项目代码的教程。 首先,在本地终端命令行打开至项目文件下 第一步:查看当前的git仓库状态,可以使用git status git status 第二步:更新项目文件 git add * 第三步:输入git commit -m “更新说明”

    2024年02月12日
    浏览(39)
  • 使用Cpolar+freekan源代码 搭建属于自己的在线视频网站

    转发自CSDNprobezy的文章:使用Cpolar+freekan源码 创建在线视频网站 随着网络条件的改善和移动智能设备的普及,在线视频也逐渐为大家所接受。经过多年发展,现在大部分视频都是以在线模式观看,跟发展在线短视频、直播视频等新型视频技术。今天,我们就为大家介绍,如何

    2024年02月06日
    浏览(46)
  • 【计算机视觉】YOLOv8的测试以及训练过程(含源代码)

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。 利用以前的 YOLO 版本,YOLOv8模型更快、更准确,同时为训练模型提供统一框架,以执行: 物体检测 实例分割 图像分类 Ultralytics为YOLO模型发布了一个全新的存储库。它被构建为 用于训练对象检测

    2024年02月13日
    浏览(41)
  • 数据结构之队列(源代码➕图解➕习题)

            在学过栈之后,会了解到栈的底层是根据顺序表或者链表来构建的,那么我们今天要学习的队列是否也是基于顺序表和链表呢?那我们直接进入正题吧!         还是跟上节一样,依旧用图解的方式让大家更好的理解概念。         队列: 队列指的是图中黑色边框

    2024年02月06日
    浏览(37)
  • 交通咨询系统源代码(数据结构课设)

      系统的展示和选题在这篇博客:点击这里        (就没有详解啦,代码中的注释已经写的很详细了)          直说了,我使用的软件是vs,但是dev也可以运行,反倒是初次使用vs的同学,没有关掉sdl检查的话运行会报错,说是scanf啥的出问题。解决方法:项目-属性-

    2024年02月11日
    浏览(40)
  • 数据结构之堆的实现(图解➕源代码)

            首先明确堆是一种特殊的完全二叉树,分为大根堆和小根堆,接下来我们就分别介绍一下这两种不同的堆。         在大堆里面: 父节点的值  ≥  孩子节点的值          我们的兄弟节点没有限制,只要保证 每个父节点都≥孩子节点 就行。         在小堆

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包