当前位置:   article > 正文

ai玩游戏(马里奥)项目(机器强化学习)详解 (四) 成果验收与小结_如何训练ai玩游戏

如何训练ai玩游戏

前言

上文我们已经成功的调用卷积网络训练ai并保存了,本文我们将会对训练完成的模型经行验收,并对本项目做一个总结。

注意事项

本文的代码执行有较大概率遇到网上很难搜索到解法的问题,为此,笔者特地写了一篇答疑帖,在本文中遇到问题,请查询问题总结与解法

一、成果验收

1)验收代码

根据上文文末给出的代码,我们在训练之后已经得到训练完成的模型。
在这里插入图片描述
我们需要做的是将模型导入,让他试玩一下马里奥游戏看看到底训练的怎么样。

model = PPO.load('./train/best_model_120000')
state = environment.reset()

while True:
    action, _ = model.predict(state)
    state, reward, done, info = environment.step(action)
    environment.render()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

此段的逻辑非常简单,我们使用PPO.load函数,加载一个训练模型,然后用reset函数重新开始游戏。
接下来,我们让模型预测出行为,将其输入环境,再将环境的变化返还给预测模型形成循环。最后将这个过程用render打印出来即可。
此段完整代码

import gym_super_mario_bros
from nes_py.wrappers import JoypadSpace
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT

from gym.wrappers import GrayScaleObservation
from stable_baselines3.common.vec_env import VecFrameStack, DummyVecEnv

environment = gym_super_mario_bros.make('SuperMarioBros-v0')
environment = JoypadSpace(environment, SIMPLE_MOVEMENT)
environment = GrayScaleObservation(environment, keep_dim=True)
environment = DummyVecEnv([lambda : environment])
environment = VecFrameStack(environment , 4, channels_order='last')

from stable_baselines3 import PPO

model = PPO.load('./train/best_model_120000')
state = environment.reset()

while True:
    action, _ = model.predict(state)
    state, reward, done, info = environment.step(action)
    environment.render()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

2)模型表现

使用之前文章给出的参数训练,训练量100000时可以完成简单的行为,如跳一格的管子等等,在1000000只有双层管子难以跨越。3000000+的训练量可以有效过关。
你可以调节learning_rate来改善学习的performance和速度。

二、项目小结

本项目意在为初次接触强化学习的朋友建立一个基础的概念——强化学习的代码和训练是怎么写的。我们在训练中,调用了很多开源库的算法,让我们的代码非常好写,在50以内就可以完成强化学习的训练。我们之后的项目会一点一点增加难度,帮助大家深入了解~
以后我会更新更多使用python编写的轻量级项目,麻烦在投票中决定以后需要更多什么内容~ 如果没有,欢迎评论留言~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/959457
推荐阅读
相关标签
  

闽ICP备14008679号