【Python & Brain】SNN脉冲神经网络开源模拟器 The Brian Simulator 介绍及相关分享

本文介绍了The Brian Simulator,一个用于模拟脉冲神经网络(SNN)的开源工具,强调其易用性、灵活性、高性能和可靠性。通过Python环境,Brian可以在各种平台上运行,提供丰富的教程和资源,适用于SNN研究和学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给对脉冲神经网络(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), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值