# DynamicENN **Repository Path**: U238/dynamic-enn ## Basic Information - **Project Name**: DynamicENN - **Description**: 没什么用的项目,自己测试玩玩 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-15 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 动态神经进化网络项目 ## 项目简介 这是一个实验性的动态神经网络项目,模拟人类神经元的进化过程。 ### 核心特性 - ✅ 动态网络自动演化(根据性能自适应调整结构) - ✅ MNIST手写数字识别 - ✅ 豆包对话Agent(AI辅助决策) - ✅ 游戏控制Agent(计划中) - ✅ ONNX模型导出 - ✅ Agent间协作框架 ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt # 首次使用需要安装Playwright浏览器 playwright install chromium ``` ### 2. 启动Agent控制中心 #### 交互式模式(推荐) ```bash python main.py ``` 菜单选项: ``` 【对话Agent】 1. 启动豆包对话Agent 【游戏Agent】 2. 启动GT Portable游戏控制Agent 【Agent测试】 3. 测试Agent基础框架 4. 测试豆包Agent 【其他】 5. 查看Agent文档 6. 退出 ``` #### 命令行模式 ```bash # 启动豆包Agent python main.py --mode chat # 以无头模式运行Agent(不显示浏览器) python main.py --mode chat --headless # 启动游戏Agent python main.py --mode game # 测试Agent框架 python main.py --mode test # 查看文档 python main.py --mode usage ``` ## 功能说明 ### 1. 豆包对话Agent **位置**: `agent/chat.py` **功能:** - 使用Playwright自动化浏览器 - 与豆包AI进行智能对话 - 支持发送文字和图片 - 获取AI决策建议 - 交互式对话模式 **使用示例:** ```python from agent.chat import DoubaoChatAgent async def chat(): agent = DoubaoChatAgent(headless=False) await agent.start() await agent.open_doubao() # 发送文字 response = await agent.chat("你好") # 发送图片 await agent.send_image("test_images/0.png", "识别这张图片") await agent.close() asyncio.run(chat()) ``` **交互命令:** - 输入文字:直接对话 - 输入 `image <路径>`:发送图片 - 输入 `quit`:退出 **注意事项:** - 首次运行需要安装浏览器:`playwright install chromium` - 需要在浏览器中手动登录豆包 - 可能需要调整选择器以适应页面变化 ### 2. 游戏控制Agent(计划中) **位置**: `agent/game_gt_portable.py` **功能:** - 控制GT Portable赛车游戏 - 获取游戏画面 - 由豆包Agent指导决策 - 自动执行游戏动作 **计划架构:** ``` 游戏画面 → 豆包Agent分析 → 决策建议 → 游戏Agent执行 → 游戏控制 ``` ### 3. Agent基础框架 所有Agent继承自 `agent.BaseAgent`: ```python from agent import BaseAgent class MyAgent(BaseAgent): async def initialize(self): """初始化Agent""" pass async def act(self, observation): """执行动作""" pass async def reset(self): """重置Agent状态""" pass ``` ## MNIST相关功能(独立运行) 虽然main.py专注于Agent,但项目仍保留MNIST功能,可以独立运行: ```bash # 训练模型 python mnist_dynamic_v2.py # 测试模型 python test_mnist_onnx.py # 生成测试图片 python generate_mnist_samples.py # 快速测试 python quick_test.py # 验证模型 python validate_model.py ``` 详细文档请查看 `USAGE.md` ## 项目结构 ``` DynamicENN/ ├── main.py # 主程序入口 ├── agent/ # Agent相关 │ ├── __init__.py # Agent基类定义 │ └── chat.py # 豆包对话Agent ├── mnist_dynamic_v2.py # MNIST训练脚本 ├── test_mnist_onnx.py # ONNX模型测试 ├── generate_mnist_samples.py # 生成测试图片 ├── quick_test.py # 快速测试 ├── validate_model.py # 验证模型结构 ├── requirements.txt # Python依赖 ├── USAGE.md # 详细使用文档 ├── mnist.onnx # 训练后的ONNX模型 ├── test_images/ # 测试图片 │ ├── 0.png │ ├── 1.png │ └── ... └── mnist_data/ # MNIST数据集 ``` ## Agent架构设计 ### Agent类型 1. **对话Agent (`chat.py`)** - 与豆包AI对话 - 可以作为"老师"指导其他Agent - 支持多模态交互(文字、图片) 2. **游戏Agent (计划中)** - GT Portable赛车控制 - 由对话Agent指导决策 ### Agent工作流 ``` 环境观测 → Agent思考 → 执行动作 → 环境反馈 → Agent学习 ↑ ↓ └────── 对话Agent辅助决策 ─────────────┘ ``` ## 网络演化策略 网络会根据性能停滞情况自动演化: 1. **add_hidden_layer**: 添加新的隐藏层 2. **increase_width**: 扩展隐藏层的神经元数量 3. **add_batchnorm**: 添加BatchNorm层 4. **add_dropout**: 添加Dropout层 ## 技术栈 - **深度学习**: PyTorch, torchvision - **模型导出**: ONNX, ONNX Runtime - **浏览器自动化**: Playwright - **数据处理**: NumPy, Pillow, scikit-learn ## 常见问题 ### Q: Playwright安装失败 A: 运行以下命令安装浏览器: ```bash playwright install chromium ``` ### Q: 豆包Agent无法找到输入框 A: 可能需要调整选择器。检查网页元素结构并更新 `agent/chat.py` 中的选择器。 ### Q: MNIST数据集下载慢 A: PyTorch会自动使用最快的镜像源。如果仍然慢,检查网络连接。 ## 开发路线图 - [ ] 游戏控制Agent (GT Portable) - [ ] 强化学习Agent - [ ] 更多对话模型支持 - [ ] Agent间协作框架 ## 贡献 欢迎贡献代码和建议! ## 许可证 MIT License