面向分布式强化学习的经验回放框架——Reverb: A Framework for Experience Replay
论文题目:
Reverb: A Framework for Experience Replay
地址:
https://arxiv.org/pdf/2102.04736.pdf
框架代码地址:
https://github.com/deepmind/reverb
相关文章:
面向分布式强化学习的经验回放框架(使用例子Demo)——Reverb: A Framework for Experience Replay
pip安装方式:(该方式大概率无法成功安装,此时可以参考本文底部的详细安装教程)
pip install dm-reverb
注意事项:
由于该框架是为TensorFlow所设计的,因此该框架的输入和输出变量均为TensorFlow的向量tensor,如果其他深度学习框架需要使用该分布式经验池框架则需要手动将输入和输出的变量转为numpy.array再进行转换,比如pytorch的tensor需要先转为numpy.array,然后再转为tensorflow.tensor 。
reverb框架和TensorFlow框架均为Google内部使用的框架,因此可以参考的使用案例和教程代码都很少,这也是Google的计算框架难以被外界使用的一个原因,对于reverb框架来说,没有比较成熟的教程代码,因此难以使用。
------------------------------------------------------------------
偶然间看到了这个experience replay框架,这个框架可以被看做是公开的工业界使用的面向分布式的经验回放框架,这方面的工作一直较少,可能这样的工作更偏向于工程而不是学术所以导致很少有人在做,即使是那些工业界也少有人在做这方面的工作,但是这样的工作还是蛮有必要的,毕竟算法这东西最后还是要服务于工业界的。
-------------------------------------------------------------------------
介绍一个reverb的函数:
reverb.rate_limiters.SampleToInsertRatio
帮助文档:
SampleToInsertRatio(samples_per_insert: float, min_size_to_sample: int, error_buffer: Union[float, Tuple[float, float]])
|
| Maintains a specified ratio between samples and inserts.
|
| The limiter works in two stages:
|
| Stage 1. Size of table is lt `min_size_to_sample`.
| Stage 2. Size of table is ge `min_size_to_sample`.
|
| During stage 1 the limiter works exactly like MinSize, i.e. it allows
| all insert calls and blocks all sample calls. Note that it is possible to
| transition into stage 1 from stage 2 when items are removed from the table.
|
| During stage 2 the limiter attempts to maintain the ratio
| `samples_per_inserts` between the samples and inserts. This is done by
| measuring the "error" in this ratio, calculated as:
|
| number_of_inserts * samples_per_insert - number_of_samples
|
| If `error_buffer` is a number and this quantity is larger than
| `min_size_to_sample * samples_per_insert + error_buffer` then insert calls
| will be blocked; sampling will be blocked for error less than
| `min_size_to_sample * samples_per_insert - error_buffer`.
|
| If `error_buffer` is a tuple of two numbers then insert calls will block if
| the error is larger than error_buffer[1], and sampling will block if the error
| is less than error_buffer[0].
|
| `error_buffer` exists to avoid unnecessary blocking for a system that is
| more or less in equilibrium.
该函数通过设置:samples_per_insert和error_buffer变量实现对sample和insert操作的权衡,主要思想就是如果sample的过少就阻塞insert操作;如果insert的太少就阻塞sample。
通过判断number_of_inserts * samples_per_insert - number_of_samples的值来判断现在的sample和insert操作的权衡情况,如果该值大于min_size_to_sample * samples_per_insert + error_buffer,那么说明insert的太多了,需要阻塞insert操作,此时sample可以正常继续;如果该值小于min_size_to_sample * samples_per_insert - error_buffer,那么说明此时sample的太多了,此时需要阻塞sample操作,而insert操作可以正常继续。
========================================================
这个框架的安装方法(ubuntu系统环境下):
强化学习分布式经验回放框架(experience replay)reverb的安装
=====================================================
面向分布式强化学习的经验回放框架——Reverb: A Framework for Experience Replay的更多相关文章
- 分布式强化学习基础概念(Distributional RL )
分布式强化学习基础概念(Distributional RL) from: https://mtomassoli.github.io/2017/12/08/distributional_rl/ 1. Q ...
- 强化学习(十七) 基于模型的强化学习与Dyna算法框架
在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...
- ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文
https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...
- 5G网络的深度强化学习:联合波束成形,功率控制和干扰协调
摘要:第五代无线通信(5G)支持大幅增加流量和数据速率,并提高语音呼叫的可靠性.在5G无线网络中共同优化波束成形,功率控制和干扰协调以增强最终用户的通信性能是一项重大挑战.在本文中,我们制定波束形成, ...
- 强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)
在强化学习(十七) 基于模型的强化学习与Dyna算法框架中,我们讨论基于模型的强化学习方法的基本思路,以及集合基于模型与不基于模型的强化学习框架Dyna.本文我们讨论另一种非常流行的集合基于模型与不基 ...
- ICML论文|阿尔法狗CTO讲座: AI如何用新型强化学习玩转围棋扑克游戏
今年8月,Demis Hassabis等人工智能技术先驱们将来到雷锋网“人工智能与机器人创新大会”.在此,我们为大家分享David Silver的论文<不完美信息游戏中的深度强化学习自我对战&g ...
- 强化学习中的经验回放(The Experience Replay in Reinforcement Learning)
一.Play it again: reactivation of waking experience and memory(Trends in Neurosciences 2010) SWR发放模式不 ...
- 谷歌重磅开源强化学习框架Dopamine吊打OpenAI
谷歌重磅开源强化学习框架Dopamine吊打OpenAI 近日OpenAI在Dota 2上的表现,让强化学习又火了一把,但是 OpenAI 的强化学习训练环境 OpenAI Gym 却屡遭抱怨,比如不 ...
- 谷歌推出新型强化学习框架Dopamine
今日,谷歌发布博客介绍其最新推出的强化学习新框架 Dopamine,该框架基于 TensorFlow,可提供灵活性.稳定性.复现性,以及快速的基准测试. GitHub repo:https://git ...
- 【强化学习】1-1-2 “探索”(Exploration)还是“ 利用”(Exploitation)都要“面向目标”(Goal-Direct)
title: [强化学习]1-1-2 "探索"(Exploration)还是" 利用"(Exploitation)都要"面向目标"(Goal ...
随机推荐
- shiro有哪些组件?
a.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: b.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的 ...
- Dell服务器配置RIAD并创建热备盘
在系统启动期间,按F2键进入System Setup(系统设置)主菜单 单击Device Settings(设备设置). 单击所需的RAID controller(RAID控制器)设备. 4.单击Co ...
- Codeforces Round #243 (Div. 2) Problem B - Sereja and Mirroring 题解
http://codeforces.com/contest/426/problem/B 题意大概就是对称有关,要注意的是,当行数为奇数的时候,答案就是行数本身 #include<iostream ...
- itunes同步视频
itunes同步视频不要通过影片同步,而是通过照片同步 如果显示的是iCloud,只需在手机或ipad上,设置里icloud中,包照片的iCloud关掉,然后重连一下就行
- Python使用Matplotlib画以日期为X轴的图
Python使用Matplotlib画以日期为X轴的图 步骤: 用pd把字符串格式的日期转成date格式. 使用 AutoDateLocator 设置x轴的属性. 1 from matplotlib ...
- SDL3 入门(4):选择图形引擎
SDL2 创建渲染器时只能指定使用软件渲染还是硬件加速,无法选择使用哪种图形引擎实现硬件加速.SDL3 对此做了优化,可以在创建渲染器时指定 rendering driver 也就是图形引擎,比如在 ...
- k8s网络原理之flannel
首先当你创建一个k8s集群后一般会存在三种IP分别是,Pod IP,Node IP,Cluster IP 其中一个Cluster IP之下包含多个Node IP,而一个Node IP之下又包含多个Po ...
- 复习-jQuery
咱就是说,发现了一个更好的方法每次把效果图制作成了一个gif,另外推荐个免费软件GIFcam很方便制作gif图,毕竟js是一门动态交互的语言对吧,没有动态的图那就是没有灵魂的所以以后就用这种方式来上传 ...
- Java FastJson解析json字符串
json转map Map<String, 实体类> titleMap=JSON.parseObject(JSON字符串, new TypeReference<HashMap<S ...
- ORACLE 如何判断某字段是否小于0
Oracle 自带的函数 SIGN 表达式的正 (+1).零 (0) 或负 (-1) 号 SQL> SELECT SIGN(-47.3), SIGN(0), SIGN(47.3) FROM du ...