act小试牛刀
https://github.com/tonyzhaozh/act?tab=readme-ov-file
运行
python3 record_sim_episodes.py --task_name sim_transfer_cube_scripted --dataset_dir data_save --num_episodes 50
报错:
创建软连接解决,请见:
python3 record_sim_episodes.py --task_name sim_transfer_cube_scripted --dataset_dir data_save --num_episodes 50
export LD_LIBRARY_PATH=/home/yan/anaconda3/envs/aloha/lib/python3.8/site-packages/nvidia/cusparse/lib:$LD_LIBRARY_PATH
解决libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12-CSDN博客
生成50组数据
h5dump -H episode_0.hdf5 查看数据格式,发现都是400,只有一个相机
训练,在这更改参数,数据集路径,还有比如相机有哪个
python3 imitate_episodes.py --task_name sim_transfer_cube_scripted --ckpt_dir ckpt --policy_class ACT --kl_weight 10 --chunk_size 100 --hidden_dim 512 --batch_size 8 --dim_feedforward 3200 --num_epochs 2000 --lr 1e-5 --seed 0
大概二十分钟就跑完了,运行:
python3 imitate_episodes.py --task_name sim_transfer_cube_scripted --ckpt_dir ckpt --policy_class ACT --kl_weight 10 --chunk_size 100 --hidden_dim 512 --batch_size 8 --dim_feedforward 3200 --num_epochs 2000 --lr 1e-5 --seed 0 --eval
看模型效果
尝试10次发现有失败的可能,成功的立方体也有被旋转。可以尝试增加相机。
换成cnnmlp的失败率更高
数据集的封装在utils.py,在里面写自己数据集
发现这里start_ts是随机的,每条数据的起始时间是随机的
最后数据集返回的状态
qpos_data shape: torch.Size([14])
action_data shape: torch.Size([400, 14])
模型在detr/models/detr_vae.py
另一份开源的简易版代码,感觉用起来会更方便
https://github.com/HenryWJL/act_pytorch