遇见数据集

GBA_Project2

收藏
魔搭社区2026-10-31 更新2026-11-01 收录
官方服务:

资源简介:

## 1. 迁移包内容 建议分两个压缩包传输。 ### 数据包 ```text gba_datasets_v2.tar.zst ``` 包含: ```text datasets/ ├── images_224/ 12,705 ├── masks_224/ 12,705 ├── images_256/ 12,705 ├── masks_256/ 12,705 ├── ae/ 12,705 ├── poi/graphs_*/ 12,705 ├── poi/nodes_*/ 12,705 ├── dglu_inputs/ 9,999 ├── labels/ ├── geometry/ ├── quality/ ├── manifests/ ├── splits/ ├── stats/ ├── README.md ├── DATA_DICTIONARY.md └── DATASET_CARD.md ``` 约 4.5 GB,内部没有软链接。 ### 代码包 ```text gba_code_v2.tar.zst ``` 包含: ```text src/ scripts/ configs/ experiments/ vendor/ cluster.env cluster.local.env.example third_party/mapformer_patched/ third_party/VMamba/ third_party/pytorch-change-models/ third_party/baselines/ RoMA_patched/ DGLU/code/ ReFound_patched/code/ bert-based-chinese/ # 只放 config/tokenizer README_PORTABLE.md AAA_待补实验.md ``` **不打包:** ```text weights/ runs/ datasets/ venv_refound/ *.pth *.pt *.pdparams *.safetensors *.rar delivery_mask2former_... # 与本项目无关 ``` 官方可下载权重不打包;无法稳定下载的权重已打入 `gba_weights_v2.tar.zst`。 --- ## 2. 路径已经做的调整 | 项目 | 处理 | |---|---| | 训练用 observations | 使用 `datasets/manifests/observations_rel.csv`,相对项目根目录 | | 旧绝对路径 `observations_abs.csv` | 迁移包中不推荐使用,可删除 | | `annual_*.csv` | 图像/AE/POI 保持相对 `datasets/`;`GBA_DATA_ROOT` 指向 `datasets` | | `source_image/source_mask` | 训练不读取;可清空或删除 | | `scripts/evaluate_unified.py` | 项目根目录动态定位 | | `scripts/evaluate_task1_checkpoints.py` | 项目根目录动态定位 | | `scripts/dry_run.py` | 项目根目录动态定位 | | `scripts/train_baseline_dglu.py` | 项目根目录动态定位 | | Slurm 脚本 | 统一写死目标 `/share/home/jiah9/GBA_Project2` | 训练代码中不应再出现: ```text /nfs-data3/drm/zhouguanjun/GBA_Project2 ``` --- ## 3. 传输 从当前服务器: ```bash cd /nfs-data3/drm/zhouguanjun/GBA_Project2 # 数据 tar -I 'zstd -3 -T0' --exclude='datasets/manifests/observations_abs.csv' \ -cf gba_datasets_v2.tar.zst datasets # 代码(排除权重/运行/数据) tar -I 'zstd -3 -T0' \ --exclude='datasets' \ --exclude='weights' \ --exclude='runs' \ --exclude='venv_refound' \ --exclude='*.pth' --exclude='*.pth.tar' --exclude='*.pt' --exclude='*.pdparams' \ --exclude='*.safetensors' --exclude='*.rar' \ --exclude='third_party/baselines/DGLU/result' \ --exclude='third_party/baselines/ReFound_pretrained' \ --exclude='delivery_mask2former_baseline6_20260614' \ -cf gba_code_v2.tar.zst \ src scripts configs experiments vendor third_party \ cluster.env cluster.local.env.example \ README_PORTABLE.md AAA_待补实验.md ``` 传输: ```bash scp gba_datasets_v2.tar.zst gba_code_v2.tar.zst gba_weights_v2.tar.zst \ jiah9@<目标服务器>:/share/home/jiah9/ ``` 目标机: ```bash mkdir -p /share/home/jiah9/GBA_Project2 cd /share/home/jiah9/GBA_Project2 tar -I zstd -xf /share/home/jiah9/gba_code_v2.tar.zst tar -I zstd -xf /share/home/jiah9/gba_datasets_v2.tar.zst tar -I zstd -xf /share/home/jiah9/gba_weights_v2.tar.zst mkdir -p results runs/first_batch/task1 runs/first_batch/task4 slurm_logs ``` --- ## 4. 权重 官方可下载权重不打包;无法稳定下载的权重在: ```text gba_weights_v2.tar.zst ``` 包含: ```text weights/backbones/vssm_tiny_0230_ckpt_epoch_262.pth third_party/baselines/weights/roma_mamba_base.pth third_party/baselines/DGLU/result/best_model/model_best.pth.tar third_party/baselines/ReFound_pretrained/checkpoint-299.pdparams third_party/baselines/bert-based-chinese/ ``` 解压到项目根目录即可。 需要放到: ```text weights/backbones/ weights/imagenet/ third_party/baselines/weights/ ``` ### 4.1 可直接下载 ```bash cd /share/home/jiah9/GBA_Project2 mkdir -p weights/imagenet weights/backbones wget -O weights/imagenet/wide_resnet50_2-9ba9bcbe.pth \ https://download.pytorch.org/models/wide_resnet50_2-9ba9bcbe.pth wget -O weights/backbones/resnet50-11ad3fa6.pth \ https://download.pytorch.org/models/resnet50-11ad3fa6.pth wget -O weights/backbones/swin_t-704ceda3.pth \ https://download.pytorch.org/models/swin_t-704ceda3.pth wget -O weights/backbones/mit_b2.pth \ https://huggingface.co/Kyliroco/mit_b2/resolve/main/mit_b2.pth ``` ### 4.2 不能稳定公开下载,需从原服务器复制 ```bash # VMamba rsync -avP \ /nfs-data3/drm/zhouguanjun/GBA_Proiect/weights/backbones/vssm_tiny_0230_ckpt_epoch_262.pth \ user@target:/share/home/jiah9/GBA_Project2/weights/backbones/ # RoMA rsync -avP \ /nfs-data3/drm/zhouguanjun/GBA_Proiect/third_party/baselines/weights/roma_mamba_base.pth \ user@target:/share/home/jiah9/GBA_Project2/third_party/baselines/weights/ # DGLU rsync -avP \ /nfs-data3/drm/zhouguanjun/GBA_Proiect/third_party/baselines/DGLU/result/best_model/model_best.pth.tar \ user@target:/share/home/jiah9/GBA_Project2/third_party/baselines/DGLU/result/best_model/ # ReFound rsync -avP \ /nfs-data3/drm/zhouguanjun/GBA_Proiect/third_party/baselines/ReFound_pretrained/checkpoint-299.pdparams \ user@target:/share/home/jiah9/GBA_Project2/third_party/baselines/ReFound_pretrained/ rsync -avP \ /nfs-data3/drm/zhouguanjun/GBA_Proiect/third_party/baselines/bert-based-chinese/ \ user@target:/share/home/jiah9/GBA_Project2/third_party/baselines/bert-based-chinese/ ``` 只跑任务四时,最少只需: ```text weights/backbones/mit_b2.pth ``` --- ## 5. 环境 目标机 `(base)`,建议: ```bash conda create -n gba python=3.8 -y conda activate gba pip install torch==2.1.0 torchvision==0.16.0 \ --index-url https://download.pytorch.org/whl/cu118 pip install mmcv==2.1.0 mmengine torch-geometric scikit-learn pandas # 任务一 A3/B2 需要 pip install timm transformers mamba-ssm causal-conv1d ``` 编辑: ```bash vim /share/home/jiah9/GBA_Project2/cluster.env ``` 内容示例: ```bash export GBA_ROOT=/share/home/jiah9/GBA_Project2 export GBA_PYTHON=/share/home/jiah9/miniconda3/envs/gba/bin/python export GBA_MAMBA_PYTHON=/share/home/jiah9/miniconda3/envs/gba/bin/python export GBA_DATA_ROOT=$GBA_ROOT/datasets export GBA_RESULTS_ROOT=$GBA_ROOT/results ``` 本机临时覆盖可以复制: ```bash cp cluster.local.env.example cluster.local.env ``` 如果 `mamba-ssm` 编译失败,可将 A3/B2 放到单独环境,并把 `GBA_MAMBA_PYTHON` 指向该环境。 --- ## 5.1 Slurm 资源 每个 `experiments/<task>/<group>/<id>/run.slurm` 使用: ```bash #SBATCH --partition=gpu_wu #SBATCH --nodes=1 #SBATCH --gres=gpu:1 #SBATCH --cpus-per-task=16 #SBATCH --time=72:00:00 #SBATCH --mem=200G #SBATCH --output=/share/home/jiah9/GBA_Project2/slurm_logs/%x_%j.log ``` 没有 `--account`,单节点单卡。 训练前会运行: ```bash python scripts/preflight_gba.py --task task4 --id B2G --root "$ROOT" ``` 只预检: ```bash PREFLIGHT_ONLY=1 sbatch experiments/task4/B/B2G/run.slurm ``` 跳过任务一评估: ```bash SKIP_EVAL=1 sbatch experiments/task1/M/M7/run.slurm ``` ## 6. Batch size:已改回 16 当前脚本使用: ```text GBA_BATCH_SIZE=16 ``` | 任务 | 旧 batch | 新 batch | 说明 | |---|---:|---:|---| | 任务一 | 16 | 16 | **与旧配置一致** | | 任务四 | 8 | 16 | 仍是旧配置的 2 倍 | | 任务一/四 | — | 16 | 显存比 32 安全 | batch=32 已取消。16 对 A800 80GB 更稳,尤其是 A3 VMamba、B2 RoMA。 但任务四旧配置是 batch=8,现在改成 16 仍会改变有效学习率。如果担心指标异常,建议: 1. 先保持 batch=16、原 lr 跑一个短程 pilot; 2. 如果任务四收敛明显变差,把任务四脚本单独改成 `GBA_BATCH_SIZE=8`; 3. 严格要求复现旧指标时,任务一用 16、任务四用 8。 任务一 batch=16 与旧配置一致,不需要再改 lr。 全局覆盖: ```bash export GBA_BATCH_SIZE=16 ``` 如果只想让任务四用 8,可以在提交任务四前临时设置: ```bash export GBA_BATCH_SIZE=8 ``` 或者直接把任务四 `run.slurm` 里的 `--batch-size "${GBA_BATCH_SIZE:-16}"` 改为 `--batch-size 8`。 ## 7. 实验目录 ```text experiments/ ├── task1/ │ ├── M/ M1-M7 │ ├── F/ F1-F4 │ ├── A/ A0-A3 │ └── B/ B1-B4 └── task4/ ├── A/ A1-A6 + A4G/A5G ├── B/ B1G-B7G ├── C/ placeholder ├── D/ D6b └── P/ placeholder ``` 每个实验目录: ```text config.json run.slurm ``` 无需复训的实验,`run.slurm` 里的命令已注释,并写明: ```text # SKIP: no GE; reuse previous result ``` `submit.py` 默认不会提交这些实验。 --- ## 8. 提交 ```bash cd /share/home/jiah9/GBA_Project2 # 任务四全部 python experiments/submit.py --task task4 --submit # 任务一 M/F 组 python experiments/submit.py --task task1 --groups M F --submit # 任务一 + 任务四指定组 python experiments/submit.py --task task1 task4 --groups M B D --submit # 指定多个 ID,混合任务 python experiments/submit.py --task task1 task4 --ids M7 B2G D6b --submit # 只打印,不提交 python experiments/submit.py --task task4 ``` 每个小任务都有独立的 `run.slurm`,可以单独试: ```bash # 预检,不训练 PREFLIGHT_ONLY=1 sbatch --export=ALL experiments/task4/B/B2G/run.slurm # 单独训练一个任务四模型 sbatch experiments/task4/B/B2G/run.slurm # 单独训练一个任务一模型 sbatch experiments/task1/M/M7/run.slurm ``` 全部 97 个脚本索引: ```text experiments/INDEX.md ``` --- ## 8.1 预检 每个 `run.slurm` 在训练前会运行: ```bash python scripts/preflight_gba.py --task task4 --id B2G --root "$ROOT" ``` 只做预检、不训练: ```bash PREFLIGHT_ONLY=1 sbatch experiments/task4/B/B2G/run.slurm ``` 预检失败会以非零退出码结束,不会半启动训练。 ## 9. 评估输出 所有结果统一写到: ```text results/ ├── task1/<group>/<id>/test/ ├── task1/<group>/<id>/huizhou/ ├── task4/<group>/<id>/test/ ├── task4/<group>/<id>/huizhou/ ├── index.csv └── summary.csv ``` - 任务四:训练结束后自动评估 **test + Huizhou** 的所有 checkpoint; - 任务一:训练脚本调用 `evaluate_task1_checkpoints.py` 两次,分别 test 和 Huizhou; - 汇总: ```bash python scripts/collect_results.py ``` 生成: ```text results/index.csv results/summary.csv ``` --- ## 10. 迁移后检查 ```bash cd /share/home/jiah9/GBA_Project2 python scripts/validate_dataset.py --sample 100 grep -R "/nfs-data3/drm/zhouguanjun/GBA_Project2" src scripts configs experiments third_party/mapformer_patched || true find datasets weights third_party -type l python experiments/submit.py --task task4 ``` 最后跑一个单 batch 验证,再批量提交。 --- ## 11. 上传 ModelScope 目标仓库: ```text https://www.modelscope.cn/datasets/Zeluar/GBA_Project2 ``` 如果遇到: ```text error: [E1022] Failed to create SDK directories: [Errno 13] Permission denied: '/nfs-data0/home' ``` 这是 `HOME`/缓存目录不可写,不是 token 问题。上传脚本已经自动设置: ```bash HOME=$ROOT/.upload_home MODELSCOPE_CACHE=$ROOT/.modelscope_cache HF_HOME=$ROOT/.hf_home ``` 也可以手动: ```bash export HOME=/nfs-data3/drm/zhouguanjun/GBA_Project2/.upload_home export MODELSCOPE_CACHE=/nfs-data3/drm/zhouguanjun/GBA_Project2/.modelscope_cache export HF_HOME=/nfs-data3/drm/zhouguanjun/GBA_Project2/.hf_home ``` 推荐使用已经配置好的 ModelScope CLI: ```bash cd /nfs-data3/drm/zhouguanjun/GBA_Project2 export MODELSCOPE_API_TOKEN=<你的 ModelScope Access Token> bash scripts/upload_modelscope.sh ``` 脚本会: - 检查三个包; - 用硬链接建立 `.upload_staging/`,不额外占 7.6 GB; - 登录 ModelScope; - 上传 `Zeluar/GBA_Project2`。 Token 只在当前 shell 中使用,不写入仓库。 如果 CLI 不可用,再使用下面的 Git LFS 方式。 需要上传三个包: ```text gba_datasets_v2.tar.zst 3.9G gba_code_v2.tar.zst 988M gba_weights_v2.tar.zst 2.7G ``` ### 11.1 安装 Git LFS ```bash conda install -c conda-forge git-lfs -y git lfs install ``` ### 11.2 登录/克隆 在 ModelScope 个人设置里生成 Access Token,然后: ```bash git clone https://www.modelscope.cn/datasets/Zeluar/GBA_Project2.git cd GBA_Project2 ``` 如果提示登录,用户名填 ModelScope 用户名,密码填 Access Token。 ### 11.3 跟踪大文件 ```bash git lfs track "*.zst" git add .gitattributes ``` ### 11.4 复制并提交 ```bash cp /nfs-data3/drm/zhouguanjun/GBA_Project2/gba_datasets_v2.tar.zst . cp /nfs-data3/drm/zhouguanjun/GBA_Project2/gba_code_v2.tar.zst . cp /nfs-data3/drm/zhouguanjun/GBA_Project2/gba_weights_v2.tar.zst . cp /nfs-data3/drm/zhouguanjun/GBA_Project2/README_PORTABLE.md README.md git add gba_datasets_v2.tar.zst gba_code_v2.tar.zst gba_weights_v2.tar.zst README.md git commit -m "Add GBA_Project2 data, code and non-public weights" git push ``` 如果仓库已有内容,先: ```bash git pull ``` 再复制、提交、推送。 ### 11.5 检查 上传后在 ModelScope 页面确认三个 `.zst` 都是 LFS 文件,并检查文件大小: ```text gba_datasets_v2.tar.zst ~3.9 GB gba_code_v2.tar.zst ~988 MB gba_weights_v2.tar.zst ~2.7 GB ```

提供机构:
maas
创建时间:
2026-10-23
二维码
社区交流群
二维码
科研交流群
商业服务