【humanoid gym】关于在Issac gym里面PPO算法实现里transitions部分roll out storage的记录

news/2025/2/22 18:01:46/文章来源:https://www.cnblogs.com/myleaf/p/18730716

1. 前言

一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。
如有不对之处,欢迎评论区指出错误,你我共同进步学习!

2. 正文

2.1

在on_policy_runner.py文件夹下,初始化的地方:
image
然后我们寻找定义的地方,在ppo.py文件夹下:
image
其中参数num_transitions_per_env其实是self.num-steps-per-env,这个量其实就是:self.num_steps_per_env = self.cfg["num_steps_per_env"],也就是config文件:image中圈1的部分,我们记住是60

2.1

进入RolloutStorage的类里面,这个类在rollout_storage.py文件夹下,是我们今天的关注点。
我们找到mini_batch_generator这个函数:
image
我们注意到里面的observation.flatten(0,1),我们看一下observation的维度:
image
维度是:60X2048Xnum_obs
经过.flatten(0, 1)变成了:122880Xnum_obs

2.1

循环里面:
image
我来解释一下:这里是将每一个env(比方说2048个环境)的transition(比方说一个env有60个transition)全部都混到一起去,总共有2048x60=122880个transtion,这就是一个batch,顺序全部打乱,所以一个batch_size就是122880,然后按照mini_batch-size(比方和说是4),分为4个小batch,每个batch是122880//4=30720 ,按照030720,3072061440,6144092160,92160122880的进度取这个大batch,当然顺序是打乱的,

2.1

然后我们看这个是在哪里调用的:我们来到ppo.py文件下,发现generator是从刚才的mini_batch_generator函数得来的。
image
这里的generator是随即采样的结果,里面包含很多的值:你看,有这么多:
image

2.1

然后value_batch就是从self.actor_critic.evaluate函数里返回,这个函数在actor_critic.py文件下:
image
输入是随即batch的观测值,经过神经网络输出value_batch

2.1

再看compute_returns函数:位于rollout_stotage.py文件里面:
image

2.1

actor网络输出的actions是一个distribution,有均值和方差的。
image
见我下面的注释内容:
image

2.1

transition含有的值:
里面就rewards和dones没办法直接获得,所以除了这两个值其他都得到了。。。
image

2.1

计算,直到infos['time_outs']=True,
image
下面是infos变量,也就是extras的值,
image
下面就用到了:
image

2.1

注意obs不是一个!!!!
image

2.1

2.1

2.1

2.1

2.1

2.1

3. 后记

这篇博客暂时记录到这里,日后我会继续补充。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888083.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows快速部署xxl-job.jar

1.在官网下载文件 https://gitee.com/xuxueli0323/xxl-job 2.在idea打开项目 3.修改maven版本,当前版本(2025/2/22)需要使用maven3.6.3+,maven地址:https://maven.apache.org/download.cgi maven版本过老的报错信息:Failed to execute goal org.apache.maven.plugins:mav…

复制浏览器网页文字 粘贴时却乱码的解决

本文介绍在复制网页内容后粘贴时,粘贴内容出现一个方框图案而不是当初复制内容的解决办法~本文介绍在复制网页内容后粘贴时,粘贴内容出现一个方框图案而不是当初复制内容的解决办法。最近,需要将谷歌地球引擎(Google Earth Engine,GEE)网页中的一段代码复制到另一个网页中…

【翻译】凝视深渊:千核并发控制的评估

凝视深渊:千核并发控制的评估 作者 Xiangyao Yu MIT CSAIL yxy@csail.mit.edu George Bezerra MIT CSAIL gbezerra@csail.mit.edu Andrew Pavlo 卡内基梅隆大学 pavlo@cs.cmu.edu Srinivas Devadas MIT CSAIL devadas@csail.mit.edu Michael Stonebraker MIT CSAIL stonebrake…

2.21课堂测验

需求描述: 请设计一个仓储管理系统原型系统,该系统支持多个仓库的设立。统一设立物资台账,物资台账需包含物资编码、物资名称、规格、材质、供应商、品牌、物资分类,用户可以自定义物资的物资分类。需限制不同的物资名称、规格、材质的物资不能设立相同的物资编码。仓库人员…

CSS2

盒子模型所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容 Margin(外边距):元素与其他元素的距离(边框以外的距离),外边距是透明的,需要修…

清华大学第三版《DeepSeek:如何抓住DeepSeek红利》,普通人必备的Ai手册(附PDF手册)

前两天,清华大学发布了一部极为详尽的电子书——《DeepSeek从入门到精通》。这本书将DeepSeek的基础知识以及提示词的运用方法,讲解得清晰明了、浅显易懂,一经问世便迅速在网络上引发了广泛关注与热潮。 【清华第一版】《DeepSeek从入门到精通》率先登场,给广大对DeepSeek感…

Linux 中xargs 命令的-i和-I用法差异

001、-i 选项[root@PC1 dir1]# ls a.txt b.txt dir1 h.csv i.csv [root@PC1 dir1]# tree . ├── a.txt ├── b.txt ├── dir1 ├── h.csv └── i.csv1 directory, 4 files [root@PC1 dir1]# find *.txt | xargs -i mv {} dir1/ ## -i选项可以将xargs命令传…

宜家 App 存在的 bug All In One

宜家 App 存在的 bug All In One 某商品下架后,App 的订单中就无法再查看有关商品的任何详细信息宜家 App 存在的 bug All In One bugs某商品下架后,App 的订单中就无法再查看有关商品的任何详细信息解决方案使用 Google 搜索,获取对应的商品的网页版信息https://www.ikea.c…

2025寒假总结2

前言 这是第二篇总结,考虑到与前一篇的时间临近,所以不展开叙述做过的事情,此篇文章重点写关于最近的收获、现在的知识体系以及后面的计划。 Part 1 记录 这部分大概讲一下寒假做过的事,大体按照时间线展开。 首先 16 号是竞赛生大会,晚上回来后补完北京的游记,看了一会数…

为 Power Automate 注册 Adobe PDF Services

前言最近,再测试如何将HTML转换成PDF,然后发现Adobe有一个免费的操作可以用,好开心,赶紧注册一下。正文1.先注册一个账号,然后登录到Adobe Developer注册链接:https://www.adobe.com/go/getstarted_powerautomate2.这就是新建好的,然后密码要获取一下,如下图:3.然后,…

记一次golang项目context引发的进程OOM故障

之前写过一篇一种基于etcd实践节点自动故障转移的思路, 程序经历过一次线上进程内存持续上涨终OOOM的小事故, 本次技术复盘导致本次内存泄露的完整起因。 提炼代码: 业务函数etcdWatchLoop: 基于etcd的Watch机制持续监听/foo前缀键值对的变更; 收到Watch信道的变更消息,就…