强化学习分布式经验回放框架(experience replay)reverb的安装
框架reverb的相关介绍:
https://www.cnblogs.com/devilmaycry812839668/p/16260799.html
==================================================
reverb框架为python语言环境下的,由于该框架需要和python和TensorFlow进行混合编译,因此需要用到python的libpython.so共享库,因此使用conda创建python环境就不是很好用了,这里的python环境采用从源码编译,具体参看:
https://www.cnblogs.com/devilmaycry812839668/p/16281134.html
这里采用python3.9的环境,并在 .bashrc 文件下配置python环境的变量:
export PATH=/home/devil/python3.9/bin:$PATH
export LD_LIBRARY_PATH=/home/devil/python3.9/lib:$LD_LIBRARY_PATH
安装TensorFlow,经过测试reverb暂时不支持TensorFlow=2.9.0版本,因此这里使用TensorFlow-2.8.0版本:
pip install tensorflow==2.8.0
安装reverb:
pip install dm-reverb
测试代码:
import reverb server = reverb.Server(tables=[ reverb.Table( name='my_table', sampler=reverb.selectors.Uniform(), remover=reverb.selectors.Fifo(), max_size=100, rate_limiter=reverb.rate_limiters.MinSize(1)), ], ) client = reverb.Client(f'localhost:{server.port}') print(client.server_info()) # Creates a single item and data element [0, 1]. client.insert([0, 1], priorities={'my_table': 1.0}) # Appends three data elements and inserts a single item which references all # of them as {'a': [2, 3, 4], 'b': [12, 13, 14]}. with client.trajectory_writer(num_keep_alive_refs=3) as writer: writer.append({'a': 2, 'b': 12}) writer.append({'a': 3, 'b': 13}) writer.append({'a': 4, 'b': 14}) # Create an item referencing all the data. writer.create_item( table='my_table', priority=1.0, trajectory={ 'a': writer.history['a'][:], 'b': writer.history['b'][:], }) # Block until the item has been inserted and confirmed by the server. writer.flush() print('...........') # client.sample() returns a generator. print(list(client.sample('my_table', num_samples=2)))
成功运行:
安装诀窍:
安装reverb第一点就是要注意python环境一定要有动态链接库.so文件并且路径中可以搜索到,使用conda的python环境一般都是静态库.a文件,因此这里我们使用的是源码编译python环境;
第二点就是TensorFlow的版本,因为我们pip方式安装的reverb都是编译好的而不是像其他库如numpy那种会下载后重新编译的,因此就需要安装与之对应的TensorFlow版本(官方编译reverb时候的TensorFlow版本),而这个信息我们往往是获得不到的,一个好的解决方法就是安装最新版的reverb然后从最新版的TensorFlow开始试,这里我们最新的TensorFlow版本是2.9.0,发现版本不匹配后直接换为2.8.0版本的TensorFlow就成功匹配最新版的reverb了。
============================================
如果安装的是TensorFlow-2.9.0,那么安装reverb后运行则会报错:
这个错误大致意思就是说reverb编译时的TensorFlow和现在安装环境下的TensorFlow版本不同,这里安装的最新版本dm_reverb-0.7.3.dist-info,不支持TensorFlow-2.9.0但支持TensorFlow-2.8.0 。
================================================
posted on 2022-05-17 23:56 Angry_Panda 阅读(416) 评论(0) 编辑 收藏 举报