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 元件。