美文网首页学习提升Python
windows下安装强化学习开源库 tf2rl

windows下安装强化学习开源库 tf2rl

作者: _我是_ | 来源:发表于2020-03-26 16:21 被阅读0次

    一、TF2RL介绍

    TF2RL是一个深度强化学习库,它使用TensorFlow 2.0实现了各种深度强化学习算法。

    算法 离散行为 连续行为 分类
    VPG Model-free On-policy RL
    DQN (including DDQN, Prior. DQN, Duel. DQN, Distrib. DQN, Noisy DQN) Model-free Off-policy RL
    DDPG (including TD3, BiResDDPG) Model-free Off-policy RL
    SAC Model-free Off-policy RL
    GAIL, GAIfO, VAIL (including Spectral Normalization) Imitation Learning

    二、安装

    安装过程ubuntu跟windows并无太大差别,可以通过以下方式安装

    1、通过PyPI安装

    $ pip install tf2rl
    

    2、源文件安装

    $ git clone https://github.com/keiohta/tf2rl.git tf2rl
    $ cd tf2rl
    $ pip install .
    

    三、使用

    import gym
    from tf2rl.algos.ddpg import DDPG
    from tf2rl.experiments.trainer import Trainer
    
    
    parser = Trainer.get_argument()
    parser = DDPG.get_argument(parser)
    args = parser.parse_args()
    
    env = gym.make("Pendulum-v0")
    test_env = gym.make("Pendulum-v0")
    policy = DDPG(
        state_shape=env.observation_space.shape,
        action_dim=env.action_space.high.size,
        gpu=-1,  # Run on CPU. If you want to run on GPU, specify GPU number
        memory_capacity=10000,
        max_action=env.action_space.high[0],
        batch_size=32,
        n_warmup=500)
    trainer = Trainer(policy, env, args, test_env=test_env)
    trainer()
    

    源文件里面有很多案例,大家可以自行查看。


    example

    四、踩坑

    1、cpprb

    ubuntu下直接pip安装没出现任何问题,但是windows下cpprb直接用pip安装会出现以下错误:

    error

    把有用信息抽取出来,是因为cpprb这个库安装不上,而且提示的是编译过程中类型转换错误。

        ....
       e:\anaconda\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
        cpprb/PyReplayBuffer.cpp(3112): warning C4804: “>”: 在操作中使用类型“bool”不安全
        cpprb/PyReplayBuffer.cpp(10902): warning C4018: “<=”: 有符号/无符号不匹配
        cpprb/PyReplayBuffer.cpp(11913): warning C4018: “<=”: 有符号/无符号不匹配
        cpprb/PyReplayBuffer.cpp(12466): warning C4018: “<”: 有符号/无符号不匹配
        cpprb/PyReplayBuffer.cpp(12477): warning C4018: “<=”: 有符号/无符号不匹配
        c:\users\liu\appdata\local\temp\pip-install-bt5p4q_m\cpprb\cpprb\ReplayBuffer.hh(364): error C2397: 从“double”转换到“float”需要收缩转换
        c:\users\liu\appdata\local\temp\pip-install-bt5p4q_m\cpprb\cpprb\ReplayBuffer.hh(364): warning C4305: “初始化”: 从“double”到“float”截断
        error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.13.26128\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
        ...
    

    2、安装cpprb

    简单介绍以下,cpprb是一个python(CPython)模块,提供用于强化学习的记忆存储/提取。
    底层是用c++写的。而TF2RL就要使用到这个cpprb库。我们通过源码安装:

    re、安装依赖

    安装cpprb之前需要安装C++ 编译器

    • GCC ( 7.2 或者更新)
    • Visual Studio (2017 Enterprise)

    这是官方推荐的版本,我的gcc 是9.2.0的,电脑本身就带了vs2017,所以也没试过其他编译器

    a、下载源文件

    根据错误信息找到ReplayBuffer.hh这个文件

    getfile
    这个文件是在 XXX(你的下载目录)\cpprb\cpprb\ReplayBuffer.hh 里面的

    b、修改代码

    找到报错的364行,发现是一个函数,在不了解这条函数的情况下,第一眼看到的跟数字有关的应该就是那个1e-4了,哈哈哈哈,vs2017默认数据类型是double,我们把数值强制转化成float就行,这是c的语法就不多说了。


    image

    c、通过源码安装

    修改完代码之后,回到源文件根目录输入以下指令:

    pip install .
    

    安装成功


    image

    接下来就可以顺利安装tf2rl了。

    csdn与简书同步更新,我的主页

    相关文章

      网友评论

        本文标题:windows下安装强化学习开源库 tf2rl

        本文链接:https://www.haomeiwen.com/subject/rapcuhtx.html