面向分布式强化学习的经验回放框架(使用例子Demo)——Reverb: A Framework for Experience Replay

相关前文:

面向分布式强化学习的经验回放框架——Reverb: A Framework for Experience Replay

 

 

论文题目:

Reverb: A Framework for Experience Replay

地址:

https://arxiv.org/pdf/2102.04736.pdf

 

 

框架代码地址:

https://github.com/deepmind/reverb 

 

 

 

环境安装:

pip install dm-reverb[tensorflow]

 

 

============================================

 

 

 

Example 1: Overlapping Trajectories

 

关于语句:

with client.trajectory_writer(num_keep_alive_refs=3) as writer:

个人的理解是,client中的数据如果需要进行insert操作,那么需要先申请一段缓存空间的,其中缓存空间的大小定义就是上面的参数num_keep_alive_refs,而writer.append操作是将数据写入到client端的缓存中,也就是num_keep_alive_refs所定义大小的缓存空间中,writer.create_item则是执行将加入到缓存空间中的数据insert到服务端的操作。这就需要保证writer.create_item的时候数据是需要保持在缓存中的,也就是说num_keep_alive_refs需要足够大,不然缓存空间中没有对应的数据而此时执行writer.create_item则是会报错的,当然我们也可以直接将num_keep_alive_refs设置为一个足够大的数,但是这样就会造成client端内存的浪费。

num_keep_alive_refs所定义大小的client端缓存空间中数据会由于writer.append操作造成旧数据移除,比如上面例子中如果设置语句:

with client.trajectory_writer(num_keep_alive_refs=2) as writer:

就会报错,但是设置语句:

with client.trajectory_writer(num_keep_alive_refs=4) as writer:

就不会报错。

 

 

posted on 2023-01-01 13:11  Angry_Panda  阅读(134)  评论(0编辑  收藏  举报

导航