上一版只有章节标题和局部代码注释,学习者仍然不知道:
- 当前要解决什么问题,以及为什么需要这个 Brian2 对象。
- 数学方程从哪里来,每个符号和单位分别表示什么。
- Brian2 如何把连续动力学、离散事件和数值积分组织在一起。
- 运行输出为什么会是当前结果,图应该从哪里开始看。
- 修改参数后应该预测什么,出错时应怎样定位。
| 阶段 |
状态 |
产出 |
| 1. 确定授课模板并核对技术细节 |
完成 |
统一章节结构、准确性检查 |
| 2. 编写第 0 至 5 章 |
完成 |
入门与基础教材 |
| 3. 编写第 6 至 10 章及综合项目 |
完成 |
进阶教材 |
| 4. 重写 README 与课程导航 |
完成 |
学习入口、章节链接 |
| 5. 内容检查与运行验证 |
完成 |
完整性检查、测试结果 |
- 不逐字翻译显而易见的 Python 语句。
- 在每个关键概念块之前解释“为什么这样写”。
- 对方程、物理单位、事件、监视器和网络连接给出初学者可读的中文说明。
- 保持所有模型参数和运行结果不变。
创建一套中文、可运行、循序渐进的 Brian2 教程项目。学习者完成后,应能独立建立脉冲神经网络模型、记录和分析结果、组织复杂仿真,并理解 Brian2 的性能优化与代码生成能力。
- 安装、单位系统与最小仿真
NeuronGroup 方程、阈值、重置、不应期和随机性
Synapses 连接、延迟、事件、突触可塑性
SpikeGeneratorGroup、PoissonGroup、TimedArray 等输入
StateMonitor、SpikeMonitor、PopulationRateMonitor
Network、store/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 枚举文件后传入 |