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。它支持多种加速后端 — torch、cupy 与 triton — 以优化性能。系统还提供 ANN 转 SNN 的转换工具、用于训练的代理梯度,以及用于大型模型内存高效训练的脉冲压缩(memopt)。
目标对象
主要面向从事神经形态计算、基于脉冲的智能以及能源高效 AI 模型的研究人员与开发者。
亮点
- PyTorch-native:使用对初学者友好的 API,能无缝整合至 PyTorch 生态系统。
- High Performance:支持
cupy与triton后端以加速执行,且兼容torch.compile。 - Neuromorphic Datasets:内建支持多种事件式数据集,如 N-MNIST 与 DVS-Lip。
- Hardware Deployment:提供与神经形态硬件及 NIR、Lava、Lynxi 等框架的接口交换。
- Large-Scale Support:具备分布式训练、精度控制(例如
fp8)以及脉冲 transformer 组件。