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