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

news2024/12/24 11:31:11

一、项目更新

近期重新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.coloradmin.cn/o/380615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现在的00后太强了,几个问题差点给我问懵了

前言 我们公司刚入职一个00后小伙,今天在办公室交流了一下,他问我会不会自动化测试,我说懂一点,然后直接问了我几个自动化测试问题,差点直接给我问懵了! 问题如下: 我们在制定自动化测试实施…

计算机组成原理4小时速成5:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线

计算机组成原理4小时速成5:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#xff0c…

刷题笔记1 | 704. 二分查找,27. 移除元素

704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 …

备战蓝桥杯——sort函数

备战蓝桥杯——sort函数排列字母lambda匿名函数排列字母 链接: 排列字母 不用多说,很简单的签到题,我们先来了解一下sort函数的用法 list.sort(cmpNone, keyNone, reverseFalse) cmp:进行比较的方法(可以自定义排序的方法,通常…

vue2前端实现html导出pdf功能

1. 功能实现方案 1.html转换成canvas后生成图片导出pdf(本文选用) html转canvas插件:html2canvas是一款将HTML代码转换成Canvas的插件;canvas生成pdf:jsPDF是一个使用Javascript语言生成PDF的开源库 2.HTML代码转出…

JavaWeb详解加实战

JavaWeb 1、基本概念 1.1、前言 web开发 web,网页的意思静态web HTML、CSS提供给所有人看的数据始终不变 动态WEB 提供给所有人看的数据始终会发证变化,每个人在不同的时间,地点看到的信息各不相同技术栈:Servlet/JSP&#xf…

LeetCode 热题 HOT 100 Java 题解 -- Part 2

练习地址 Part 1 : https://blog.csdn.net/qq_41080854/article/details/128829494 LeetCode 热题 HOT 100 Java 题解 -- Part 236. 二叉树的中序遍历 9437. 不同的二叉搜索树 9638. 验证二叉搜索树 9839. 对称二叉树 10140. 二叉树的层序遍历 10241. 二叉树的最大深度 10442.…

cycleGAN算法解读

本文参考:https://blog.csdn.net/Mr_health/article/details/112545671 1 CycleGAN概述 CycleGAN:循环生成对抗神经网络,是一种非监督学习模型。 Pix2pix方法适用于成对数据的风格迁移,而大多数情况下对于A风格的图像&#xf…

vue样式绑定(v-if)

文章目录一.第一次用vue框架二.要求:1.定义两种样式,一种描述正确的状态,一种描述错误的状态。2.在结构代码中定义一个块,实现绑定正确的样式状态。3.定义一个按钮,实现正确和错误两种状态的class切换。三.源代码四.效果一.第一次…

极客之选:用Rollup打包工具优化前端代码,让你成为前端领域的高手

前端开发面临着不断变化的技术和越来越复杂的项目需求,如何优化前端代码成为了前端开发人员必须要面对的挑战。本论文介绍了一个名为Rollup的打包工具,该工具可以帮助开发人员优化前端代码,减小代码体积,提高网站性能。本论文将介…

那些年用过的IDEA插件

今天和大家分享一下经常使用的IDEA的插件,希望有所帮助。一、IDEA插件CodeGlance2显示代码缩略图插件,方便查看代码。Lombok用于编译期间自动生成getter、setter、构造、toString等方法,简化代码。Mybatis Builder或MybatisXMapper接口和xml双…

2023雅虎邮箱不能注册?别急,这份教程教你成功注册雅虎邮箱

这几年,跨境电商的迅猛发展,越来越多人加入这片蓝海,跨境人拥有一个专业的邮箱账户显得尤为重要,它是商业交流和日常工作的必备工具。因此,雅虎邮箱成为了许多人的首选,全球范围内使用雅虎邮箱的人数是非常…

问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)

为了将灰度图像表示为频谱图,我们需要进行以下步骤: 加载图像并将其转换为灰度图像。对图像进行二维离散傅里叶变换。将变换结果表示为幅度谱和相位谱。可以对幅度谱和相位谱进行可视化,以查看频率分布。对幅度谱和相位谱进行逆变换&#xf…

做毕业设计,前端部分你需要掌握的6个核心技能

其实前端新手如果想要自己实现一套毕业设计项目并非简单的事,因为之前很多人一直还停留在知识点的阶段,而且管理系统和C端网站都需要开发,但现在需要点连成线了。所以在启动项目开发之前呢,针对前端部分,我列举一些非常…

react lazyLoad学习记录

react lazyLoad学习记录1.lazyLoad用处2.使用2.1 react-router-dom5版本写法2.2 react-router-dom6版本写法1.lazyLoad用处 默认例如首页,如果有好十几个甚至百个路由,react是会默认一下全部把路由组件一下全部加载的,极可能造成页面卡顿。r…

mysql数据库之sql语句性能分析工具

一、sql执行频率。 mysql客户端连接成功后,通过show [session | global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT/UPDATE/DELETE的访问频次。 #一个下划线代表一个字符 show global status like com_; 二、慢查…

冲鸭!33% 程序员月薪达到 5 万元以上~

2023年,随着互联网产业的蓬勃发展,程序员作为一个自带“高薪多金”标签的热门群体,被越来越多的人所关注。在过去充满未知的一年中,他们的职场现状发生了一定的改变。那么,程序员岗位的整体薪资水平、婚恋现状、职业方…

注意,摸鱼程序员常用的9个小技巧,早点下班不秃头

9个养生小技巧,祝大家不秃头嗨害大家好鸭! 我是小熊猫~毕竟摸鱼一时爽,一直摸一直爽嘛~一、整理字符串输入二、迭代器切片(Slice)三、跳过可迭代对象的开头四、只包含关键字参数的函数 (kwargs)五、创建支持「with」语…

【C/C++】getchar()在处理字符输入时的一个细节

1、当我们进行“输入”后,无论输入一个字符或者是一个数字、一个字符串。都会自动产生一个换行符,而这个不起眼的回车符(‘\n’)也是一个‘字符’。如果我们需要连续多次输入‘字符’,则需要在每次输入字符后,及时处理这个换行符。…

前端二面vue面试题总结

什么是 mixin ? Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。然后将 mixin 的内容合并到组件中…