• 强化学习分布式经验回放框架(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 。

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

  • 相关阅读:
    西卡编程教学 C语言教学视频(共32课更新完毕) 『 西卡教学 』 西卡学院 Powered by Pureing Labs!
    大图片新闻的体验还是不错的
    分享:用php抓取网页内容方法总结
    “深圳文献港”昨日正式开通_综合新闻_财经_腾讯网
    分享:EJDB 1.0.37 发布,嵌入式 JSON 数据库引擎
    分享:MetaModel 3.2.5 发布,数据库元模型
    RQ: Simple job queues for Python
    分享:开源主机项目 Ouya 发布 SDK
    RQ 简单的任务队列 品牌控
    信息论、推理与学习算法(翻译版)
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/16282992.html
Copyright © 2020-2023  润新知