基于强化学习的超级马里奥代码实现

本文介绍如何使用强化学习让AI学会玩经典游戏《超级马里奥》。通过结合nes_py、gym_super_mario_bros及stable_baselines3等库,实现了从环境搭建到模型训练再到游戏测试的全过程。最终,AI能够自主控制马里奥完成游戏关卡。

环境

gym_super_mario_bros
nes_py
matplotlib
pytorch
stable_baselines3
numpy

简单介绍

nes_py 库是任天堂开发的专门用于控制游戏的工具,类似于游戏手柄。
gym_super_mario_bros里面有各个关卡的环境模型,这里选用SuperMarioBros-v0第一关。
stable_baselines3是对强化学习新手及其友好的库,基于pytorch进行开发,可以方便的使用各种常用的强化学习算法的代码。

代码


from nes_py.wrappers import JoypadSpace
import gym_super_mario_bros
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
import time
from matplotlib import pyplot as plt
from stable_baselines3.common.vec_env import DummyVecEnv, VecFrameStack
from stable_baselines3 import PPO

from gym.wrappers import GrayScaleObservation

from stable_baselines3.common.monitor import Monitor
from stable_baselines3.common.results_plotter import load_results, ts2xy
import numpy as np
import os
from stable_baselines3.common.callbacks import BaseCallback

env = gym_super_mario_bros.make('SuperMarioBros-v0')
env = JoypadSpace(env, SIMPLE_MOVEMENT)


log_dir = './monitor_log/'
os.makedirs(log_dir, exist_ok=True)

env = Monitor(env, log_dir
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值