Linux下基于OpenAI提供的baselines代码的强化学习环境设置
配置TensorFlow-GPU
使用Anaconda安装python虚拟环境
% 创建名为baselines的3.6版本python虚拟环境
conda create -n baselines python=3.6
% 切换到baselines环境下
source activate baselines
这里给出我安装TensorFlow时的python、CUDA、CUDNN对应版本号
TensorFlow = 1.14 GPU版
python = 3.6
CUDA = 10.0
CUDNN = 7.6.5
然后依照以下文章步骤完成TensorFlow配置
https://blog.csdn.net/weixin_44136501/article/details/115944689?spm=1001.2014.3001.5501
或者直接使用下方指令也可完成相同效果。
conda install tensorflow-gpu=1.14 -c https://mirrors.ustc.edu.cn/anaconda/pkgs/main/linux-64/
配置baselines
1.下载代码
创建python虚拟环境并成功配置TensorFlow后,下载baseline的代码。
方法一:git clone
git clone https://github.com/openai/baselines.git
% 克隆到指定目录
git clone https://github.com/openai/baselines.git home/usr_name
方法二:进入GitHub网页下载
GitHub地址 下载之后解压到任一目录下
2.预先准备
在配置baselines之前,需要提前下载所需基础库。在终端命令行输入:
sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev
3.安装
% 所在目录切换到baselines解压后目录
cd xxx
pip install -e .
4.测试
pytest runner可以运行baselines全部测试。
pip install pytest
pytest
而如果是首次运行,命令行会连续报错提示缺少Module,根据提示不断安装缺少的第三方库即可。类似以下情况:
总结一下需要安装的库:
pip install matplotlib pandas filelock gym[atari] mpi4py
sudo apt-get install ffmpeg
配置MuJoCo
baselins中一些示例使用了mujoco的环境,如果需要配置请按照以下步骤。
1.下载
从官网上直接下载MuJoCo200 Linux并解压到~/.mujoco200目录
https://www.roboti.us/index.html
mkdir ~/.mujoco
cp mujoco200_linux.zip ~/.mujoco
cd ~/.mujoco
unzip mujoco200_linux.zip
2.注册license
https://www.roboti.us/license.html
在官网注册一个license,教育邮箱注册可以获得一年免费期。
填写个人信息点击提交,随后会收到邮件,其中有Account Number
点击红色图的右侧对应平台可以获得一个程序,在你需要使用mujoco的主机上运行该程序获得对应的Computer ID,将两者都输入点击Register computer再次收到邮件,里面附带了mjkey.txt文件。
随后将该文件拷贝到 ~/.mujoco目录及 ~/.mujoco/mujoco200_linux/bin目录下。
cp mjkey.txt ~/.mujoco
cp mjkey.txt ~/.mujoco/mujoco200_linux/bin
3.添加环境变量
% 打开配置文件
vim ~/.bashrc
% 在文件最末尾处添加两个环境变量
export LD_LIBRARY_PATH=~/.mujoco/mujoco200_linux/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
4.pip安装
pip3 install -U 'mujoco-py<2.1,>=2.0'
python
% python模式下
import mujoco_py
import os
mj_path, _ = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
# [-2.09531783e-19 2.72130735e-05 6.14480786e-22 -3.45474715e-06
# 7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
# 8.50646247e-05 -3.45474715e-06 7.42993721e-06 -1.40711141e-04
# -3.04253586e-04 -2.07559344e-04 -8.50646247e-05 1.11317030e-04
# -7.03465386e-05 -2.22862221e-05 -1.11317030e-04 7.03465386e-05
# -2.22862221e-05]
如果运行没报错则安装成功,baselines不需要再安装mujoco的可视化模块。
5.安装报错
一般输入pip3 install -U 'mujoco-py<2.1,>=2.0'
会出现许多问题
错误一:
Exception:
Missing path to your environment variable.
Current values LD_LIBRARY_PATH=
Please add following line to .bashrc:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yzy/.mujoco/mujoco200/bin
ERROR: Failed building wheel for mujoco-py
Failed to build mujoco-py
ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly
报错提示缺少mujoco环境变量,添加后再次运行该报错就消失了。
% 打开配置文件
vim ~/.bashrc
% 在文件最末尾处添加两个环境变量
export LD_LIBRARY_PATH=~/.mujoco/mujoco200_linux/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
source ~/.bashrc # 重新运行.bashrc文件
错误二:
/tmp/pip-install-tej3oi73/mujoco-py_7336c7d127184370b6ce6a5e5b7bec7f/mujoco_py/gl/osmesashim.c:1:10: fatal error: GL/osmesa.h: No such file or directory
1 | #include <GL/osmesa.h>
| ^~~~~~~~~~~~~
compilation terminated.
error: command ‘gcc’ failed with exit status 1
ERROR: Failed building wheel for mujoco-py
Failed to build mujoco-py
ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly
按照官方的解决方案解决了
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3