--- license: unknown tags: - face-recognition - cvlface - adaface - swin-transformer - lora - pytorch pretty_name: Lab1 CVLFace Code --- # Lab1 CVLFace Code 本仓库用于备份 Lab1 人脸识别实验中使用的 CVLFace 代码和训练脚本。 代码来自服务器实验目录: ```text /root/Lab1/project/cvlface ``` 上传时已经排除数据集、实验输出、缓存和大模型权重。模型权重请放在独立的 checkpoint 仓库中管理。 ## 主要内容 ```text cvlface/ research/ recognition/ code/ run_v1/ scripts/ train_plan4_adaface_swin.py prepare_kaggle_verification_protocol.py generate_plan8_report.py configs/ *.yaml test_*.py ``` 其中 `train_plan4_adaface_swin.py` 是当前主要训练脚本。 ## 当前训练脚本支持的功能 - Swin-S 224 backbone + AdaFace 分类头训练。 - 全量微调 backbone。 - 冻结 backbone 后只训练分类头。 - LoRA 微调: - `--use-lora` - `--lora-rank` - `--lora-alpha` - `--lora-dropout` - `--lora-target-modules` - eval-only 验证模式: - `--eval-only` - `--eval-checkpoint` - `--eval-pairs-csv` - YAML config: - `--config configs/xxx.yaml` - 命令行参数会覆盖 config 中的默认值。 - epoch 级日志: - `training_config.json` - `epoch_metrics.csv` - 每个 epoch 记录 loss。 - 可按固定 epoch 间隔记录验证集 acc。 ## 相关数据仓库 本代码仓库不包含数据集。当前项目中用到的数据备份在以下仓库: - WebFace224 完整训练集:`lhx05/WebFace224` - 多协议 224 验证集:`lhx05/lab1-resized-face-datasets` - FGNET AGE-30 验证协议:`lhx05/fgnet-age30-protocol` - AgeDB 224 身份分类数据集:`lhx05/agedb-224-by-identity` ## 相关权重仓库 模型权重和训练 checkpoint 放在: ```text lhx05/lab1-face-recognition-checkpoints ``` 本代码仓库不上传 `.pt`、`.pth`、`.safetensors` 等大权重文件。 ## 示例命令 全量微调示例: ```bash cd /root/Lab1/project/cvlface/research/recognition/code/run_v1/scripts source /root/Lab1/venv/bin/activate python train_plan4_adaface_swin.py \ --train-root /root/Lab1/data/processed/agedb_harmonliu05_224_by_identity \ --output-dir /root/Lab1/experiments/agedb567_full_finetune_20epoch \ --ckpt /root/Lab1/project/cvlface/pretrained_models/model.safetensors \ --epochs 20 \ --batch-size 128 \ --eval-every-epochs 5 \ --eval-pairs-csv /root/Lab1/data/processed/fgnet_age30_protocol/facerec_val/fgnet_age30/pairs.csv ``` 使用 YAML config 示例: ```bash python train_plan4_adaface_swin.py \ --config configs/agedb567_lora_r4_fgnet_age30.yaml ``` ## 注意事项 - 代码中的绝对路径来自服务器实验环境,换机器使用时需要按本地目录调整。 - 上传版本主要用于备份和复现实验,不保证是原始 CVLFace 官方仓库的完整发布版本。 - 如果只需要运行当前实验,优先查看 `research/recognition/code/run_v1/scripts/` 目录。