rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。
rlpyt 可利用GPU来训练模型,理论上速度会比CPU快。
✔ 安装GPU版的PyTorch
在Anaconda下,利用rlpyt自带的 linux_cuda10.yml 或 linux_cuda9.yml 来安装 rlpyt 依赖的Anaconda env(取决于你使用的CUDA Version是多少)。
使用 nvidia-smi 命令查看 CUDA Version:
NVIDIA-SMI 410.72 Driver Version: 410.72 CUDA Version: 10.0
我的是 10.0,因此修改 linux_cuda10.yml,把下面这行:
cudatoolkit=10.
改成:
cudatoolkit=10.0
我测试下来,如果不改,rlpyt env也可以安装成功,但是装上的是CPU版的PyTorch;不仅如此,如果你服务器上的CUDA Version是10.1的,你也要把 yml 配置文件里改成 10.0,否则装上的也是CPU版的PyTorch:
✔ 在模型训练程序调度GPU
具体应该怎么写GPU相关的程序,取决于你要实现什么样的功能。例如,使用同步/异步模式,它们对应的Sampler是不同的,等等。
涉及到具体的代码,这里难以给出一个详细的说明,可以参考 rlpyt 的examples代码。
文章来源:https://www.codelast.com/
✔ 确认真的在使用GPU训练
依然使用 nvidia-smi 命令来检测,正常情况下,在模型开始训练后,会看到 Processes 列表中有你的模型训练进程:
~$ conda list | grep pytorch_pytorch_select 0.1 cpu_0 defaultspytorch 1.2.0 cpu_py37h00be3c6_0 defaults
文章来源:https://www.codelast.com/
改了之后装上的就是GPU版的PyTorch了:
~$ conda list | grep pytorch_pytorch_select 0.2 gpu_0 defaultspytorch 1.2.0 cuda100py37h938c94c_0 defaults
✔ 在模型训练程序调度GPU
具体应该怎么写GPU相关的程序,取决于你要实现什么样的功能。例如,使用同步/异步模式,它们对应的Sampler是不同的,等等。
涉及到具体的代码,这里难以给出一个详细的说明,可以参考 rlpyt 的examples代码。
文章来源:https://www.codelast.com/
✔ 确认真的在使用GPU训练
依然使用 nvidia-smi 命令来检测,正常情况下,在模型开始训练后,会看到 Processes 列表中有你的模型训练进程:
3 17754 C .../.anaconda/envs/rlpyt/bin/python 459MiB
此外,在模型训练的过程中,查看GPU使用率应该不为0:
dstat --nvidia-gpu -af
这样就OK了。
据我实测,在我的应用场景中,同样功能的强化学习程序,GPU版比CPU版的模型训练速度快50%左右,GPU单卡使用率最高约为14%(只使用了一张卡,Nvidia P40显卡)。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
据我实测,在我的应用场景中,同样功能的强化学习程序,GPU版比CPU版的模型训练速度快50%左右,GPU单卡使用率最高约为14%(只使用了一张卡,Nvidia P40显卡)。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
你好啊,请问那几个example例子大概跑了多久能出结果呢?我在跑example_6.py ,现在已经6天了,还在跑,每隔几分钟还在打印日志,所以可以知道程序还在继续跑,请问这正常吗?我是CPU的电脑在跑。
example_6 我好像没跑过,所以我无法给一个答案多长时间能跑好,我建议你可以到rlpyt的GitHub上向作者提issue提问
你好,我在运行rlpyt/rlpyt/project/safe/experiment/script/train/train-cppo. py时,会报错找不到文件夹test,在整个rlpyt中搜了搜,好多地方都出现了这个出现这个错误的代码“log_dir=“test””,请问这是怎么回事呢?这个test在哪里呢?请赐教
你好,请问rlpyt/rlpyt/project/safe/experiment/script/train_cppo.py中的“log_dir=“test””这个文件夹在哪里呢,我看到这个框架里好多地方出现了这一句,好多地方都需要这个test文件夹,但我找不到…拜托拜托帮我看看好吗
太久了,有点不确定了,但应该是这样:
log_dir表示的是日志目录,是程序运行过程中会生成的目录,不应该是事先存在的。
哇,大佬居然回复我了,谢谢你