CLIPort:机器人操纵的端到端模仿学习框架
1. 项目介绍
CLIPort 是一个机器人操纵的端到端模仿学习框架,它能够通过有限的演示学习一种条件化的语言策略,适用于多种桌面任务。该框架结合了 CLIP 的广泛语义理解(即“什么”)和 TransporterNets 的空间精确度(即“哪里”),从而学习出可泛化的技能。
2. 项目快速启动
首先,你需要克隆项目仓库并设置虚拟环境:
git clone https://github.com/cliport/cliport.git
cd cliport
virtualenv -p $(which python3.8) --system-site-packages cliport_env
source cliport_env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
export CLIPORT_ROOT=$(pwd)
python setup.py develop
注意:你可能需要与你的 CUDA 和硬件兼容的 torch==1.7.1
和 torchvision==0.8.2
版本。
快速启动教程
- 下载预训练的多任务模型:
sh scripts/quickstart_download.sh
- 生成一个小的测试数据集:
python cliport/demos.py n=10 task=stack-block-pyramid-seq-seen-colors mode=test
- 在测试数据集上评估最佳验证检查点:
python cliport/eval.py model_task=multi-language-conditioned eval_task=stack-block-pyramid-seq-seen-colors agent=cliport mode=test n_demos=10 train_demos=1000 checkpoint_type=test_best disp=True
如果你在不支持图形显示的服务器上运行,请将 disp
参数设置为 False
。
3. 应用案例和最佳实践
生成数据集
要生成数据集,你可以使用 demos.py
脚本:
python cliport/demos.py n=1000 task=stack-block-pyramid-seq-seen-colors mode=train
如果要生成完整的数据集,请运行 generate_dataset.sh
脚本:
sh scripts/generate_dataset.sh data
注意:这个脚本没有并行化,并且可能需要很长时间(可能是几天)来完成。完整的数据集大约需要 1.6TB 的存储空间。
训练和评估
训练和评估分为以下几个步骤:
- 训练模型:
python cliport/train.py train.task=stack-block-pyramid-seq-seen-colors train.agent=cliport train.attn_stream_fusion_type=add train.trans_stream_fusion_type=conv train.lang_fusion_type=mult train.n_demos=1000 train.n_steps=201000 train.exp_folder=exps dataset.cache=False
- 验证模型:
python cliport/eval.py eval_task=stack-block-pyramid-seq-seen-colors agent=cliport mode=val n_demos=100 train_demos=1000 checkpoint_type=val_missing exp_folder=exps
- 测试模型:
python cliport/eval.py eval_task=stack-block-pyramid-seq-seen-colors agent=cliport mode=test n_demos=100 train_demos=1000 checkpoint_type=test_best exp_folder=exps
4. 典型生态项目
目前,CLIPort 的生态项目包括但不限于以下几种:
- 多任务训练与评估框架。
- 使用不同融合类型的模型训练。
- 生成和使用不同任务的数据集。
以上就是关于 CLIPort 的基本介绍、快速启动指南以及应用案例和最佳实践。希望对您的项目开发有所帮助。