今天给对脉冲神经网络(Spiking Neural Network, SNN)的同学介绍一个从相关领域论文中发现的关于模型和使用都相当成熟的一个工具,如果去年我刚开始还尝试使用matlab自己搭建SNN时能够看到相关资料,就会少走很多弯路了。而且相较于nest,这个也不限制平台,只要有python环境即可,可以说是相当方便了。
下面的内容基本都是brain官网以及相关项目网页信息的翻译,如果需要更进一步的了解直接点击相关链接即可,希望对脉冲神经网络研究相关的同学一点帮助。
The Brian Simulator | The Brian spiking neural network simulator
介绍
Brian 是一个免费的开源模拟器,用于刺激神经网络。它以 Python 编程语言编写,几乎在所有平台上都有售。我们认为,模拟器不仅应该节省处理器的时间,而且应该节省科学家的时间。因此,Brian 的设计易于学习和使用,非常灵活且易于扩展。
使用详细教程: Brian 2 Tutorials
详细介绍文档:Brian 2 documentation
github项目地址:brian-team/brian2
优势
易于使用
Brian 具有强大且易于理解的语法,只需几行代码即可定义、运行和绘制神经模型。
我们有简单的指南,让你开始安装和学习Python和brain,和详细的文件,以帮助您掌握一切barin所提供的。
灵活
详细的生物物理霍奇金-赫克斯利模型?减少两个可变泄漏集成和火神经元?尚未添加到其他模拟器的新突触模型?
没问题,只需在标准数学符号中写下方程并运行它。
性能
1952年,霍奇金和赫克斯利模拟了他们的鱿鱼巨型轴心模型。他们花了三个星期使用手工操作的布伦斯维加机械计算器。幸运的是,你不必等那么久。brain可以实时模拟成千上万的神经元。
Brian 使用运行时代码生成来表示最先进的性能,自动将方程转换为低级别的C++代码,在不需要任何用户输入的情况下编译和运行它们。
可靠
Brian 已经十多岁了,所以你可以依靠它给出准确的结果。我们有一个广泛的测试套件,可以捕获任何错误,并确保它在所有平台上运行。我们继续研究brain,大约每六个月发布一个新版本。
并且,我们帮助您确保您的代码没有错误。如果您尝试编写一个维度不一致的方程,我们会告诉你。如果您为差分方程指定的解算器不稳定,我们会通知您。
使用广泛
Brian 已成功用于数百项建模研究,其中许多研究都使他们的代码可以免费在线下载。它用于流行的计算神经科学教科书神经元动力学(Gerstner等)中的编码练习。
Brian 还拥有一个充满活力的软件包生态系统,这些软件包都建在它上面。
在线程序示例
%matplotlib inline
from brian2 import *
from brian2tools import *
import ipywidgets as ipw
prefs.codegen.target = 'numpy'
def model(N=20, R_max=150, f=10, w=0.1, p=0.5, tau=5, tau_t=50, delta_t=0.1):
# Get parameters
R_max = R_max*Hz
f = f*Hz
tau = tau*ms
tau_t = tau_t*ms
duration = 200*ms
# Simulation code
G = PoissonGroup(N, rates='R_max*0.5*(1+sin(2*pi*f*t))')
eqs = '''
dV/dt = -V/tau : 1
dVt/dt = (1-Vt)/tau_t : 1
'''
H = NeuronGroup(1, eqs, threshold='V>Vt', reset='V=0; Vt += delta_t', method='linear')
H.Vt = 1
S = Synapses(G, H, on_pre='V += w')
S.connect(p=p)
# Run it
MG = SpikeMonitor(G)
MH = StateMonitor(H, ('V', 'Vt'), record=True)
run(duration)
# Plotting code
figure(figsize=(15, 4))
subplot(131)
brian_plot(MG)
title('Source neurons (Poisson)')
subplot(132)
plot(zeros(N), arange(N),