当前位置:网站首页>使用SwinUnet训练自己的数据集
使用SwinUnet训练自己的数据集
2022-07-07 05:19:00 【我是一个小稻米】
参考博文: https://blog.csdn.net/qq_37652891/article/details/123932772
数据集准备
遥感图像多类别语义分割,总共分为7类(包括背景)
image:
label_rgb
label(这里并不是全黑,其中的类别取值为0,1,2,3,4,5,6
),此后的训练使用的也是这样的数据
数据地址
百度云:https://pan.baidu.com/s/1zZHnZfBgVWxs6TJW4yjeeQ
提取码:2022
SwinUNet代码地址
数据集处理
数据集的image
和label
,这个数据集应该提供了rgb
格式标签和包含0,1,2,3,4,5,6
值的标签,SwinUNet
使用的是包含0,1,2,3,4,5,6
的标签图像;
1. 数据集
数据集存放在SwinUNet
根目录下,image
中是原图像,label
中是标签图像(共7类,其标签取值为0,1,2,3,4,5,6,7
);
如果使用其他数据集,要注意标签的取值。比如如果是二分类。即标签0
或255
,需要换成0
或1
—SwinUNet
---------configs
---------img_datas
---------------train
--------------------image
--------------------label
---------------test
--------------------image
--------------------label
2. 在SwinUnet
根目录下创建npz.py
文件,运行npz.py
文件
import glob
import cv2
import numpy as np
import os
def npz(im, la, s):
images_path = im
labels_path = la
path2 = s
images = os.listdir(images_path)
for s in images:
image_path = os.path.join(images_path, s)
label_path = os.path.join(labels_path, s)
image = cv2.imread(image_path)
image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
# 标签由三通道转换为单通道
label = cv2.imread(label_path, flags=0)
# 保存npz文件
np.savez(path2+s[:-4]+".npz",image=image,label=label)
npz('./img_datas/train/image/', './img_datas/train/label/', './data/Synapse/train_npz')
npz('./img_datas/test/image/', './img_datas/test/label/', './data/Synapse/test_vol_h5')
3. 在SwinUnet
根目录下创建txt.py
文件,运行txt.py
文件
目的是生成./list/list_Synapse/train.txt
和./list/list_Synapse/test_vol.txt
文件
import os
def write_name(np, tx):
#npz文件路径
files = os.listdir(np)
#txt文件路径
f = open(tx, 'w')
for i in files:
#name = i.split('\\')[-1]
name = i[:-4]+'\n'
f.write(name)
write_name('./data/Synapse/train_npz', './lists/lists_Synapse/train.txt')
write_name('./data/Synapse/test_vol_h5', './lists/lists_Synapse/test_vol.txt')
4. 下载预训练权重,放在SwinUnet
目录下的pretrained_ckpt
文件夹下
链接:https://pan.baidu.com/s/1-hYwJRlr95Fv08e9AEARww
提取码:2022
修改网络
1. 修改train.py
文件
比较重要的是类别数量,其他视情况而定
2. 修改./datasets/dataset_synapse.py
文件
3. 修改trainer.py
文件
此处不知道为什么
4. 运行代码
这些信息可以作为超参传入,如果不能,那么可以使用default=
的方式写入默认值
如果设置好啦默认值,那么运行python train.py
就可以啦
边栏推荐
- Use of any superclass and generic extension function in kotlin
- 面试题(CAS)
- Record a stroke skin bone error of the skirt
- 力扣(LeetCode)187. 重复的DNA序列(2022.07.06)
- 让Livelink初始Pose与动捕演员一致
- game攻防世界逆向
- Recursive construction of maximum binary tree
- OpenVSCode云端IDE加入Rainbond一体化开发体系
- Pytorch(六) —— 模型调优tricks
- Complex network modeling (I)
猜你喜欢
漏洞复现-Fastjson 反序列化
The simple problem of leetcode is to judge whether the number count of a number is equal to the value of the number
CDC (change data capture technology), a powerful tool for real-time database synchronization
Réplication de vulnérabilité - désrialisation fastjson
利用 Helm 在各类 Kubernetes 中安装 Rainbond
Game attack and defense world reverse
Dedecms collects content without writing rules
Rainbond结合NeuVector实践容器安全管理
青龙面板-今日头条
[quick start of Digital IC Verification] 11. Introduction to Verilog testbench (VTB)
随机推荐
雅思考试自己的复习进度以及方法使用【日更版】
jeeSite 表单页面的Excel 导入功能
Complex network modeling (III)
Game attack and defense world reverse
调用 pytorch API完成线性回归
Four items that should be included in the management system of integral mall
[untitled]
The element with setfieldsvalue set is obtained as undefined with GetFieldValue
Fast parsing intranet penetration escorts the document encryption industry
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
【踩坑系列】uniapp之h5 跨域的问题
What is the function of paralleling a capacitor on the feedback resistance of the operational amplifier circuit
The zblog plug-in supports the plug-in pushed by Baidu Sogou 360
Use of any superclass and generic extension function in kotlin
[quick start of Digital IC Verification] 11. Introduction to Verilog testbench (VTB)
青龙面板--整理能用脚本
王爽 《汇编语言》之寄存器
Rainbond 5.6 版本发布,增加多种安装方式,优化拓扑图操作体验
Topic not received? Try this