Skip to content

Latest commit

 

History

History
100 lines (76 loc) · 4.98 KB

File metadata and controls

100 lines (76 loc) · 4.98 KB

Brian2 完整学习项目计划

2026-06-15 教材化重写

用户反馈

上一版只有章节标题和局部代码注释,学习者仍然不知道:

  • 当前要解决什么问题,以及为什么需要这个 Brian2 对象。
  • 数学方程从哪里来,每个符号和单位分别表示什么。
  • Brian2 如何把连续动力学、离散事件和数值积分组织在一起。
  • 运行输出为什么会是当前结果,图应该从哪里开始看。
  • 修改参数后应该预测什么,出错时应怎样定位。

新的完成标准

  • 每章都有独立 Markdown 教材,不把教学负担压在行内注释上。
  • 每章依次包含:学习目标、前置知识、问题背景、直觉模型、数学拆解、Brian2 语法、分段代码、运行方法、预期现象、常见误区、实验练习和本章小结。
  • 所有概念首次出现时解释来源,不默认读者已经理解神经科学或数值仿真术语。
  • 教材与 lessons/*.pyprojects/*.pyoutputs/ 双向对应。
  • README 成为清晰的课程入口,而不是功能清单。
  • 全部脚本继续运行通过。

重写阶段

阶段 状态 产出
1. 确定授课模板并核对技术细节 完成 统一章节结构、准确性检查
2. 编写第 0 至 5 章 完成 入门与基础教材
3. 编写第 6 至 10 章及综合项目 完成 进阶教材
4. 重写 README 与课程导航 完成 学习入口、章节链接
5. 内容检查与运行验证 完成 完整性检查、测试结果

2026-06-14 教学注释补充

  • 盘点全部课程、辅助脚本和综合项目的现有注释。
  • 为每章补充模型目的、Brian2 语法、参数含义和结果解读注释。
  • 为辅助脚本和综合项目补充流程说明。
  • 运行 run_all.py,确认只增加说明、不改变示例行为。

本轮注释标准

  • 不逐字翻译显而易见的 Python 语句。
  • 在每个关键概念块之前解释“为什么这样写”。
  • 对方程、物理单位、事件、监视器和网络连接给出初学者可读的中文说明。
  • 保持所有模型参数和运行结果不变。

目标

创建一套中文、可运行、循序渐进的 Brian2 教程项目。学习者完成后,应能独立建立脉冲神经网络模型、记录和分析结果、组织复杂仿真,并理解 Brian2 的性能优化与代码生成能力。

范围

  • 安装、单位系统与最小仿真
  • NeuronGroup 方程、阈值、重置、不应期和随机性
  • Synapses 连接、延迟、事件、突触可塑性
  • SpikeGeneratorGroupPoissonGroupTimedArray 等输入
  • StateMonitorSpikeMonitorPopulationRateMonitor
  • Networkstore/restore、调度与自定义操作
  • 多区室模型与 SpatialNeuron
  • 方程、函数、命名空间、子表达式和事件驱动变量
  • NumPy/Cython/C++ standalone 代码生成与性能
  • 调试、可复现性、常见错误和实验组织
  • 一个综合项目

阶段

阶段 状态 产出
1. 调研当前 Brian2 官方功能与本机环境 完成 findings.md、环境结论
2. 创建教程结构和安装入口 完成 README、依赖文件、目录
3. 编写基础到进阶可运行课程 完成 分章 Python 示例
4. 编写综合项目与功能地图 完成 综合网络、完整功能索引
5. 安装依赖并执行验证 完成 测试结果、修复记录

完成标准

  • 每章都有中文解释、可运行代码和观察重点。
  • 示例默认使用非交互绘图后端,可在命令行验证。
  • 核心示例全部运行通过,生成预期输出或图片。
  • README 给出推荐学习顺序和 Brian2 功能全景图。

决策

  • 文件夹名使用中文 Brian2完整教程,示例文件名使用 ASCII,便于命令行操作。
  • 教程以独立 .py 文件为主,减少 Notebook 环境依赖。
  • 对“完整功能”采用功能地图加代表性实例,而不是机械罗列全部 API。
  • 当前 Python 3.11 锁定 Brian2 2.9.0;文档以稳定版 2.10.1 的功能分类作为全景参考。

错误记录

错误 尝试 解决
首次依赖安装命令超过 120 秒 1 检查后台进程并等待完成;Brian2 2.9.0 安装成功
pip show matplotlib 在 GBK 控制台输出许可证时触发 UnicodeEncodeError 1 仅为展示输出编码问题;后续命令启用 PYTHONUTF8=1
Brian2 2.9.0 与 pip 选取的 NumPy 2.4.6 不兼容,导入时报 ndarray.ptp 缺失 1 将 NumPy 锁定为 1.26.4
NumPy 后端运行 SpatialNeuron 时缺少 SciPy 1 添加 SciPy 1.14.1 依赖
综合平衡网络外部输入过弱,运行成功但没有脉冲 1 提高泊松输入频率与单次权重后重新验证
递归统计文件时扫描 .venv 超过 10 秒 1 该统计不影响教程,不再扫描虚拟环境
Windows 下 py_compile 未展开 lessons\*.py 通配符 1 改为由 PowerShell 枚举文件后传入