spikingjelly:用于大规模脉冲神经网络训练与推理的 PyTorch 原生框架
spikingjelly:用于大规模脉冲神经网络训练与推理的 PyTorch 原生框架
它解决了什么
SpikingJelly 是一个基于 PyTorch 的框架,旨在简化脉冲神经网络(SNN)的开发、训练和部署。它提供了处理脉冲神经元独特时间动力学所需的基础设施,这些动力学不同于传统的人工神经网络(ANN),同时保持与 PyTorch 生态系统的兼容性。
工作原理
该框架集成了脉冲神经元模型(如 LIFNode)和代理梯度,使得 SNN 能够使用标准的基于梯度的优化方法进行训练。它支持多种加速后端——torch、cupy 和 triton——以优化神经元核的执行。对于从传统 AI 转来的用户,它提供了 ANN2SNN 转换工具,将已有的人工神经网络转换为脉冲版本。
适用人群
该框架面向从事神经形态计算、基于脉冲的智能以及能效 AI 的研究者和开发者,也适用于希望将事件驱动数据集整合到机器学习工作流中的用户。
亮点
- PyTorch 原生 API:使用熟悉的 PyTorch
nn.Sequential和模块模式定义 SNN。 - 高性能后端:支持
cupy和triton,实现更快的神经元执行。 - 神经形态数据支持:内置访问多种事件驱动数据集(如 ASL-DVS、N-MNIST)。
- 部署就绪:提供将模型导出到神经形态硬件的接口,支持 NIR、Lava 和 Lynxi。
- 扩展工具:包括内存高效训练(
memopt)和多 GPU 工作负载的分布式执行。
Sources
- undefinedfangwei123456/spikingjelly