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

一、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的语法就不多说了。
在这里插入图片描述

c、通过源码安装

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

pip install .

安装成功
在这里插入图片描述

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

发布了33 篇原创文章 · 获赞 216 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_41045354/article/details/104088349