【Legged gym】关于Legged gym用到的roll_out_storages的batch的解析和一些PPO算法层面.config文件里参数的说明
1. 前言
一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。
如有不对之处,欢迎评论区指出错误,你我共同进步学习!
2. 正文
2.1 yield
最开始发现于:rollout_storage.py文件下的mini_batch_generator函数:

感觉这个最外层的num_epochs也没用啊?直到我看到了yield,然后去外面的函数看了看它的调用,发现了一个好玩的事情:

才知道这里的roll out的打乱前的batch是按照一个迭代器产生的,我自己也试了一下,确实我之前都没注意到这一点。
相较于return,yield最大的特点是可以手动的推进迭代,举个:
def f1():
for i in range(5):
yield i
a = f1()
print(next(a))
print(next(a))
print(next(a))
print(next(a))
输出:
而return只是返回了一个值,程序运行到这里就断开了,所以不少函数用return作为中断,而yield可以循环返回值,而且函数也不会中断,相当于自己写了一个迭代器,根据自己的需要从迭代器里面“拿”数据,这样解释应该会通俗易懂。
但当然也可以这么写,一下就可以取出迭代器里的所有值了:
def f1():
for i in range(5):
yield i+1,i+2,i+3
generator = f1()
for a,b,c in generator:
print(a,b,c)
输出:

然后在代码中:

圈1表示随机化roll out storages的循环次数:(注意可以自己看代码,这个epochs的每次循环输出的数据其实是重复的),这里就用到了我前面提到的yield的用法,generator迭代器。

这个值调的大,那么在update的时候迭代的次数就越多,其所在位置如下所示:rsl_rl/ppo.py

下面的
KL的注释可以不用管他,这个就是一个调整学习率的地方,在.config文件的schedule处可以自行设置,选择fixed就是不更新学习率,始终是一个值,adaptive就是可以更新。
然后回到上面,圈2表示的是batch的数量batch_num,也就是按照一个batch_size大小取样,一共取batch_num次,也就是上面图所表示的内层循环。
注意这个两个值不要开太大,要学会取舍,不然可能会不收敛而且learning_time会"炒鸡"慢
3. 后记
这篇博客暂时记录到这里,日后我会继续补充。
【Legged gym】关于Legged gym用到的roll_out_storages的batch的解析和一些PPO算法层面.config文件里参数的说明的更多相关文章
- Gym - 102861B 、Gym - 102861F、Gym 102861G、Gym 102861L、Gym 102861N、Gym 101968C、Gym 101968D
训练赛链接:https://vjudge.net/contest/410049#problem/D Gym - 102861B 题意: 在一个二维平面上,给你一个船,问你在这个二维平面上有没有船重叠. ...
- OAuth 2.0 for MVC, Two Legged Implementation
OAuth 2.0 for MVC, Two Legged Implementation tdupont Fri, Mar 18 2011 9:30 AM 13 OAuth 1.0 was one ...
- Gym 100952H&&2015 HIAST Collegiate Programming Contest H. Special Palindrome【dp预处理+矩阵快速幂/打表解法】
H. Special Palindrome time limit per test:1 second memory limit per test:64 megabytes input:standard ...
- 常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2) (转载)
原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...
- 强化学习 平台 openAI 的 gym 安装 (Ubuntu环境下如何安装Python的gym模块)
openAI 公司给出了一个集成较多环境的强化学习平台 gym , 本篇博客主要是讲它怎么安装. openAI公司的主页: https://www.openai.com/systems/ 从主页上我 ...
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...
- OpenAI gym的建模思想
一.强化学习问题需要描述那些内容 强化学习中最主要的两类对象是“个体”和“环境”,其次还有一些像“即时奖励”.“收获”.“状态”.“行为”.“价值”.“策略”.“学习”.“控制”等概念.这些概念把个体 ...
- Open AI Gym简介
介绍 OpenAI Gym是一款用于研发和比较强化学习算法的工具包,它支持训练智能体(agent)做任何事——从行走到玩Pong或围棋之类的游戏都在范围中. OpenAI Gym 是一个用于开发和比较 ...
- Codeforces Gym 100338B Spam Filter 字符串哈希+贝叶斯公式
原题链接:http://codeforces.com/gym/100338/attachments/download/2136/20062007-winter-petrozavodsk-camp-an ...
- conda常用命令,如何在conda环境中安装gym库?
查看已安装的环境: conda info -e 或 conda env list 创建新环境gymlab: conda create -n gymlab python=3.5 激活环境gymlab: ...
随机推荐
- 如何快速的开发一个完整的iOS直播app(点赞功能)
客户端代码 点击小红心,发送socket给服务器,并且要传递房间Key给服务器,通知给哪个主播点赞,就能传入到对应的分组socket中 怎么传递房间key,房间Key在主播界面,一般一个客户端,只会产 ...
- Dibble pg walkthrough Intermediate
nmap 21/tcp open ftp vsftpd 3.0.3 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_Can't get ...
- oracle的新发现for语句
今天为了解决一个查询结果想两次遍历的方法,去ORACLE官网文档中心 https://docs.oracle.com/en/database/oracle/,意外发现这个有意思的for语句.还是官方资 ...
- nacos(二):原生java调用配置与服务实例
本文主要介绍原生java连接nacos,操作nacos的共享配置与服务实例. 1.引入依赖 <dependencies> <dependency> <groupId> ...
- Visual Studio各个版本密钥
1.VS2012 旗舰版:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC 2.VS2013 旗舰版:BWG7X-J98B3-W34RT-33B3R-JVYW9 专业版:XDM3T-W3T3 ...
- 卸载CentOS7自带的jdk
卸载CentOS7自带的jdk 问题描述 在安装完centOS 7虚拟机后,执行 java -version,发现系统自带jdk8.因为我想使用jdk11,安装并配置环境变量后,环境变量仍显示为jdk ...
- Layer子域名挖掘机
Layer子域名挖掘机 Layer子域名挖掘机是一款功能强大的域名查询工具,主要用于提供网站子域名的查询服务. 域名与子域名 域名 域名,又称网域,是互联网上用于标识特定计算机或计算机组的一串由点分隔 ...
- VMware常用操作
VMware常用操作 VMware作为一款功能强大的虚拟化软件,为用户提供了一个灵活.高效的虚拟环境.在日常使用中,掌握VMware的常用操作对于提高工作效率.优化资源配置至关重要.以下将详细介绍VM ...
- AI 如何重塑劳动力市场:基于 Claude 数据的深度分析
前言 本文翻译自 Anthropic 今天发布的 The Anthropic Economic Index ,经济指数报告,这份报告基于 Claude 的数据对目前的 AI 使用情况做了汇总. 引言 ...
- Flink运行时架构
一.运行时的组件和基本原理 1.作业管理器 (1)控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager所控制执行. (2)JobManager会先接收到要执行的应用 ...
