python玩转街机游戏,操作亲民!

Python库MAMEToolkit允许在Linux上用强化学习算法训练街机游戏,如街霸。工具包提供分步运行仿真器、性能基准测试和ConvNet智能体等功能,支持自定义算法与游戏交互,通过内存地址跟踪游戏状态。在特定硬件配置下,可实现超过正常游戏速度的运行。
摘要由CSDN通过智能技术生成

这是一个允许你在几乎任何街机游戏中训练你的强化学习算法的Python库,它目前在Linux系统上可用。通过这个工具包,你可以定制算法逐步完成游戏过程,同时接收每一帧的数据和内部存储器地址值以跟踪游戏状态,以及发送与游戏交互的动作。

安装

GitHub地址:github.com/M-J-Murray/MAMEToolkit/blob/master/README.md

你可以用pip安装这个库,只需运行以下命令:

pip install MAMEToolkit

演示:街霸

街霸是史上最经典的游戏之一。现在工具包内包含的街霸版本是街头霸王3:三度冲击(Japan 990608, NO CD),我们以此为例,用以下代码写一个随机智能体:

import random

from MAMEToolkit.sf_environment import Environment

 

roms_path = "roms/"

env = Environment("env1", roms_path)

env.start()

while True:

   move_action = random.randint(0, 8)

   attack_action = random.randint(0, 9)

   frames, reward, round_done, stage_done, game_done = env.step(move_action, attack_action)

   if game_done:

       env.new_game()

   elif stage_done:

       env.next_stage()

   elif round_done:

       env.next_round()

支持hogwild!

hogwild!? Niu等人引入了一个叫做 Hogwild! 的更新策略,可以使 SGD 可以在多 CPU 上并行更新。处理器在无需对参数加锁的情况下就可以访问共享内存。但仅在输入的是稀疏数据时才有效,因为每次更新仅修改所有参数的一小部分。他们展示了在这种情况下,更新策略几乎可以达到一个最优的收敛率,因为处理器不太可能覆盖掉有用的信息。

from threading import Thread

import random

f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值