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()

此段的逻辑非常简单,我们使用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()

2)模型表现

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

二、项目小结

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

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Scratch 马里奥是指使用 Scratch 编程语言创建的一个马里奥游戏。Scratch 是一种图形化的编程工具,它允许用户通过拖拽和组合代码块来编写程序,而不需要具备复杂的编程知识。 当使用 Scratch 制作马里奥游戏时,我们可以使用 Scratch 提供的图形和角色库来创建各种场景和角色。比如,可以选择马里奥的精灵图像作为主角,然后使用代码块来实现其移动、跳跃和碰撞等基本动作。此外,还可以添加敌人、障碍物和道具等元素,以增加游戏的挑战性。 为了实现马里奥游戏的基本逻辑,我们可以使用 Scratch 提供的控制流程和事件处理功能。比如,我们可以为马里奥设计触发条件,当马里奥碰到敌人时游戏结束,或者当马里奥碰到道具时得到奖励等。同时,我们可以使用变量和计数器来记录得分、生命值等游戏状态。 Scratch 马里奥的制作过程可以培养孩子们的创造力和逻辑思维能力。通过设计和实现自己的游戏,他们不仅可以提高对编程的理解,还能够锻炼问题解决和团队合作的能力。此外,Scratch 还有一个交流社区,用户可以在其中分享自己的作品,从中获得反馈和启发。 总之,通过使用 Scratch 制作马里奥游戏,学生们可以在创作的过程中学习到编程的基本概念和技能,并且提高他们的创造力和解决问题的能力。 ### 回答2: Scratch是一种编程语言和在线编程平台,允许用户创建互动故事、游戏和动画。而"Mario"是一款广为人知的经典游戏,被许多人喜欢和熟知。 在Scratch中,用户可以使用马里奥作为他们创作的主题或角色之一。他们可以使用马里奥的形象、动画和声音来设计自己的游戏或动画。用户可以使用Scratch的图形化编程块来控制马里奥的动作,比如移动、跳跃、砸块等等。他们可以在Scratch的舞台上设计各种具有挑战性的关卡,使马里奥面临不同的障碍和敌人。用户还可以为马里奥设置得分系统、生命值和时间限制等游戏元素。 通过Scratch,马里奥成为了一个灵活的角色,用户可以自己发挥创意来控制他的行动和故事发展。无论是提高马里奥的技能、设计新的关卡,还是编写对话和剧情,用户都可以根据自己的喜好和创意来定制马里奥的游戏体验。 通过使用Scratch创建马里奥游戏,用户可以提高他们的逻辑思维、问题解决和计算机编程能力。Scratch提供了一个友好和可视化的编程环境,对于新手来说非常容易上手。通过设计和分享马里奥游戏,用户还可以展示他们的创造力,并与全球范围的Scratch社区进行交流和学习。 综上所述,Scratch马里奥是一个通过Scratch平台创建和定制马里奥游戏的过程。这不仅提供了学习和实践编程的机会,还培养了创造力和社区交流的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值