(一) 项目介绍与本文内容

                  笔者希望通过实践学习强化学习,找了很久,找到一篇很不错的材料,是油管大佬

      做的ai玩马里奥游戏(https://www.youtube.com/watch?v=dWmJ5CXSKdw

      免翻墙:b站转载网址

                   本系列是笔者记录在实践中遇到的各种问题的解决方法和解释。

                   由于是两年前的教材,让本就难装的环境雪上加霜,本文详细记录了安装

      过程与可能遇到的问题,希望可以对想试试强化学习训练游戏AI的朋友有所帮助~

(二) nes_py库与gym-super-mario-bros库

             1)nes_py库

                     nes_py是任天堂游戏的py接口,想要下载gym-super-mario-bros库需要

         优先下载nes_py库。我们运行pip install nes_py, 会遇到第一个问题。

 error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for nes-py
  Running setup.py clean for nes-py
Failed to build nes-py

                     错误提示 缺少microsoft visual c++的生成工具,我们可以免费安装一下安装地址

            然后我们点击社区版免费下载,得到一个VisualStudioSetup.exe,点开后请不要修改下载

            的各种路径,直接继续即可,最后打开如下:

            如图勾选使用C++的桌面开发,右下角可选不用动,直接下载安装,等安装完关掉即可。

                    接下来再次运行pip install nes_py 会发现问题没有得到解决,很多文章就没

             接下来的操作了,事实上,我们还需要把装好的生成文件加入环境变量。

SET DISTUTILS_USE_SDK=1
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64

                如果按照本文上面提的不要改变路径,那打开cmd命令行,依次输入这两行代码即可

               第二行指令有可能会遇  到此处不应有\Common,或者不应有\JAVA\xxx,那是我们JAVA

           的环境变量不对导致的。                   

                       请按照图片所示,修改自己所有包含JAVA的项,PATH里按第一张图,只需要标蓝

             的这一条就够了,系统变量里,请如图设置CLASSPATH和JAVA_HOME.设置完之后就可               重新运行加环境变量的代码了~

                       至此,可以直接pip install nes_py了~

             2)gym-super-mario-bros

                        直接pip install gym-super-mario-bros==7.3.0一般不会有问题

(三) 其他库和版本问题

                 我们安装好后进入编译器,输入官方给的代码进行尝试,查看是否运行正确

from nes_py.wrappers import JoypadSpace
import gym_super_mario_bros
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
env = gym_super_mario_bros.make('SuperMarioBros-v0')
env = JoypadSpace(env, SIMPLE_MOVEMENT)

done = True
for step in range(5000):
    if done:
        state = env.reset()
    state, reward, done, info = env.step(env.action_space.sample())
    env.render()

env.close()

                   运行发现有如下error

ValueError: not enough values to unpack (expected 5, got 4)

               这是因为库版本不对(没看到有任何一篇提到这个问题),我们需要装正确的

      版本的库,具体需要的各个代码如下

##环境##
#pip install gym==0.23
#pip install nes_py==8.1.8
#pip install gym-super-mario-bros==7.3.0
#pip install stable_baselines3==2.0.0
#pip install Optuna

                 重新装完就成功啦~快开启你的强化学习--ai玩马里奥的训练吧~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐