© 2026FindAgent  · @simprr
返回列表
l

linyiLYi/snake-ai

An AI agent that beats the classic game "Snake".

⭐

1.8k

Stars

🔱

398

Forks

👁

21

Watchers

📋

25

Issues

PythonApache-2.0创建于 2023/4/25更新于 今天
在 GitHub 上查看
README
由 Gemini 翻译整理

SnakeAI

简体中文 | English | 日本語

本项目包含经典游戏“贪吃蛇”的程序脚本,以及一个能够自动进行游戏的 AI Agent。该智能体使用深度强化学习(Deep Reinforcement Learning)训练而成,包含两个版本:基于多层感知机(MLP)的 Agent 和基于卷积神经网络(CNN)的 Agent,其中后者的游戏平均得分更高。

文件结构

├───main
│   ├───logs
│   ├───trained_models_cnn
│   ├───trained_models_mlp
│   └───scripts
├───utils
│   └───scripts

项目的主要代码位于 main/ 文件夹中。其中 logs/ 包含训练过程的终端文本和数据曲线(可使用 Tensorboard 查看);trained_models_cnn/ 和 trained_models_mlp/ 分别存放不同阶段的卷积神经网络和感知机模型的权重文件,可在 test_cnn.py 和 test_mlp.py 中运行测试,以观察两个智能体在不同训练阶段的实际游戏表现。

另一个文件夹 utils/ 包含两个实用脚本。check_gpu_status/ 用于检查 GPU 是否能被 PyTorch 调用;compress_code.py 可以去除代码中所有的缩进和换行符,将其转换为紧凑的单行文本,便于在向 GPT-4 咨询代码建议时进行交流(GPT-4 对代码的理解能力远超人类,不需要缩进、换行等格式)。

运行指南

本项目基于 Python 编程语言,主要使用 Pygame、OpenAI Gym、Stable-Baselines3 等外部代码库。运行程序的 Python 版本为 3.8.16。建议使用 Anaconda 配置 Python 环境。以下安装步骤已在 Windows 11 系统上测试通过,相关命令适用于控制台/终端(Console/Terminal/Shell)。

环境配置

# 创建一个名为 SnakeAI 的 conda 环境,指定 Python 版本为 3.8.16
conda create -n SnakeAI python=3.8.16
conda activate SnakeAI

# [可选] 若要使用 GPU 进行训练,请手动安装完整版 PyTorch
conda install pytorch=2.0.0 torchvision pytorch-cuda=11.8 -c pytorch -c nvidia

# [可选] 运行脚本测试 PyTorch 是否能成功调用 GPU
python .\utils\check_gpu_status.py

# 安装外部依赖库
pip install -r requirements.txt

运行测试

项目的 main/ 文件夹包含了基于 Pygame 库编写的经典“贪吃蛇”游戏脚本。你可以直接运行以下命令进行游戏:

cd [项目父文件夹]/snake-ai/main
python .\snake_game.py

完成环境配置后,你可以运行 main/ 文件夹中的 test_cnn.py 或 test_mlp.py 来测试并观察两个智能体在不同训练阶段的实际表现。

cd [项目父文件夹]/snake-ai/main
python test_cnn.py
python test_mlp.py

模型权重文件存储在 main/trained_models_cnn/ 和 main/trained_models_mlp/ 文件夹中。两个测试脚本默认调用已训练好的模型。如果你想观察 AI 在不同训练阶段的表现,可以修改测试脚本中的 MODEL_PATH 变量,将其指向其他模型的文件路径。

模型训练

如果需要重新训练模型,可以运行 main/ 文件夹中的 train_cnn.py 或 train_mlp.py。

cd [项目父文件夹]/snake-ai/main
python train_cnn.py
python train_mlp.py

查看曲线

本项目包含了训练过程的 Tensorboard 曲线图。你可以使用 Tensorboard 查看详细数据。建议直接使用 VSCode 内置的 Tensorboard 插件查看,也可以使用传统方法:

cd [项目父文件夹]/snake-ai/main
tensorboard --logdir=logs/

在浏览器中打开默认的 Tensorboard 服务地址 http://localhost:6006/,即可查看训练过程的交互式曲线图。

致谢

本项目使用的外部代码库包括 Pygame、OpenAI Gym、Stable-Baselines3。感谢所有软件开发者对开源社区的无私奉献!

本项目使用的卷积神经网络参考自 Nature 论文:

[1] Human-level control through deep reinforcement learning

贡献者
le
项目信息
默认分支master
LicenseApache License 2.0
创建时间2023/4/25
最近更新今天
GAI 中文摘要

Snake-AI 是一个基于 Python 开发的经典贪吃蛇游戏智能代理项目。该项目利用深度强化学习技术,通过训练智能体实现贪吃蛇游戏的自动操作,从而解决人工手动控制的局限性。

该项目提供了基于多层感知机(MLP)和卷积神经网络(CNN)的两种不同架构的智能代理。内置了完整的模型训练流程,支持通过 Tensorboard 监控训练过程中的日志和数据曲线。项目包含预训练好的模型权重文件,用户可以直接运行测试脚本查看智能体的实际游戏表现。提供了辅助工具脚本,用于检查 GPU 调用状态以及方便代码与大语言模型交互的代码压缩功能。

本方案适用于深度强化学习的初学者或研究者,旨在通过简单的贪吃蛇游戏场景,快速上手理解并验证不同神经网络架构对智能决策的影响。