IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 人工智能大报告(FlappyBird游戏AI训练)作业练习 -> 正文阅读

[游戏开发]人工智能大报告(FlappyBird游戏AI训练)作业练习

环境配置

  1. Pycharm 2020.1.5
  2. Python3.8
  3. CUDA(10.1)和cudnn(7.6.0)
  4. 需要安装的库有gym(0.18.3)、pygame(2.0.1)、tensorflow(2.2.0)、tensorflow-gpu(2.2.0)、Keras(2.4.3)上面的库可以通过在Pycharm终端运行”pip install gym 0.18.3”类似此方法即可

开始训练

  1. 运行main.py可以看到小鸟进行永无止境的训练,训练完一轮后就将其经验存入经验包,下图中是刚开始训练7轮后的经验包:

训练前6小时小鸟还无法经过第一根柱子,6小时后才开始经过第一条柱子,在main.py代码中下面一条语句修改成第一次的经验包:01即第一次的结果:

。?

运行后可以看到小鸟会往上飞,然后撞上柱子而失败。

  1. 训练一共14小时左右之后,已经有训练了342轮了,所产生的如下的经验包:

然后修改测试用的main.py代码进行测试:

测试结果如下:

?

? ? ? ??? ? ??? ? ? ? ?

从上图中可以看到在训练多次后,AI能够达到人类几乎达不到的成绩,而且训练越久其成绩会越好。

  1. 文件解释:

game/control.py 控制小鸟的运动可以按键盘向上键进行控制,其优先级高于智能体(AI)。

?game/element.py 构建FlappyBird 游戏配置GUI界面,使其可视化观看,主要是将其各类元素图片结合到一个画面中显示。

?game/engine.py 应用pygame游戏引擎后端,运行游戏所需要的架构支持。

?play.py 主要是游戏运行的,将游戏界面与游戏引擎结合起来,运行游戏,并能够通过键盘来控制小鸟,直接运行是人工玩游戏,而不是智能体。

Net.py 构建神经网络,对数据进行卷积、池化、卷积、卷积、全连接,输出out1、out2.

agent.py 产生训练时所需要的数据经验包,用于存储AI在游戏训练过程中的动作和激励状态等,将其读取或写入给智能体,然后智能体就能够应用这些经验来进行游戏了。

main.py 主要是训练游戏AI,将训练时的数据传给agent.py包,进行存储工作,可以中途停止,但是其训练的结果依然存储好的,下次运行修改刚开始读取的经验包即可。

test.py 主要用来查看训练的结果的,修改读取经验包的代码即可看到最新的训练结果。

常见的错误或警告

  • 安装tensorflow遇到ImportError: Could not find 'cudart64_101dll'错误解决方法之一:需要安装CUDA(v10.1)版本。如果在下列目录

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1下搜索cudart64,看是否有cudart64_101.dll,如果是其他名字就改为此名字。如果成功后会返回:

  • 解决Could not load dynamic library ‘cudnn64_7.dll‘; dlerror cudnn64_7.dll not found。在NVDIA官网下载cudnn(7.6.0)版本,需要注册登录NVDIA才能下载,下载后需要将cuda文件夹下的对应文件拷贝到下面对应三个的文件夹中即可。

运行成功后会出现如下结果:

?FlappyBird项目:

项目文档目录:

?

视频演示:

人工智能(FlappyBird)+作业

资源下载链接:

人工智能大报告+作业练习.zip-机器学习文档类资源-CSDN下载

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:48:06  更:2021-10-12 23:48:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:41:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码