发现网上尽然没有 swin unet 的运行教程呜呜,那我来出一份吧
环境准备
克隆 Swin Unet 项目地址(https://github.com/HuCaoFighting/Swin-Unet.git),按照项目介绍的 python=3.7 版本安装项目依赖
pip install -r requirements.txt
训练
获取训练的数据集,接下来以 Synapse 为例
通过仓库给的链接
得到 project_TransUNet,根据 ./datasets/README.md 文件的信息,将文件夹按照格式放到项目当中的位置,在其中我们也会得到Synapse处理好后的数据集(注意 TransUNet 无需安装依赖)
根据官网给的例子开始训练模型
python train.py --dataset Synapse --cfg configs/swin_tiny_patch4_window7_224_lite.yaml --root_path ./data/Synapse --list_dir ./lists/Synapse --max_epochs 150 --output_dir ./model_out --img_size 224 --base_lr 0.05 --batch_size 24
your DATA_DIR:./data/Synapse
your OUT_DIR:./model_out
遇到的问题
一、文件缺少
在lists/Synapse 目录中缺少 train.txt 和 val.txt 文件
这个需要自己创建,对应Synapse数据集中test_vol_h5和train_npz的文件名
● train.txt:包含 train_npz 文件夹中所有训练文件的名称或路径。
● val.txt:包含 test_vol_h5 文件夹中所有验证文件的名称或路径。
可以叫GPT生成脚本,或者用下面的脚本创建
import os
# 定义数据目录路径
train_dir = './data/Synapse/train_npz'
val_dir = './data/Synapse/test_vol_h5'
# 定义输出的列表文件路径
output_dir = './lists/Synapse'
os.makedirs(output_dir, exist_ok=True) # 如果目录不存在则创建
# 生成 train.txt 文件
train_files = os.listdir(train_dir)
with open(os.path.join(output_dir, 'train.txt'), 'w') as train_f:
for file_name in train_files:
if file_name.endswith('.npz'):
train_f.write(f"{
file_name}\n")