Python|人工智能大报告(FlappyBird游戏AI训练)作业练习
环境配置
- Pycharm 2020.1.5
- Python3.8
- CUDA(10.1)和cudnn(7.6.0)
- 需要安装的库有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”类似此方法即可
- 运行main.py可以看到小鸟进行永无止境的训练,训练完一轮后就将其经验存入经验包,下图中是刚开始训练7轮后的经验包:
文章图片
训练前6小时小鸟还无法经过第一根柱子,6小时后才开始经过第一条柱子,在main.py代码中下面一条语句修改成第一次的经验包:01即第一次的结果:
文章图片
。
运行后可以看到小鸟会往上飞,然后撞上柱子而失败。
文章图片
- 训练一共14小时左右之后,已经有训练了342轮了,所产生的如下的经验包:
文章图片
然后修改测试用的main.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)版本。如果在下列目录
文章图片
- 解决Could not load dynamic library ‘cudnn64_7.dll‘; dlerror cudnn64_7.dll not found。在NVDIA官网下载cudnn(7.6.0)版本,需要注册登录NVDIA才能下载,下载后需要将cuda文件夹下的对应文件拷贝到下面对应三个的文件夹中即可。
文章图片
运行成功后会出现如下结果:
文章图片
FlappyBird项目:
文章图片
项目文档目录:
文章图片
视频演示:
人工智能(FlappyBird)+作业
资源下载链接:
【Python|人工智能大报告(FlappyBird游戏AI训练)作业练习】人工智能大报告+作业练习.zip-机器学习文档类资源-CSDN下载
推荐阅读
- 我要做大厨
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 知识
- 三十年后的广场舞大爷
- 奔向你的城市
- 村里的故事|村里的故事 --赵大头
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 汇讲-勇于突破
- python学习之|python学习之 实现QQ自动发送消息