欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > robomimic应用教程(一)——模型训练

robomimic应用教程(一)——模型训练

2024/10/25 8:27:58 来源:https://blog.csdn.net/qq_28912651/article/details/142353778  浏览:    关键词:robomimic应用教程(一)——模型训练

Robomimic使用集中式配置系统来指定所有级别的(超)参数

本文介绍了配置(推荐)和启动训练运行的两种方法

目录

一、使用config json(推荐)

二、在代码中构造一个配置对象

三、查看运行结果

1. 实验结果会存在一个固定文件夹中,可以设置存储位置:

2. 可以设置展示方式:

3. 可以设置存储方式:

4. 可以设置评估执行过程及视频存储:

5. 可以设置Tensorboard可视化:

6. 设置wandb可视化


一、使用config json(推荐)

指定训练参数的首选方法是通过--config参数将config json传递给主训练脚本train.py

数据集可以通过设置config json的train部分的data属性来指定,也可以通过--dataset参数来指定

下面的示例为BC算法运行一个默认模板json。这是开展训练的首选方式

python train.py --config ../exps/templates/bc.json --dataset ../../tests/assets/test_v141.hdf5

生成json配置以启动训练运行,可参考超参数助手教程

更多实战过程可参考Dexcap运行逻辑专题内容

二、在代码中构造一个配置对象

启动训练运行的另一种方法是创建默认配置,例如config = config_factory(algo_name="bc")

在python代码中修改配置,然后调用训练函数,就像在examples/train_bc_rnn.py脚本中一样。

import robomimic
import robomimic.utils.torch_utils as TorchUtils
from robomimic.config import config_factory
from robomimic.scripts.train import train# make default BC config
config = config_factory(algo_name="bc")# set config attributes here that you would like to update
config.experiment.name = "bc_rnn_example"
config.train.data = "/path/to/dataset.hdf5"
config.train.output_dir = "/path/to/desired/output_dir"
config.train.batch_size = 256
config.train.num_epochs = 500
config.algo.gmm.enabled = False# get torch device
device = TorchUtils.get_torch_device(try_to_use_cuda=True)# launch training run
train(config, device=device)

三、查看运行结果

使用第一种方法指定训练参数,就可以在config.json脚本文件中配置相关设置,定义及查看训练运行的结果

1. 实验结果会存在一个固定文件夹中,可以设置存储位置:

data

可以在<train.output_dir>/<experiment.name>/<date>实验目录文件夹下查看训练结果:

实验目录文件夹内部格式是固定的:

config.json               # config used for this experiment
logs/                     # experiment log fileslog.txt                    # terminal outputtb/                        # tensorboard logswandb/                     # wandb logs
videos/                   # videos of robot rollouts during training
models/                   # saved model checkpoints

2. 可以设置展示方式:

logging

"logging": {# save terminal outputs under `logs/log.txt` in experiment folder"terminal_output_to_txt": true,# save tensorboard logs under `logs/tb` in experiment folder"log_tb": true# save wandb logs under `logs/wandb` in experiment folder"log_wandb": true
},

3. 可以设置存储方式:

save

比如every_n_epochs定义了每多少轮存储一次

"save": {# enable saving model checkpoints"enabled": true,# controlling frequency of checkpoints"every_n_seconds": null,"every_n_epochs": 50,"epochs": [],# saving the best checkpoints"on_best_validation": false,"on_best_rollout_return": false,"on_best_rollout_success_rate": true
},

4. 可以设置评估执行过程及视频存储:

rollout
"rollout": {"enabled": true,              # enable evaluation rollouts"n": 50,                      # number of rollouts per evaluation"horizon": 400,               # number of timesteps per rollout"rate": 50,                   # frequency of evaluation (in epochs)"terminate_on_success": true  # terminating rollouts upon task success
}

视频存储配置模块:

render_video

要存储视频,则设置为true

5. 可以设置Tensorboard可视化:

在实验目录文件夹中、打开终端、激活环境、并输入:

tensorboard --logdir logs --bind_all

实验结果(y轴)是根据epochs(x轴)记录的。关键的日志指标包括:

Rollout/:评估的任务成功率、奖励等,Rollout/Success_Rate/{envname}-max:最大成功率随时间变化

Timing_Stats/:算法执行加载、训练和回滚等操作所消耗的时间

Train/:训练数据

Validation/:验证数据

System/RAM Usage (MB):系统内存使用情况

6. 设置wandb可视化

此外,可以通过wandb查看结果,类似于tensorboard(UMI中使用的wandb),需配置log_wandb为True

首次登录wandb,需要登录账号(自己提前注册)

robomimic/macros_private.py中将WANDB_ENTITY设置为wandb账户名

Note:如果该文件不存在,运行python robomimic/scripts/setup_macros.py来设置private macros file

默认情况下,所有结果将记录在名为default的wandb项目下

可以通过设置配置文件中的wandb_proj_name更改

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com