本轮清理目标是让代码、配置和 tmp/docs 与当前项目真实主线一致。
明确约束:
lib/sam2lib/SwinTransformerXNet2d + VMamba-style SS2D 的当前项目说明当前 active training path 是:
tools/train.py
-> SupervisedSegmentationTrainer
-> XNet2d
-> seg_logits
-> segmentation loss
当前主模型是:
lib/modules/xnet_2d.py::XNet2d
当前模型定位:
2D ultrasound supervised segmentation with X-shaped CNN-Wavelet-VMamba hybrid network
以下目录按用户要求保留:
lib/sam2lib/SwinTransformer它们当前不被 SupervisedSegmentationTrainer 调用,也不出现在当前 segmentation config 中。
当前保留的 segmentation 配置只有:
configs/segmentation/train_sup_us_template.yamlconfigs/segmentation/us_exp_sup_busi.yamlconfigs/segmentation/us_exp_sup_busi_ablation.yaml这三份配置的 model 段已统一切到 XNet 字段,例如:
encoder_channels: [32, 64, 128, 192]
encoder_depths: [2, 2, 2, 2]
decoder_channels: [128, 64, 32]
use_wavelet_branch: true
use_frequency_refine: true
ssm_backend: auto
旧的 SwinV2 segmentation 配置和 configs/swinv2/*.yaml 已从 active config 中移除。
当前监督 trainer 只构建 XNet2d,并且只训练 seg_logits。
本轮移除或收缩了:
SupervisedSegmentationTrainer 中未训练的 aux_boundary_head 构造入口XNet2d 中的辅助 boundary headlib/tools/boundary.pylib/tools/loss.py 中未被当前 trainer 使用的边界损失类当前 XNet2d.forward() 返回:
{
"logits": logits,
"seg_logits": logits,
"encoder_features": encoder_features,
"decoder_features": decoder_features,
"guides": guides,
}
本轮更新的 active docs:
tmp/docs/README.mdtmp/docs/training/当前项目详解与纯文本架构流程图.mdtmp/docs/operations/Start.mdtmp/docs/experiments/一键实验脚本使用说明.mdtmp/docs/experiments/实验结果汇总脚本说明.mdtmp/docs/method/XNet_method.mdtmp/docs/method/lib_mamba_source_note.md其中训练详解文档已从旧的 SwinV2 baseline 描述改为当前 XNet 主链。
已完成:
当前只保留一处 vmambanew.py 字样,位于 lib_mamba_source_note.md,用途是说明当前不是基于 MobileMamba 改写版。
优先跑最小训练闭环:
DATASET=BUSI EXTRA_SET_ARGS="train.epochs=2 train.batch_size=2 train.val_batch_size=2 logging.use_swanlab=false" bash tools/run_us_experiments.sh
如果训练链路稳定,再做:
DDTITN3KTG3K