生成你自己的数据 / 基准
在本章节中,我们将介绍如何使用 GenManip 来生成你自己的数据集或基准测试任务。
用户可以直接编辑 USD 场景并编写对应的 Config 配置文件,然后运行 GenManip 来生成数据。以下视频展示了完整的操作流程,建议在 YouTube 中以原始清晰度观看:
数据生成与基准生成
Section titled “数据生成与基准生成”与数据生成类似,基准生成的流程也大体相同。我们通常会先基于当前的 Layout(布局) 执行一次闭环验证,以确保我们的 Oracle 求解器能够完成任务。
- 如果验证成功,说明该任务是可解的;
- 如果你已经确认任务可以完成,可以将 Config 中的
mode设置为Benchmark,以跳过闭环验证,直接保存 Layout。
在编写好 Config 文件后,使用以下命令生成数据:
# 遍历 demonstration_configs 中的每个配置字典,生成 num_episode 条数据python demogen.py -cfg configs/tasks/xxx.yml
# 遍历 demonstration_configs 中的每个配置字典,渲染 num_episode 条数据python render.py -cfg configs/tasks/xxx.yml生成的数据将保存在:
saved/demonstrations/<task_name>/生成测试用例
Section titled “生成测试用例”对于测试用例(evaluation cases),你可以运行:
# 遍历 evaluation_configs 中的每个配置字典,生成 num_test 条测试用例python demogen.py -cfg configs/tasks/xxx.yml --eval
# 收集基准资产并打包成 GenManip 包python standalone_tools/collect_benchmark_assets.py --asset_path saved/tasks/<task_name> --dataset_id <task_package> --upload_to_huggingface生成的测试用例将保存在:
saved/tasks/GenManip-Package-{<task_name>}/并行运行支持
Section titled “并行运行支持”值得注意的是,GenManip 支持大规模并行运行:
- 无论是
demogen.py、render.py还是eval.py,都可以在多台服务器上同时运行多个实例。 - 这些程序通过文件系统的文件锁与
listdir同步机制来避免冲突、保证进度一致。
你可以在不同服务器上启动任意数量的进程,只需确保它们共享同一个 saved 文件夹即可。