Retro-用于强化学习智能体训练的各种有趣的游戏环境集合
目录
- 步骤
- 安装
- 测试
- 查看游戏列表
- issue
- 一、单智能体环境
- 90后大概都玩过的游戏环境
- 冒险岛系列
- 忍者神龟
- 二、多智能体环境
https://openai.com/blog/gym-retro/
步骤
安装
pip3 install gym-retro
测试
在jupyter notebook中输入以下代码
import retrodef main():env = retro.make(game='Airstriker-Genesis')obs = env.reset()while True:obs, rew, done, info = env.step(env.action_space.sample())env.render()if done:obs = env.reset()env.close()if __name__ == "__main__":main()
如果有画面出现则表明安装成功!
查看游戏列表
retro.data.list_games()
运行上面这段代码会输出很多游戏名字。再试一试env = retro.make(game='AdventureIslandII-Nes')
,结果报错,下面开始解决这个问题。
issue
非常重要的注意事项:
如果ROM带有.bin扩展名,需要将其重命名为具有该系统正确的扩展名。如Atari类型的,需要改成.a26,以便python -m retro.import成功!
.md:世嘉创世纪(Mega Drive)
.sfc:超级任天堂娱乐系统
.nes:任天堂娱乐系统
.a26:Atari 2600
.gb:任天堂游戏男孩
.gba:任天堂Game Boy Advance
.gbc:任天堂游戏男孩Color
.gg:世嘉游戏装备
.pce:NEC TurboGrafx-16
.sms:世嘉Master System
报错:
You need to import the roms they are not provided by default!!!
所以有时候我们创建环境,如env = retro.make(game='1942-Nes')
会出现以下报错:
FileNotFoundError: Game not found: 1942-Nes. Did you make sure to import the ROM?
解决方案:
- 从http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html 下载zip文件
- 解压Roms.rar到ROMS.rar,解压ROMS.rar找到Space Invaders (1980) XXXXXX,此时文件都是.bin扩展名,需要修改,参照上面的注意事项
- 在终端中cd到ROMS.rar所在目录 如 C:\Users\haha\Desktop\Roms\ROMS
- 输入python -m retro.import .(不要忘记这个点) 如C:\Users\haha\Desktop\Roms\ROMS>python -m retro.import .
- Importing 游戏 就成了!
- 注意,这里还只是增加了部分Atari游戏,像上述报错并没有直接解决,因为1942-Nes不是.a26而是Nes。你只需要到网上下载相应报错的游戏,然后按照步骤2~4执行就好了。
未完待续……
一、单智能体环境
按照上面的解决方法,我们可以更进一步,自己到网上下载一些游戏,比如Nes类型的。接下来我们试一下效果
import retrodef main():env = retro.make(game='AdventureIslandII-Nes')obs = env.reset()while True:obs, rew, done, info = env.step(env.action_space.sample())env.render()if done:obs = env.reset()env.close()if __name__ == "__main__":main()
运行之后得到如下结果,成功!算法部分留给大家去探索吧。
90后大概都玩过的游戏环境
冒险岛系列
AdventureIslandII-Nes
AdventureIsland3-Nes
忍者神龟
TeenageMutantNinjaTurtlesTournamentFighters-Nes 这是格斗版的
二、多智能体环境
Retro提供了一些多智能体的环境
TODO
Retro-用于强化学习智能体训练的各种有趣的游戏环境集合相关推荐
- MATLAB强化学习实战(一) 强化学习智能体训练总览
强化学习智能体训练总览 简介 训练算法 情节管理器 保存候选智能体 并行计算 GPU加速 验证训练后的策略 环境验证 简介 创建环境和强化学习智能体后,您可以使用训练功能在环境中训练智能体. 要配置您 ...
- MATLAB强化学习实战(十三) 使用强化学习智能体训练Biped机器人行走
使用强化学习智能体训练Biped机器人行走 两足机器人模型 创建环境接口 选择和创建训练智能体 DDPG Agent TD3 Agent 指定训练选项和训练智能体 仿真训练过的智能体 比较智能体性能 ...
- DeepMind推出「控制套件」:为「强化学习智能体」提供性能基准
来源:arxiv 作者:Yuval Tassa, Yotam Doron, Alistair Muldal, Tom Erez,Yazhe Li, Diego de Las Casas, David ...
- MATLAB强化学习工具箱(十二)强化学习智能体创建总览
强化学习智能体创建总览 强化学习介绍 内置智能体 选择智能体类型 自定义智能体 关于强化学习的更多介绍 强化学习介绍 强化学习的目标是训练智能体在不确定的环境中完成任务.智能体从环境中接收观察和奖励, ...
- 伯克利AI研究院解析「反向课程学习」,改善「强化学习智能体」并应用于机器人技术
原文来源:arXiv 作者:Wieland Brendel.Jonas Rauber.Matthias Bethge 「雷克世界」编译:嗯~阿童木呀.哆啦A亮 众所周知,强化学习(RL)是一种强大的技 ...
- 综合LSTM、transformer优势,DeepMind强化学习智能体提高数据效率
©作者 | 陈萍.杜伟 来源 | 机器之心 来自 DeepMind 的研究者提出了用于强化学习的 CoBERL 智能体,它结合了新的对比损失以及混合 LSTM-transformer 架构,可以提高处 ...
- 使用Amazon SageMaker RL 和Unity训练强化学习智能体
[更新记录] 2022年3月25日 更新原始内容 本文目录结构 1. Overview of solution 2. Building a Docker container 3. Unity envi ...
- MATLAB强化学习实战(八) 训练多个智能体执行协作任务
训练多个智能体执行协作任务 创建环境 创建智能体 训练智能体 智能体仿真 本示例说明如何在Simulink®环境上设置多智能体训练. 在该示例中,您训练了两个智能体以协同执行移动对象的任务. 2020 ...
- 使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)
如何让AI玩会贪食蛇,甚至比你厉害 概述 构建问题(强化学习求解的一般步骤) 环境 动作定义 状态定义 奖励设计 训练奖励值收敛图 采用第4种状态定义方法 初步训练效果 最终训练效果 模型泛化迁移能力 ...
最新文章
- WEB-INF目录与META-INF目录的作用
- 与疫情赛跑|武汉火神山医院施工视频和现场画面
- Scala 类中声明方法
- db2增加decimal类型字段小数位_05725.16.1Hive中decimal类型字段.0结尾数据显示异常问题处理...
- 第14次全天课笔记 20181028 集合、时间、类
- mysql mariadb 10.4_MariaDB 10.4.1发布,流行的MySQL分支版本
- 【java】抽象类下有两个具体子类,子类下有两个实例
- .NET框架的各个版本
- Angularjs的真分页,服务端分页,后台分页的解决方案
- 关于optisystem中的变量解析
- maven:《Maven实战》读书笔记
- android 显示系统时间,Android 实时获取当前时间并显示
- 为什么实对称矩阵要求其正交矩阵,而不是可逆矩阵使其对角化?
- Quantopian 做多大市值科技和消费周期股,做空小市值和消费周期股回测
- 动态图片怎么做?教你一键合成gif动图
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- 智邦国际ERP系统实现手机端扫码汇报生产工序
- 完全卸载office(手动卸载)、微软工具自动卸载、安装Office时提示错误1310、写入文件“GROOVEEX“时错误,请确认您有权限访问该目录
- Who Wants to Be a Millionaire?
- 吴恩达机器学习系列课程笔记——第十一章:机器学习系统的设计(Machine Learning System Design)
热门文章
- 算法导论 第20章 斐波那契堆
- 如果华为拒绝授权5G专利给加拿大会带来什么后果?
- LPP(局部保持投影)以及LE(拉普拉斯映射)的区别以及代码python解读
- 华硕笔记本电脑搜索蓝牙设备问题
- AJAX:无刷新CRUD操作
- 基于Python语言、RSA非对称加密的IRC聊天室客户端
- NetCore实现DbContext接口兼容不同的数据库
- springboot毕设项目威客任务平台系统nd882(java+VUE+Mybatis+Maven+Mysql)
- 大学期间比较好用的几个网站
- gstreamer开发之--- gst-inspect-1.0