mirror of
https://github.com/unanmed/ginka-generator.git
synced 2026-05-21 10:21:15 +08:00
docs: 修改 README
This commit is contained in:
parent
447c28ff5e
commit
87bada8553
51
README.md
51
README.md
@ -1,8 +1,8 @@
|
|||||||
# GINKA 地图生成器
|
# GINKA 地图生成器
|
||||||
|
|
||||||
GINKA Model 是一个用于生成网格状魔塔地图的模型,采用 UNet 网络,允许输入自然语言,指定地图大小。
|
GINKA Model 是一个用于生成网格状魔塔地图的模型,采用 UNet 网络。
|
||||||
|
|
||||||
GINKA Model 内部集成了 Minamo Model 用于判别两个地图的相似性,用于计算损失值,指导 GINKA Model 训练,避免了传统拓扑图相似度计算的不可微性质,提高模型训练性能。
|
GINKA Model 内部集成了 Minamo Model 用做判别器,与 Ginka Model 对抗训练,训练使用 Wasserstein GAN 训练方式。
|
||||||
|
|
||||||
## 贡献 GINKA Model 数据集
|
## 贡献 GINKA Model 数据集
|
||||||
|
|
||||||
@ -27,56 +27,11 @@ GINKA Model 内部集成了 Minamo Model 用于判别两个地图的相似性,
|
|||||||
"MT11": [3, 3, 7, 7]
|
"MT11": [3, 3, 7, 7]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"data": {
|
"data": {}
|
||||||
"MT1": ["MT1 楼层的第一个描述", "MT1 楼层的第二个描述"]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
其中,`clip` 属性表示你的每张地图的那一部分会被当成数据集,例如填写 `[0, 0, 13, 13]` 就会让坐标为 `(0, 0)`,长宽为 `(13, 13)` 的矩形内容作为数据集。`special` 属性允许你针对单独的某几层设置不同的裁剪方式,例如设置 `MT11` 为 `[3, 3, 7, 7]` 等,如果没有设置默认使用 `defaults` 的裁剪方式。最好保证每个楼层大小一致,不然我还要手动分类。
|
其中,`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. 在全塔属性中的楼层列表中去除不在数据集内的楼层
|
11. 在全塔属性中的楼层列表中去除不在数据集内的楼层
|
||||||
12. 将 `project` 文件夹打包发给我即可
|
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 验证集
|
|
||||||
```
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user