chore: 数据迁到 data/raw/ 后同步所有路径引用
原始数据从 data/<数据集> 移到了 data/raw/<数据集>。
- 聚类配置的 dataset.root:film / pearlescent 均改为 data/raw/ 下
- 检测配置的 img_dir 与 label_dir 注释同步
- README、data/README、算法文档、流程图(含重新渲染的 PNG)与各脚本
docstring 里的路径示例一并更新
- data/README 补充目录约定:原始数据只读放 data/raw/,
export_clusters.py 的派生数据集放在 data/ 下与 raw/ 平级
- 顺手把 unlabeled 数据集加进 datasets/__init__.py:此前它没在包初始化时注册,
build_dataset({"name": "unlabeled"}) 只有在别处先 import 过该模块时才可用
迁移后重跑全量聚类,结果与迁移前逐项一致(轮廓 0.3255、稳定性 0.9641、
簇大小 [4507, 3795, 4849, 1428])。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5f31ed0a92
commit
5d395b7c25
@@ -56,7 +56,7 @@ uv run python train.py --config configs/train/baseline.yaml --device cpu
|
||||
每行 `class_id cx cy w h`(相对宽高归一化到 [0,1]),空文件或缺失 `.txt` 即无缺陷样本。
|
||||
|
||||
```
|
||||
data/film/
|
||||
data/raw/film/
|
||||
├── images/{train,val}/0001.png
|
||||
├── labels/{train,val}/0001.txt
|
||||
└── data.yaml # path / train / val / nc / names
|
||||
@@ -65,15 +65,15 @@ data/film/
|
||||
```bash
|
||||
# 1. labelme / VOC -> YOLO txt(顺带生成 data.yaml)
|
||||
uv run python scripts/convert_annotations.py --format labelme \
|
||||
--input data/film/labelme --images data/film/images \
|
||||
--output data/film/labels --data-yaml data/film/data.yaml
|
||||
--input data/raw/film/labelme --images data/raw/film/images \
|
||||
--output data/raw/film/labels --data-yaml data/raw/film/data.yaml
|
||||
|
||||
# 2. 切分 train / val(默认建软链,不复制数据)
|
||||
uv run python scripts/split_dataset.py --images data/film/images \
|
||||
--labels data/film/labels --val-ratio 0.2 --data-yaml data/film/data.yaml
|
||||
uv run python scripts/split_dataset.py --images data/raw/film/images \
|
||||
--labels data/raw/film/labels --val-ratio 0.2 --data-yaml data/raw/film/data.yaml
|
||||
```
|
||||
|
||||
配置里的 `classes` 既可以直接写类别列表,也可以写成 `data/film/data.yaml`,由框架读 `names`。
|
||||
配置里的 `classes` 既可以直接写类别列表,也可以写成 `data/raw/film/data.yaml`,由框架读 `names`。
|
||||
读取时也接受 YOLO 分割格式的多边形行(取外接矩形)。细节见 [data/README.md](data/README.md)
|
||||
与 [datasets/yolo.py](datasets/yolo.py)。
|
||||
|
||||
@@ -187,7 +187,7 @@ uv run python scripts/profile_inference.py --config configs/train/baseline.yaml
|
||||
|
||||
### 调用 ImageNet 预训练模型
|
||||
|
||||
`data/film` 里大量样本还没人工分完。这条流水线把目录下**所有图片拉平**(不看任何
|
||||
`data/raw/film` 里大量样本还没人工分完。这条流水线把目录下**所有图片拉平**(不看任何
|
||||
目录名),做无监督聚类,产出可人工核对的分组:
|
||||
|
||||
```bash
|
||||
@@ -443,7 +443,7 @@ resnet50 每 epoch 的耗时与 batch 基本无关(算力受限),所以显
|
||||
只是 NT-Xent 的负样本变少。
|
||||
|
||||
注意默认的 `method: pretrained` 用的**也是 resnet18**(ImageNet 权重,不训练,约 51 秒出结果);
|
||||
上面这个配置是在 `data/film` 上自监督训练它。两者实测对比(14,579 张,k=4):
|
||||
上面这个配置是在 `data/raw/film` 上自监督训练它。两者实测对比(14,579 张,k=4):
|
||||
|
||||
| 方案 | 轮廓 | 稳定性 | 成本 |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
Reference in New Issue
Block a user