Atari是最经典最常用的离散动作空间强化学习环境,常作为离散动作空间强化学习算法的基准测试环境。Atari可以方便地更改颜色、替换背景、增加干扰物,从而考验强化学习算法的环境适应能力。因此,近年来有很多强化学习环境自适应的相关工作都使用该环境验证算法性能,例如:CURL(ICML, 2020)、LUSR(AAAI, 2021)、SECANT(ICML, 2020)、DBC(ICLR, 2021)、PAD(ICLR, 2021)、SODA(ICRA, 2021)、SEVA(NIPS, 2021)、PIE-G(2022 NIPS)等。
本文基于Linux系统,搭建Atari强化学习环境,也即上述代码的复现。
推荐使用conda创建虚拟环境完成搭建。
查看Linux系统版本,该环境可以在Ubuntu系统下搭建,CentOS缺少图形库,无法搭建。Windows也可搭建,但不推荐。
亲测本方法在Ubuntu18.04和Ubuntu20.04下都可搭建成功。
推荐安装Mujoco200版本,其他版本(Mujoco150、Mujoco210)亲测后续安装过程中报错较多。
(1)下载Mujoco200安装包,mujoco200及之前的版本需要到Roboti LLC下载(https://roboti.us/download.html)
(2)将文件解压到.mujoco/,重命名为mujoco200
(3)下载秘钥(内容如下),地址:https://roboti.us/file/mjkey.txt
也可以新建mjkey.txt文件,复制下面秘钥内容并保存。
(4)将下载的(或自己创建的)mjkey.txt,复制到.mujoco/
(5)添加环境变量
(6)测试,出现下面界面则成功!
官方mujoco_py的版本已经更新到了mujoco_py 2.1(或更加新的版本),匹配mujoco210,而匹配mujoco200应安装mujoco-py的老版本
(1)安装,输入下面命令安装
(2)测试,通过下面样例测试,顺利通过则成功!
(1)安装
方法一:pip命令安装【亲测失败】
pip install gym[all] --no-deps mujoco_py
直接pip 安装,需要排除mujoco_py依赖,或者不直接用pip install gym[all],因为它会默认依赖mujoco_py150版本的,所以刚才好不容易安装好的mujoco200会被卸载掉,然后150的还安装不上…
方法二:下载安装包安装【亲测成功】
下载地址:https://github.com/openai/gym.git
解压,进入文件夹,使用下面命令安装
如果安装出现版本问题,删除setup.py中的版本依赖代码即可。
(2)测试,通过下面代码测试,出现游戏界面则成功!
(1)安装依赖的包
(2)下载bazel安装包,地址:https://github.com/bazelbuild/bazel/releases
(3)修改安装包权限,安装,注意下面命令的version需要根据实际安装包名称替换为具体版本号
(4)添加环境变量
打开 ./bashrc文件,在最后添加下面代码
(1)安装DeepMind Lab的依赖
(2)下载DeepMind Lab
(3)测试
方法一
方法二
(1)下载安装包,地址:https://github.com/denisyarats/dmc2gym
(2)解压,进入文件夹,安装
(1) 因安装包下载速度慢而中断报错 -> 更换国内镜像源
(2)远程连接服务器运行代码报错GLFWError -> 使用改用MobaXterm连接服务器运行,或直接在服务器上运行
GLFW是创建OpenGL上下文,以及操作窗口的第三方库。GUI(Graphical User Interface)指采用图形方式显示的计算机操作用户界面。
用VSCode远程连接服务器运行代码报错详情:
搜到的解决方案:【亲测无效】
看一下当前窗口DISPLAY环境变量的值。在VSCode的Terminal输入:
返回值是空。
解决:
把DISPLAY的值改成 :0.0 。在VSCode的Terminal输入:
结果,报错改为
有效解决方案:使用改用MobaXterm连接服务器运行,或不远程连接,直接在服务器上运行
(3)安装dmc2gym报错 -> 先安装dm_control,再安装dmc2gym
(4)DeepMind Lab测试中,build报错 -> 依赖没有安装全,安装全即可
(5)DeepMind Lab测试中,c++版本报错 -> 在home下文件.bazelrc文件中填写build --cxxopt=-std=c++14
错误:
解决方案:
编辑home下文件.bazelrc (该文件一般都是预先不存在的,编辑后直接保存即可),填写:
build --cxxopt=-std=c++14
(6)使用安装包安装gym报错 -> 删除setup.py中的版本依赖代码
(7)安装dm_control时找不到mujoco200报错 -> 修改代码中mujoco200的路径
将dm_control的setup.py中的36行改为37行
至此,若一切顺利,恭喜你安装成功!
此环境是基于Atari游戏的强化学习代码的基础环境,之后若想复现特定代码,可以基于本环境再安装代码需要的特定Python库,基本可以复现成功!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!