Add Chinese README
Browse files
README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: unknown
|
| 3 |
+
tags:
|
| 4 |
+
- face-recognition
|
| 5 |
+
- cvlface
|
| 6 |
+
- adaface
|
| 7 |
+
- swin-transformer
|
| 8 |
+
- lora
|
| 9 |
+
- pytorch
|
| 10 |
+
pretty_name: Lab1 CVLFace Code
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
# Lab1 CVLFace Code
|
| 14 |
+
|
| 15 |
+
本仓库用于备份 Lab1 人脸识别实验中使用的 CVLFace 代码和训练脚本。
|
| 16 |
+
|
| 17 |
+
代码来自服务器实验目录:
|
| 18 |
+
|
| 19 |
+
```text
|
| 20 |
+
/root/Lab1/project/cvlface
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
上传时已经排除数据集、实验输出、缓存和大模型权重。模型权重请放在独立的 checkpoint 仓库中管理。
|
| 24 |
+
|
| 25 |
+
## 主要内容
|
| 26 |
+
|
| 27 |
+
```text
|
| 28 |
+
cvlface/
|
| 29 |
+
research/
|
| 30 |
+
recognition/
|
| 31 |
+
code/
|
| 32 |
+
run_v1/
|
| 33 |
+
scripts/
|
| 34 |
+
train_plan4_adaface_swin.py
|
| 35 |
+
prepare_kaggle_verification_protocol.py
|
| 36 |
+
generate_plan8_report.py
|
| 37 |
+
configs/
|
| 38 |
+
*.yaml
|
| 39 |
+
test_*.py
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
其中 `train_plan4_adaface_swin.py` 是当前主要训练脚本。
|
| 43 |
+
|
| 44 |
+
## 当前训练脚本支持的功能
|
| 45 |
+
|
| 46 |
+
- Swin-S 224 backbone + AdaFace 分类头训练。
|
| 47 |
+
- 全量微调 backbone。
|
| 48 |
+
- 冻结 backbone 后只训练分类头。
|
| 49 |
+
- LoRA 微调:
|
| 50 |
+
- `--use-lora`
|
| 51 |
+
- `--lora-rank`
|
| 52 |
+
- `--lora-alpha`
|
| 53 |
+
- `--lora-dropout`
|
| 54 |
+
- `--lora-target-modules`
|
| 55 |
+
- eval-only 验证模式:
|
| 56 |
+
- `--eval-only`
|
| 57 |
+
- `--eval-checkpoint`
|
| 58 |
+
- `--eval-pairs-csv`
|
| 59 |
+
- YAML config:
|
| 60 |
+
- `--config configs/xxx.yaml`
|
| 61 |
+
- 命令行参数会覆盖 config 中的默认值。
|
| 62 |
+
- epoch 级日志:
|
| 63 |
+
- `training_config.json`
|
| 64 |
+
- `epoch_metrics.csv`
|
| 65 |
+
- 每个 epoch 记录 loss。
|
| 66 |
+
- 可按固定 epoch 间隔记录验证集 acc。
|
| 67 |
+
|
| 68 |
+
## 相关数据仓库
|
| 69 |
+
|
| 70 |
+
本代码仓库不包含数据集。当前项目中用到的数据备份在以下仓库:
|
| 71 |
+
|
| 72 |
+
- WebFace224 完整训练集:`lhx05/WebFace224`
|
| 73 |
+
- 多协议 224 验证集:`lhx05/lab1-resized-face-datasets`
|
| 74 |
+
- FGNET AGE-30 验证协议:`lhx05/fgnet-age30-protocol`
|
| 75 |
+
- AgeDB 224 身份分类数据集:`lhx05/agedb-224-by-identity`
|
| 76 |
+
|
| 77 |
+
## 相关权重仓库
|
| 78 |
+
|
| 79 |
+
模型权重和训练 checkpoint 放在:
|
| 80 |
+
|
| 81 |
+
```text
|
| 82 |
+
lhx05/lab1-face-recognition-checkpoints
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
本代码仓库不上传 `.pt`、`.pth`、`.safetensors` 等大权重文件。
|
| 86 |
+
|
| 87 |
+
## 示例命令
|
| 88 |
+
|
| 89 |
+
全量微调示例:
|
| 90 |
+
|
| 91 |
+
```bash
|
| 92 |
+
cd /root/Lab1/project/cvlface/research/recognition/code/run_v1/scripts
|
| 93 |
+
source /root/Lab1/venv/bin/activate
|
| 94 |
+
|
| 95 |
+
python train_plan4_adaface_swin.py \
|
| 96 |
+
--train-root /root/Lab1/data/processed/agedb_harmonliu05_224_by_identity \
|
| 97 |
+
--output-dir /root/Lab1/experiments/agedb567_full_finetune_20epoch \
|
| 98 |
+
--ckpt /root/Lab1/project/cvlface/pretrained_models/model.safetensors \
|
| 99 |
+
--epochs 20 \
|
| 100 |
+
--batch-size 128 \
|
| 101 |
+
--eval-every-epochs 5 \
|
| 102 |
+
--eval-pairs-csv /root/Lab1/data/processed/fgnet_age30_protocol/facerec_val/fgnet_age30/pairs.csv
|
| 103 |
+
```
|
| 104 |
+
|
| 105 |
+
使用 YAML config 示例:
|
| 106 |
+
|
| 107 |
+
```bash
|
| 108 |
+
python train_plan4_adaface_swin.py \
|
| 109 |
+
--config configs/agedb567_lora_r4_fgnet_age30.yaml
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
## 注意事项
|
| 113 |
+
|
| 114 |
+
- 代码中的绝对路径来自服务器实验环境,换机器使用时需要按本地目录调整。
|
| 115 |
+
- 上传版本主要用于备份和复现实验,不保证是原始 CVLFace 官方仓库的完整发布版本。
|
| 116 |
+
- 如果只需要运行当前实验,优先查看 `research/recognition/code/run_v1/scripts/` 目录。
|