SpikingJelly:基于 PyTorch 的脉冲神经网络框架

神经科学 2026-09-25 11 阅读

SpikingJelly 是一个基于 PyTorch 的开源脉冲神经网络(SNN)深度学习框架,提供脉冲神经元建模、训练流程、加速后端与神经形态数据集支持,便于开展 SNN 研究与部署。

这个工具是什么

SpikingJelly 是一个基于 PyTorch 的开源脉冲神经网络(SNN)深度学习框架,面向 SNN 的大规模训练与推理。它采用 PyTorch 原生风格,用户可像定义普通 PyTorch 模型一样定义 SNN,例如使用 layer、neuron 和 surrogate 模块组合网络。框架提供基于激活的 SNN 组件,包括脉冲神经元、替代梯度、有状态与无状态模块,并内置预定义 SNN 模型。其能力覆盖 SNN 建模、训练工作流、性能优化、扩展、数据集、分析以及交换与部署。项目托管于 GitHub,主页为 spikingjelly.readthedocs.io,采用 NOASSERTION 许可证,主要语言为 Python。

核心能力

  • 提供基于激活的 SNN 组件,包括脉冲神经元、替代梯度、有状态与无状态模块,以及预定义 SNN 模型。
  • 支持 PyTorch 原生训练流程、在线学习工具与 ANN2SNN 转换,便于从人工神经网络迁移到脉冲网络。
  • 提供 torch、cupy、triton 三种加速后端,以及 FlexSN 自定义神经元内核和混合精度训练工具(如 fp8)。
  • 支持内存高效训练与分布式训练,并提供神经形态数据集及数据预处理流程。

科研中的典型用法

  • 使用 layer、neuron 和 surrogate 模块搭建 SNN,并在神经形态数据集(如 DVS)上训练分类模型。
  • 将已有 ANN 模型通过 ANN2SNN 转换流程迁移为 SNN,用于脉冲神经网络推理研究。
  • 利用 FLOPs / SynOps / 内存访问分析和推理能耗估计,评估 SNN 模型的计算与能耗特性。

快速上手

SpikingJelly 基于 PyTorch,需先安装 PyTorch、torchvision 和 torchaudio。要求 Python >=3.11、PyTorch >=2.6.0(已在 2.7.1 测试)。安装稳定版:pip install spikingjelly;安装 V2 预发布版:pip install --pre spikingjelly;从源码安装:git clone 仓库后执行 pip install .。可选依赖包括 CuPy 后端(cupy-cuda12x 或 cupy-cuda11x)、Triton 后端(triton==3.3.1)、NIR 交换(spikingjelly[nir])和 Lightning 集成(lightning jsonargparse[signatures])。

生态与相近工具

同领域还有 NIR、Lava、Lynxi 等神经形态工作流相关工具,SpikingJelly 提供与它们的交换接口。若需要基于 PyTorch 的 SNN 建模、训练与 ANN2SNN 转换,可优先考虑 SpikingJelly;若侧重特定神经形态硬件或中间表示,可结合 NIR、Lava 或 Lynxi 接口使用。选择时需根据具体硬件平台、框架生态与部署需求权衡。

项目信息


本文属于《学科研究工具知识库 · 神经科学》第 2 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

评论 共 0 条

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部