Win10搭建gym运行atari游戏pong

2022.06.07
Cauchyoooo
Windows10搭建Gym-Atari环境

本人由于做某个大作业,需要用到强化学习。各种教程参差不齐(比如各种转载复制粘贴的),导致我踩了很多坑。

参考仅供参考

参考1:迷途无归的博客
参考2:_李子树_的博客

可涉及的版本号(仅供参考)
python = 3.9.7
gym = 0.24.0
gym-notices = 0.0.7
ale-py = 0.7.5
atari-py = 1.2.2

1.VS下载安装(C++编译器)

这里是为了避免“ale_interface/ale_c.dll OSError: [WinError 126] 找不到指定的模块”这一个error。

VS下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/

VSDownLoad

勾选红框此项安装

咩啊

2.pip安装各种库

win+r打开运行,输入cmd,打开命令行(或者Anaconda Prompt)看自己python环境配置吧,如果Anaconda有新建虚拟环境,记得conda activate [虚拟环境名]切换环境。(如何创建虚拟环境可参考:https://zhuanlan.zhihu.com/p/94744929,镜像可以加速下载啥的)

由于本人也在踩坑过程中反复install和uninstall,所以下面部分库是必需的,部分库是多余的

pip install gym[atari]

这条会装下图所示的一些包,因为我已经装了,就展示一下。
gymatari

pip install ale-py

ale-py

以上两个应该是必要的,以下的就不知道了。

有的教程说要装cmake,我现在也不知道要不要。这个东西用清华的镜像源下载比较块。

pip install cmake

这个我也不知道具体什么用的,经常超时(没科学上网,github随缘)

pip install --no-index-f https://github.com/Kojoley/atari-py atari_py

游戏开发模块,计算机视觉库…?

pip install pyglet
pip install opencv-python

3.导入ROMS

据说是版本更替问题,导致需要手动导入某些东西。

就是这个Error
errornm

先到网站[http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html]下载
咩啊

然后解压
冇啊

然后有人告诉你要用,命令行进入到这个ROMS文件夹所在的文件夹,图中是Roms,然后运行该命令

ale-import-roms ROMS/

路径对了,能行就行。反正我是跑几次都RunTime Error,就放弃这条命令了。

那么上面那条就不管了,改用AutoRom辅助导入ROMS。

pip install autorom

谢谢

然后再输入

AutoROM --accept-license

就会自动导入了。楼主这步能成功导入ROMS了,如果报错可能就要出门右转自己查了。

4.代码测试

楼主用的Anaconda

1)检验gym是否成功安装

import gym

下面就是没什么大碍,能用。
在这里插入图片描述

2)打印游戏目录

from gym import envs
env_names = [spec.id for spec in envs.registry.all()] 
for name in sorted(env_names): 
    print(name)

好

反正能跑,主要是看名字的。

3)跑游戏

env = gym.make("Pong-ram-v4", render_mode='human')
observation = env.reset()
for _ in range(1000):
#     env.render()
    action = env.action_space.sample()
    observation, reward, done, info = env.step(action)

    if done:
        observation = env.reset()
env.close()

这里注释掉了env.render(),很多代码示例都是env=gym.make("xxx"),然后在循环里用env.render(),我认为是版本问题,我如果用那个代码,会给我报错TypeError render() missing 1 required positional argument: ‘mode’,我另一个同学用gym==0.19.0那个版本就不会。然后根据官方提示,这个render有三种模式humanrgb_arrayansi,具体的可跳转该博客Desny的博客了解。

这个版本就要在环境创建的时候选择render_mode

然后这里跑出来是这样的,运动不会很快。有的动画会跑很快,我也不晓得是啥子原因,查过又忘了。OHHHHH
在这里插入图片描述

5.吐槽

楼主刚跑出来就来写blog了,可能还有很多其他的bug没有照顾到的。菜菜,捞捞,勿喷。

对了,我还遇到过ModuleNotFoundError: No module named ‘gym.envs.atari这个报错,可能是我后面Anaconda里面的包卸载重装还是啥导致一些文件丢失啥的造成的,我把python下的Lib/site-packages里关于gym和ale的包复制到Anaconda的Lib/site-packages里覆盖就没事了,当然也有人说是缺少那个pip install --no-index-f https://github.com/Kojoley/atari-py atari_py,咱不得而知。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cauchyoooo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值