fangwei123456/spikingjelly

SpikingJelly is an open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch.

解决的问题

SpikingJelly 是一个基于 PyTorch 的原生框架,旨在简化脉冲神经网络(SNN)的开发、训练与部署。它提供了处理大规模 SNN 所需的基础设施,这类受生物启发的网络使用离散的脉冲而非连续值来处理信息,因而可能更具能源效率。

工作原理

此框架建立在 PyTorch 之上,允许用户以熟悉的 API 定义 SNN。它支持多种加速后端 — torchcupytriton — 以优化性能。系统还提供 ANN 转 SNN 的转换工具、用于训练的代理梯度,以及用于大型模型内存高效训练的脉冲压缩(memopt)。

目标对象

主要面向从事神经形态计算、基于脉冲的智能以及能源高效 AI 模型的研究人员与开发者。

亮点

  • PyTorch-native:使用对初学者友好的 API,能无缝整合至 PyTorch 生态系统。
  • High Performance:支持 cupytriton 后端以加速执行,且兼容 torch.compile
  • Neuromorphic Datasets:内建支持多种事件式数据集,如 N-MNIST 与 DVS-Lip。
  • Hardware Deployment:提供与神经形态硬件及 NIR、Lava、Lynxi 等框架的接口交换。
  • Large-Scale Support:具备分布式训练、精度控制(例如 fp8)以及脉冲 transformer 组件。