这里是本仓库真正的教材正文。
lessons/*.py 是可以运行的实验,但只看代码不等于学会。建议每章严格按下面顺序学习:
- 先读本章的“问题背景”和“运行前预测”。
- 不运行代码,自己解释方程每一项。
- 打开对应 Python 文件,对照教材逐段阅读。
- 运行实验,查看终端输出和
outputs/图片。 - 用教材中的预测解释结果。
- 完成至少一个“动手实验”,每次只改一个变量。
- 用自己的话写下:改了什么、为什么变化、证据是什么。
理解 Python、Brian2、代码生成目标和编译器之间的关系。学会把环境错误定位到正确层次。
从漏积分直觉出发,推导指数解和第一次脉冲时间,理解连续方程、阈值、重置、不应期和离散时间步。
理解群体变量、子组、白噪声、随机种子和栅格图。区分参数异质性与随时间随机波动。
理解 source、target、i、j、权重、on_pre 和延迟。运行前计算每条响应的到达时刻和幅度。
比较 TimedArray、PoissonInput、SpikeGeneratorGroup 和 PoissonGroup 的建模含义与计算代价。
区分连续状态、离散脉冲和群体率。学习从研究问题倒推 Monitor,而不是盲目保存所有数据。
从痕迹变量推导 STDP 学习窗,理解前后事件、权重边界和 event-driven 方程。
学习显式 Network、调度、run_regularly、store/restore 和随机状态恢复,建立公平对照实验。
从点神经元过渡到电缆模型,理解形态、区室、膜电流密度、点电流、比膜电容和轴向电阻。
区分动态变量、参数和子表达式,理解自定义事件条件、事件动作与 EventMonitor。
理解 NumPy、Cython 和 C++ standalone,区分墙钟时间、内部 profiling、编译开销和真实优化。
把外部随机输入、E/I 子组、随机循环连接、不同权重与延迟、栅格图和群体率组合起来。学习用期望连接数和输入量级检查参数。
读完一章后,不看教材回答:
- 本章的研究问题是什么?
- 模型保留了现实中的哪些机制,又省略了哪些?
- 每条方程的左边和右边分别是什么?
- 连续更新和离散事件分别发生在哪里?
- 哪些量属于神经元、突触、群体或外部实验条件?
- 输出图中的每个轴和每种标记代表什么?
- 改变一个参数后,你能否在运行前预测方向?
如果只能复述 API 名称,还没有真正理解这一章。
每次改参数时记录:
实验问题:
只改变的参数:
修改前预测:
运行结果:
支持或反驳预测的证据:
如果不同,可能原因:
下一步实验:
这个格式会迫使你把“看起来有变化”变成可检验的解释。
从仓库根目录运行单章:
.\.venv\Scripts\python.exe lessons\01_first_neuron.py运行全部实验:
.\.venv\Scripts\python.exe run_all.py图片和文本报告位于:
outputs/
本教程负责建立概念和推理链,官方文档负责提供完整参数与 API 细节。
推荐顺序:
- 先用本教程理解“为什么”。
- 再打开对应章末的官方链接查询完整选项。
- 遇到报错时阅读 Brian2 的完整错误信息。
- 不要只搜索一段可复制代码,要确认它使用的版本、单位和模型假设。