lava框架调研

*abstract

Lava是一个开源Python框架,用于开发大脑启发应用程序并映射到神经形态硬件,提供了开发应用程序的工具和抽象方法,可以充分利用神经计算原理。

20231218183841

lava-dl支持Deep Event-Based Networks训练,可以直接训练,也可以ANN2SNN

lava-dl提供了SLAYER的改进版本,用于直接训练,还提供了名为Bootstrap的新ANN2SNN加速训练方法。

但是lava-dl训练库独立于核心lava库,此时无法直接训练lava Processes.应该首先使用lava-dl训练模型,然后使用netx库适用平台独立的hdf5网络描述转换为网络。
b0e71b3e10415637b88a35965457568b
20231218210833

lava.lib.dl.decolle,用于使用本地学习和代理梯度训练深度 SNN。该扩展是 DECOLLE 学习 repo 的实现,与 lava-dl 训练工具完全兼容。有关该扩展的详细说明、示例和教程,请参阅此处

lava.lib.dl.slayer 是 SLAYER 的增强版本。最值得注意的增强功能包括:支持递归网络结构、更多种类的神经元模型和突触连接(完整的功能列表在这里)。该版本的 SLAYER 基于 PyTorch 深度学习框架构建,与其前身类似,其中的子模块是与pytorch兼容的。为了与 Lava 平滑集成,lava.lib.dl.slayer 支持使用独立于平台的 hdf5 网络交换格式导出训练好的模型。在未来的版本中,SLAYER 将完全集成到 Lava 中,直接训练 Lava Processes。这将消除明确导出和导入训练网络的需要。

总体来讲,lava提供了Process类,用户可以使用已有的Process构建神经网络,也可以自己写Process构建神经网络。

lava中的process可以彼此提供接口,在本地内存运行,通过通道在彼此之间传递消息。同时不同的Process同时进行异步运算,体现了神经形态硬件固有的高度并行性,并且避免了内存交互的副作用。

Python编写一个Process后,lava就允许它在不同的后端(CPU、GPU或神经形态核)无缝运行。开发人员可以直接在经典硬件上测试应用程序,并将其部署到神经形态硬件上。Loihi是分布式异构硬件,在使用Loihi的时候,可以在神经形态核上运行某些Process,在嵌入式常规CPU和GPU上并行运行其他Process。lava针对这种运算的通信做了优化处理。

How to build a Process

创建新Process时,需要从AbstractProcess类继承。

比如自己写一个LIF类:
20231218181813

Attention:

  • 只定义LIF神经元的界面,不定义时间行为
  • 对计算后端完全不可知,在CPU和Loihi上运行代码,保持不变。

Process的行为由ProcessModel定义。对于LIF的具体例子,ProcessModel描述了它们的电流和电压如何对突触时输入反应,状态如何演变,神经元何时应该发出脉冲。

一旦Process被实例化并且您对其状态感到满意,就可以运行该Process。只要为所需的后端定义了ProcessModel,Process就可以在计算硬件之间无缝运行。

ProcessModels允许用户使用一种或多种语言(如Python、C或Loihi neurocore接口)和各种计算资源(如CPU、GPU或Loihi芯片)指定Process的行为。通过这种方式,ProcessModels支持跨平台无缝执行Process,并允许用户构建与平台特定实现无关的应用程序和算法。
20231218182304

一个Process可以有多个ProcessModels,分别用于要在其上运行它的每个后端

Dataset and Task

可以接受静态图像,SpikeInput Process可以使用图像输入,通过整合和发放动态生成脉冲:
20231218175825

并没有直接说明能否支持dvs

Data input requirements

可以接收rated-coded input,被编码为spiking rates.

也可以处理DVS(应该),文档上面讲一个process当某个条件或事件发生了改变后会异步输处一个新的高斯模式。

Model size

lava-dl本身是基于pytorch搭建的,其中的模块也是能与pytorch兼容的,也就是说训练时模型大小和pytorch一般模型差不多,但是和具体的神经网络结构有关,可以自己构建,也可以采用已经构建好的block。

loihi没有说明能支持多大的模型
灵汐的芯片没有多少限制,不超过显存限制(比如16G)均可。

Quantized training and deployment

lava-dl做了量化,可以选择round量化也可以选择floor量化。
70704d58c30874bb6e9c2fbab24dd779

部署方面文档只提供给有loihi权限的开发者,即必须先加入INRC。

Compression

为loihi2部署提供信息压缩模式
3f366f3466424f4020b2e80a404f842a

How to Deploy

未提供。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值