docs: 修改 README

This commit is contained in:
unanmed 2025-04-14 14:17:32 +08:00
parent 447c28ff5e
commit 87bada8553

View File

@ -1,8 +1,8 @@
# GINKA 地图生成器
GINKA Model 是一个用于生成网格状魔塔地图的模型,采用 UNet 网络,允许输入自然语言,指定地图大小
GINKA Model 是一个用于生成网格状魔塔地图的模型,采用 UNet 网络。
GINKA Model 内部集成了 Minamo Model 用于判别两个地图的相似性,用于计算损失值,指导 GINKA Model 训练,避免了传统拓扑图相似度计算的不可微性质,提高模型训练性能
GINKA Model 内部集成了 Minamo Model 用做判别器,与 Ginka Model 对抗训练,训练使用 Wasserstein GAN 训练方式
## 贡献 GINKA Model 数据集
@ -27,56 +27,11 @@ GINKA Model 内部集成了 Minamo Model 用于判别两个地图的相似性,
"MT11": [3, 3, 7, 7]
}
},
"data": {
"MT1": ["MT1 楼层的第一个描述", "MT1 楼层的第二个描述"]
}
"data": {}
}
```
其中,`clip` 属性表示你的每张地图的那一部分会被当成数据集,例如填写 `[0, 0, 13, 13]` 就会让坐标为 `(0, 0)`,长宽为 `(13, 13)` 的矩形内容作为数据集。`special` 属性允许你针对单独的某几层设置不同的裁剪方式,例如设置 `MT11``[3, 3, 7, 7]` 等,如果没有设置默认使用 `defaults` 的裁剪方式。最好保证每个楼层大小一致,不然我还要手动分类。
`data` 是你的每一层的楼层描述,要求每一层都要有描述,每层描述可以有多个,要求可以准确或粗略描述楼层的一部分特征(不需要是全部,不然的话文字量会很大),不超过 64 个 token每个中文字约 0.6 token每个英文字母约 0.3 token可以详细可以简略推荐每层有三个描述以上而且描述不要有过多的语义重复。
11. 在全塔属性中的楼层列表中去除不在数据集内的楼层
12. 将 `project` 文件夹打包发给我即可
## 贡献 Minamo Model 数据集
首先需要对你的塔的地图进行处理,参考 [GINKA Model 数据处理方式](#贡献-ginka-model-数据集)的 1-9 和 11 步,同时最好每张地图至少有几个空格(没有也没有影响,只不过会导致这个地图参与训练的次数降低)
与 GINKA Model 类似,在 `project` 文件夹中添加 `minamo-config.json` 文件,打开后将如下模板粘贴进去:
```json
{
"clip": {
"defaults": [0, 0, 13, 13],
"special": {
"MT11": [3, 3, 7, 7]
}
}
}
```
其中 `clip` 属性与 GINKA Model 的定义相同,参考上一小节即可。
将以上内容全部设置完毕后,将 `project` 文件夹打包发送给我,添加 `ginka-config.json` 时也可以作为 GINKA Model 训练集。
## 训练
如果你想自行训练模型,首先需要安装 `reqiurements.txt` 中所需的库,然后按照以下顺序操作:
1. 准备 Minamo Model 数据集,放置在根目录下,命名为 `minamo-dataset.json`
2. 执行 `python -m minamo.train`,等待训练完毕
3. 准备 GINKA Model 数据集,放置在根目录下,命名为 `ginka-dataset.json`
4. 执行 `python -m ginka.train`,等待训练完毕
5. 目录 `result/ginka.pth` 即为训练完毕的 GINKA 模型
6. (可选)准备 Minamo Model / GINKA Model 验证集,放置在根目录下,命名为 `minamo-eval.json` / `ginka-eval.json`,训练时每 10 个 epoch 会进行一次验证推理,建议使用与训练集不同的塔数据作为验证集。
准备训练集和验证集时,可以使用命令行脚本自动处理。首先进入 `data` 文件夹,然后运行 `pnpm i` 安装所有依赖,然后执行下面的脚本:
```bash
pnpm ginka "../ginka-dataset.json" "MyTower/project" # 通过 ginka-config.json 生成 GINKA 训练集
pnpm ginka "../ginka-eval.json" "MyTower/project" # 通过 ginka-config.json 生成 GINKA 验证集
pnpm minamo "../minamo-dataset.json" "MyTower/project" # 通过 minamo-config.json 生成 Minamo 训练集
pnpm minamo "../minamo-eval.json" "MyTower/project" # 通过 minamo-config.json 生成 Minamo 验证集
```