# 快速启动 ## 1. 确认目录 ```bash cd /home/kekezack/workspace/X_SSL_Net ``` ## 2. 先跑最小调试实验 推荐先用 `BUSI` 短跑,把真实数据、`XNet2d` 前向、loss、验证和 checkpoint 链路跑通: ```bash DATASET=BUSI \ EXTRA_SET_ARGS="train.epochs=2 train.batch_size=2 train.val_batch_size=2 logging.use_swanlab=false" \ bash tools/run_optimized_supervised.sh ``` 这条命令会: 1. 根据数据集名称解析数据根目录 2. 对需要项目级 split 的数据集生成 `train/val` 3. 读取 `configs/segmentation/optimized/*.yaml` 4. 启动 `SupervisedSegmentationTrainer` 5. 构建并训练 `XNet2d` ## 3. 汇总结果 训练结束后运行: ```bash bash tools/summarize_results.sh ``` 会生成: 1. `results/experiment_summary.csv` 2. `results/experiment_summary.md` 查看 markdown 表: ```bash sed -n '1,40p' results/experiment_summary.md ``` 重点看: 1. `dataset` 2. `mode` 3. `epoch` 4. `best_metric` 5. `dice` 6. `iou` ## 4. 推荐实验顺序 当前项目更适合先验证 XNet 在 2D 超声分割上的稳定性。建议顺序: 1. `BUSI` 2. `DDTI` 3. `TN3K` 4. `TG3K` 5. `BUS_UC` 示例: ```bash DATASET=DDTI bash tools/run_optimized_supervised.sh DATASET=TN3K bash tools/run_optimized_supervised.sh DATASET=TG3K bash tools/run_optimized_supervised.sh ``` ## 5. 常用覆盖参数 短跑: ```bash EXTRA_SET_ARGS="train.epochs=2" ``` 减小 batch size: ```bash EXTRA_SET_ARGS="train.batch_size=2 train.val_batch_size=2" ``` 关闭 wavelet branch: ```bash EXTRA_SET_ARGS="model.use_wavelet_branch=false checkpoint.dir=outputs/experiments/supervised_ablation/BUSI_no_wavelet logging.experiment_name=xnet_busi_no_wavelet" ``` 关闭 decoder frequency refine: ```bash EXTRA_SET_ARGS="model.use_frequency_refine=false checkpoint.dir=outputs/experiments/supervised_ablation/BUSI_no_freq logging.experiment_name=xnet_busi_no_freq" ``` 强制 SS2D 使用 torch fallback: ```bash EXTRA_SET_ARGS="model.ssm_backend=torch checkpoint.dir=outputs/experiments/supervised_ablation/BUSI_ssm_torch logging.experiment_name=xnet_busi_ssm_torch" ``` ## 6. 当前主链边界 当前快速启动不涉及: 1. `lib/sam2` 2. `lib/SwinTransformer` 3. SwinV2 配置 4. 半监督 trainer 5. 边界辅助 loss 这些内容保留为外部资产或历史资料,不属于当前 active 训练路径。