spikingjelly:用于大规模脉冲神经网络训练与推理的 PyTorch 原生框架

spikingjelly:用于大规模脉冲神经网络训练与推理的 PyTorch 原生框架

它解决了什么

SpikingJelly 是一个基于 PyTorch 的框架,旨在简化脉冲神经网络(SNN)的开发、训练和部署。它提供了处理脉冲神经元独特时间动力学所需的基础设施,这些动力学不同于传统的人工神经网络(ANN),同时保持与 PyTorch 生态系统的兼容性。

工作原理

该框架集成了脉冲神经元模型(如 LIFNode)和代理梯度,使得 SNN 能够使用标准的基于梯度的优化方法进行训练。它支持多种加速后端——torchcupytriton——以优化神经元核的执行。对于从传统 AI 转来的用户,它提供了 ANN2SNN 转换工具,将已有的人工神经网络转换为脉冲版本。

适用人群

该框架面向从事神经形态计算、基于脉冲的智能以及能效 AI 的研究者和开发者,也适用于希望将事件驱动数据集整合到机器学习工作流中的用户。

亮点

  • PyTorch 原生 API:使用熟悉的 PyTorch nn.Sequential 和模块模式定义 SNN。
  • 高性能后端:支持 cupytriton,实现更快的神经元执行。
  • 神经形态数据支持:内置访问多种事件驱动数据集(如 ASL-DVS、N-MNIST)。
  • 部署就绪:提供将模型导出到神经形态硬件的接口,支持 NIR、Lava 和 Lynxi。
  • 扩展工具:包括内存高效训练(memopt)和多 GPU 工作负载的分布式执行。

Sources