snake-ai

GitHub
1.8k 398 简单 1 次阅读 1周前Apache-2.0Agent
AI 解读 由 AI 自动生成,仅供参考

snake-ai 是一个基于深度强化学习的人工智能项目,旨在让计算机自动玩转经典的“贪吃蛇”游戏。它通过模拟人类玩家的操作逻辑,解决了传统游戏脚本缺乏灵活性、难以应对复杂局势的问题,能够自主探索策略并不断提升得分上限。

该项目特别适合对人工智能、强化学习感兴趣的开发者、研究人员以及计算机专业的学生使用。用户不仅可以运行预训练好的模型观察 AI 如何高超地操控蛇身避障觅食,还能深入代码内部,复现训练过程,甚至修改算法参数进行二次开发。对于希望入门 PyTorch、OpenAI Gym 或 Stable-Baselines3 等主流深度学习框架的学习者而言,这是一个极佳的实践案例。

snake-ai 的技术亮点在于提供了两种不同架构的智能体版本:基于多层感知机(MLP)的基础版和基于卷积神经网络(CNN)的高级版。其中,CNN 版本凭借更强的图像特征提取能力,在平均得分表现上显著优于 MLP 版本。项目结构清晰,内置了完整的训练脚本、预训练权重文件以及用于可视化训练曲线的 Tensorboard 日志,让用户能直观对比不同模型在不同训练阶段的表现差异,轻松上手实验。

使用场景

某高校人工智能实验室的研究员正在指导学生进行深度强化学习入门实验,需要快速验证不同神经网络架构在经典游戏环境中的表现差异。

没有 snake-ai 时

  • 学生需从零搭建 Pygame 游戏环境与 Gym 接口,耗费数周时间处理环境配置与状态空间定义,严重挤占算法研究时间。
  • 缺乏现成的基准模型(Baseline),难以直观对比多层感知机(MLP)与卷积神经网络(CNN)在相同训练步数下的得分差距。
  • 训练过程缺乏可视化监控,无法利用 Tensorboard 实时观察奖励曲线收敛情况,导致超参数调整如同“盲人摸象”。
  • 代码结构松散,缺少如 check_gpu_status 等实用脚本,新手常在 GPU 调用失败或环境依赖冲突上反复受挫。

使用 snake-ai 后

  • 直接复用内置的完整游戏脚本与预训练权重,学生可在 10 分钟内运行 test_cnn.py 看到高分 AI 演示,立即进入核心算法分析环节。
  • 项目原生提供 MLP 与 CNN 两套代理及对应权重文件,研究员可一键切换模型,量化评估卷积结构在提取游戏画面特征上的优势。
  • 集成 Tensorboard 日志系统,训练过程中的得分波动与损失函数变化一目了然,团队能迅速定位过拟合或探索不足的问题。
  • 配套工具链完善,通过 compress_code.py 优化代码格式以便向大模型提问,配合明确的 Conda 环境指南,大幅降低部署门槛。

snake-ai 将繁琐的环境搭建与基础模型训练标准化,让开发者能从“造轮子”转向专注于强化学习策略的深度优化与对比研究。

运行环境要求

操作系统
  • Windows
GPU
  • 非必需(可选)
  • 如需使用,需 NVIDIA GPU 并安装 CUDA 11.8 (pytorch-cuda=11.8)
  • 未说明具体显存要求
内存

未说明

依赖
notes项目主要在 Windows 11 上测试通过。建议使用 Anaconda 配置环境。若需训练模型,可手动安装支持 CUDA 11.8 的 PyTorch 完整版;若仅运行测试或无 GPU,可使用 CPU 版本。日志和训练曲线可通过 Tensorboard 查看。
python3.8.16
pygame
gym
stable-baselines3
torch>=2.0.0
torchvision
tensorboard
snake-ai hero image

快速开始

SnakeAI

简体中文 | English | 日本語

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

文件结构

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

项目的主代码文件夹为 main/。其中包含 logs/,内含训练过程中的终端输出文本及数据曲线(可通过 TensorBoard 查看);trained_models_cnn/trained_models_mlp/ 分别存放不同阶段的卷积网络模型与感知机模型的权重文件,可用于在 test_cnn.pytest_mlp.py 中进行测试,以观察两种智能体在不同训练阶段的实际游戏表现。

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

运行指南

本项目基于 Python 编程语言,主要使用了 PygameOpenAI GymStable-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.pytest_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.pytrain_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/,即可查看训练过程的交互式曲线图。

致谢

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

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

[1] Human-level control through deep reinforcement learning

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架