一、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安装会出现以下错误:
把有用信息抽取出来,是因为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这个文件
这个文件是在 XXX(你的下载目录)\cpprb\cpprb\ReplayBuffer.hh 里面的
b、修改代码
找到报错的364行,发现是一个函数,在不了解这条函数的情况下,第一眼看到的跟数字有关的应该就是那个1e-4了,哈哈哈哈,vs2017默认数据类型是double,我们把数值强制转化成float就行,这是c的语法就不多说了。
image
c、通过源码安装
修改完代码之后,回到源文件根目录输入以下指令:
pip install .
安装成功
image
接下来就可以顺利安装tf2rl了。
csdn与简书同步更新,我的主页
网友评论