主页 > 开源代码  > 

代码的解读——自用

代码的解读——自用

代码来自: github /ChuHan89/WSSS-Tissue?tab=readme-ov-file

借助了一些人工智能

run_pipeline.sh

功能总结

该脚本用于执行一个 弱监督语义分割(WSSS) 的完整流程,包含三个阶段:

Stage1:训练一个基于 ResNet38 的多标签分类模型,生成图像级标签。

生成伪掩码(PM):利用 Stage1 的模型生成 3 种级别的伪分割掩码。

Stage2:使用伪掩码训练 DeepLab v3+ 分割模型,完成像素级分割任务。

代码解释 1. 设置数据集变量 DATASET=luad DATASETNAME=LUAD-HistoSeg

作用:定义数据集变量。DATASET 是数据集的缩写(用于代码内部标识),DATASETNAME 是数据集文件夹的实际名称。

用户需修改:替换这两个变量以切换不同数据集(例如 bcss 和 BCSS-WSSS)。

2. Stage1: 训练分类模型 python 1_train_stage1.py \ --dataset $DATASET \ --trainroot datasets/$DATASETNAME/train/ \ --testroot datasets/$DATASETNAME/test/ \ --max_epoches 20 \ >> logs/stage1_log_on_$DATASET.txt

参数解析:

--dataset:指定数据集标识符(与代码内部逻辑匹配)。

--trainroot/--testroot:训练集和测试集的路径。

--max_epoches:最大训练轮数(20轮)。

输出:模型权重保存为 checkpoints/stage1_checkpoint_trained_on_$DATASET.pth,日志重定向到 logs/stage1_log_on_$DATASET.txt。

3. 生成伪掩码(PM) python 2_generate_PM.py \ --dataroot datasets/$DATASETNAME \ --dataset $DATASET \ --weights checkpoints/stage1_checkpoint_trained_on_$DATASET.pth \ >> logs/stagePM_log_on_$DATASET.txt

参数解析:

--dataroot:数据集根目录(包含训练和测试数据)。

--weights:Stage1 训练好的分类模型权重路径。

作用:利用分类模型生成 3 种级别的伪分割掩码(如 CAM、边界增强掩码等)。

输出:伪掩码保存在数据集目录中,日志写入 logs/stagePM_log_on_$DATASET.txt。

4. Stage2: 训练分割模型 python 3_train_stage2.py \ --dataset $DATASET \ --dataroot datasets/$DATASETNAME \ --epochs 30 \ --Is_GM False \ --resume_stage1 checkpoints/stage1_checkpoint_trained_on_$DATASET.pth \ --resume init_weights/deeplab-resnet.pth.tar \ >> logs/stage2_log_on_$DATASET.txt

参数解析:

--epochs:训练轮数(30轮)。

--Is_GM:是否使用全局模型(此处为 False)。

--resume_stage1:加载 Stage1 的模型权重(用于初始化部分参数)。

--resume:DeepLab v3+ 的预训练权重路径(ImageNet 预训练)。

作用:使用伪掩码训练 DeepLab v3+ 分割模型,实现像素级预测。

输出:分割模型权重保存,日志写入 logs/stage2_log_on_$DATASET.txt。


潜在注意事项

路径依赖:需确保 datasets/、checkpoints/、logs/ 和 init_weights/ 目录存在且结构正确。

预训练权重:deeplab-resnet.pth.tar 需事先下载并放入 init_weights/。

GPU 支持:代码默认可能使用 GPU,如需 CPU 训练需查看 Python 代码内部是否支持。

日志监控:可通过 tail -f logs/stage1_log_on_$DATASET.txt 实时监控训练进度。

流程图 graph TD A[Stage1: 训练分类模型] --> B[生成伪掩码 PM] B --> C[Stage2: 训练分割模型]

标签:

代码的解读——自用由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“代码的解读——自用