Isaac-gym(9):项目更新、benchmarks框架梳理

news/2024/5/19 1:53:09 标签: 强化学习, isaac, 人工智能

一、项目更新

近期重新git clone isaac gym的强化部分(具体见系列第5篇)时发现官方的github库有跟新,git clone下来后发现多了若干个task,在环境配置上也有一定区别。
例如新旧两版工程项目的setup.py区别如下:
在这里插入图片描述
git clone新项目后直接在之前配置好的环境中运行,会有报错如下:

Error executing job with overrides: ['task=Cartpole']
Traceback (most recent call last):
  File "train.py", line 146, in launch_rlg_hydra
    runner = build_runner(RLGPUAlgoObserver())
  File "train.py", line 137, in build_runner
    model_builder.register_model('continuous_amp', lambda network, **kwargs : amp_models.ModelAMPContinuous(network))
AttributeError: module 'rl_games.algos_torch.model_builder' has no attribute 'register_model'

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.

根据新项目的setup.py的提示添加了如下的环境:

ip install rl-games==1.5.2
pip install gym==0.24.1
pip install pyvirtualdisplay

添加后可以运行新的工程项目。

二、benchmark框架梳理

给出的tasks实例位于如下路径:

~/IsaacGymEnvs/isaacgymenvs/tasks

执行命令为:

python train.py task=task名称

2.1 task相关程序构成

每一个task主要由三个文件构成:

  • 主程序:task名.py
    在tasks文件夹下以task名称命名task名.py的文件是主体程序,包含程序主要设计,环境生成,奖励函数,控制模块等等;

  • 强化学习算法配置文件:task名PPO.yaml
    位于~/isaacgymenvs/cfg/train
    主要是包含强化学习相关的配置参数

  • task参数文件:task名.yaml
    位于~/isaacgymenvs/cfg/task
    主要包含此task的名称,训练环境数量,需要用到的初始参数,加载的各类模型(urdf文件等)路径;以及仿真环境sim信息(轴向、重力、physx相关系数等)

2.2 训练后得到文件

训练后,生成的模型文件位于~/isaacgymenvs/runs/task名
文件夹内包含nn,summaries.config.yaml三个文件

其中config.yaml为本次训练的环境参数(env)、仿真参数(sim)、训练参数(train)等;

nn文件夹内为后缀为.pth的模型文件,可以用命令进行回放(相关指令见之前博文或官网);每一定周期内会生成一个过程文件,名称为last_task名_ep_x_rew_x.pth,其中x为相关参数;有一最优参数保留的模型文件名称为task名.pth,在终端可以看到.pth文件的打印与更新提示

2.3 task主程序逻辑图

个人绘制,如有错误还请见谅,欢迎指出,随时交流

在这里插入图片描述
撰写自己的task时,模板位于~/isaacgymenvs/tasks/base/vec_task.py,所有程序根据此车程序进行子类化。


http://www.niftyadmin.cn/n/111154.html

相关文章

产品相关读书笔记

腾讯产品法读书笔记 产品设计者对产品的思考大体上可以分为三个阶段: 第一阶段:以片面,固话的眼光看问题,只看到零散的表现和静止的格局。解决方案呈点状随机分布。 第二阶段:以宏观,系统的眼光看问题&…

Ep_操作系统面试题-什么是协程

协程 是一种 比线程更加轻量级的存 在,一个线程可以拥有多个协程。是一个特殊的 函数 ,这个函数可以在某个地方挂起,并且可以重新在挂起处外继续运行。协程 不是被操作系统内核所管理 , 而完全是由程序所控制(也就是在…

华为机试题:HJ86 求最大连续bit数(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

异响加持、吐槽声不断,小鹏G9难解困局

小鹏汽车的烦恼就好比红尘中的三千青丝,小鹏G9“惊魂48小时”的恐慌还未平息,车门异响等问题就已经层出不穷,再次将小鹏汽车推上风口浪尖。 可以毫不客气的说,G9承载着小鹏汽车盈利的希望,但在原本处于上升之势的G9却…

每日面试题

2022/12/15 如何实现一个IOC容器 1、配置文件配置包扫描路径 2、递归包扫描获取.class文件 3、反射、确定需要交给lOC管理的类4、对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层、业务服务层、数据持久层、依赖注…

机器学习复习--logistic回归简单的介绍和代码调用

最近需要复习一下机器学习相关知识,记录一下 一、简介 线性回归:h(x)wTxbh(x)w^T x bh(x)wTxb logistic回归就是在线性模型的基础上加上一个sigmoid函数ggg,即h(x)g(wTxb)h(x)g(w^T xb)h(x)g(wTxb)。。。g(z)1/(1e−z)g(z)1/(1e^{-z})g(z)…

Spark RDD持久化

RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供…

Windows下curl编译,使用vcpkg定制自己的【curl】。

本篇介绍在Windows下如何编译curl,curl自称是星球上最好用的计算机网络工具,但是它在windows上纯手动编译很困难,我们使用vcpkg来简化它的编译,方便我们使用。 目录 一、CURL介绍 二、vcpkg下载、编译、定制【curl】 三、编写…