CN115392443B - 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 - Google Patents
类脑计算机操作系统的脉冲神经网络应用表示方法及装置 Download PDFInfo
- Publication number
- CN115392443B CN115392443B CN202211325953.6A CN202211325953A CN115392443B CN 115392443 B CN115392443 B CN 115392443B CN 202211325953 A CN202211325953 A CN 202211325953A CN 115392443 B CN115392443 B CN 115392443B
- Authority
- CN
- China
- Prior art keywords
- brain
- neural network
- pulse
- file
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了类脑计算机操作系统的脉冲神经网络应用表示方法及装置,将一个类脑应用所需的全部文件组织成一个dpk,具体包括:模型校验文件、SNN模型描述文件、SNN权重连接文件、可执行模型文件,以及应用配置、数据预处理、脉冲编解码、应用业务逻辑处理等文件。dpk的生成过程分为三步:SNN模型训练或转换、模型编译、应用压缩打包。类脑计算机操作系统导入dpk后进行解压和安装,部署模型到类脑计算机,并基于该神经模型运行类脑应用。本发明对各种脉冲神经网络模型和应用配置信息的表示提供约束和规范,为各种类脑应用接入类脑计算机提供统一入口,有助于提高类脑操作系统的管理效率以及类脑计算机硬件资源的利用率。
Description
技术领域
本发明涉及新型计算机技术领域,尤其是涉及类脑计算机操作系统的脉冲神经网络应用表示方法及装置。
背景技术
随着后摩尔时代的到来,传统的冯诺依曼体系计算机的性能在多个方面达到瓶颈,为了解决“内存墙”、“功耗墙”等问题,类脑计算应运而生,通过借鉴模拟大脑中的神经网络结构和信息加工过程,将存储与计算合并,以此来提高计算性能并降低功耗。
脉冲神经网络(Spiking Neuron Networks,SNN)作为第三代神经网络具有高度的生物真实性,通过模拟大脑神经网络连接方式并结合时间信息来实现高效运算。基于脉冲神经网络的类脑应用可以对多种数据进行加工和处理,在某些特定的智能信息应用场景中有着突出的性能表现。类脑计算机作为类脑应用运行的载体,通过类脑操作系统维护和控制多种类脑应用的资源分配、任务调度和调试运行。
但是由于脉冲神经网络复杂多样、模型文件数量多、类脑应用数据来源不一、应用场景种类繁多等问题,往往需要对某一个类脑应用的运行做定制化处理,为匹配不同的脉冲神经网络模型,需要手动配置不同的输入输出方式。这些不仅增加了人力成本,也对类脑操作系统维护和控制不同的脉冲神经网络模型带来了不便,无法高效充分地利用类脑计算机的硬件资源。
发明内容
为解决现有技术的不足,实现类脑计算机操作系统支持更多类脑应用的开发和普及,更好地促进类脑计算机硬件的发展的目的,本发明采用如下的技术方案:
一种类脑计算机操作系统的脉冲神经网络应用表示方法,采用达尔文类脑计算机,包括一组基础模块,每个基础模块包含多个由多颗达尔文神经拟态芯片组成的子模块,类脑计算机操作系统基于达尔文神经拟态芯片,控制类脑计算机的计算资源和存储资源,每个类脑应用通过类脑应用程序包的方式,经类脑计算机操作系统进行安装、部署、运行,利用类脑计算机的芯片资源,实现特定的人工智能需求,包括如下步骤:
步骤S1:构建脉冲神经网络并进行训练,得到脉冲神经网络文件;对构建的脉冲神经网络进行编译,建立脉冲神经网络与类脑计算机硬件资源之间的映射关系,得到编译文件;将脉冲神经网络文件和编译文件,连同校验文件和业务功能文件打包为类脑应用程序包,一个类脑应用程序可以包含多个脉冲神经网络,每个脉冲神经网络对应生成一套编译文件;其中,校验文件用于检验类脑应用程序包的完整性和安全性,业务功能文件用于类脑计算机操作系统对具体应用功能的调用;
步骤S2:类脑计算机操作系统针对类脑应用程序包构建接口,根据类脑应用程序包的目录结构获取并运行对应的文件,来部署脉冲神经网络,包括如下步骤:
步骤S2.1:类脑计算机操作系统导入类脑应用程序包,并解压;
步骤S2.2:执行校验文件,检查包的完整性和安全性,并判断脉冲神经网络能否部署于类脑计算机上;类脑应用程序包执行安装后,类脑计算机操作系统会首先解析校验数据,检查类脑应用程序包的安全性和完整性;
步骤S2.3:基于编译文件,得到脉冲神经网络与类脑计算机硬件资源之间的映射关系,将脉冲神经网络部署于类脑计算机的类脑芯片上,部署成功后,将该脉冲神经网络纳入类脑计算机操作系统的控制范围内;
步骤S2.4:解析脉冲神经网络文件和业务功能文件,获取脉冲输入;
步骤S2.5:将脉冲输入发送至部署于类脑计算机的脉冲神经网络,解析并返回脉冲输出。
进一步地,所述步骤S1包括如下步骤:
步骤S1.1:脉冲神经网络模型的训练和/或转换,将人工智能神经网络转换为脉冲神经网络,对脉冲神经网络进行训练,输出脉冲神经网络文件,包括描述文件和权重连接文件;人工智能神经网络转换为脉冲神经网络,是根据人工智能神经网络的连接关系,构建脉冲神经网络结构,并将人工智能网络的连接权重转换为脉冲神经网络的突触权重;描述文件包括脉冲神经网络的名称、版本、层次结构和每一层的神经元规模;权重连接文件为四元组集合,每个四元组定义了突触连接的两个神经元编号、突触权重和突触时延;
步骤S1.2:对脉冲神经网络进行编译,通过编译器建立脉冲神经网络的结构与类脑计算机硬件资源之间的映射关系,由于步骤S1.1输出的SNN模型文件无法在类脑计算机上运行,因此需要生成SNN模型的二进制文件,并将脉冲神经网络编译为类脑计算机能够识别的类脑芯片指令集,以便于类脑计算机操作系统将其部署到类脑芯片上;
步骤S1.3:将脉冲神经网络文件和编译文件,连同校验文件和业务功能文件打包为类脑应用程序包。
编译文件,包括每个文件的MD5值和文件大小,文件签名序列,类脑应用程序包的配置信息。
进一步地,所述步骤S2.3中,基于类脑芯片指令集,逐层将脉冲神经网络的神经元映射到作为硬件计算节点的类脑芯片上。
进一步地,所述步骤S1中,业务功能文件为实现应用业务功能的脚本,包括数据处理脚本、脉冲编解码脚本、业务功能处理脚本,数据处理脚本用于配置数据源输入方式和数据预处理方法,具体地,业务功能处理脚本中,通过调用类脑计算机操作系统提供的API接口,对脉冲数据进行处理,包括数据输入输出等,调试和运行等日志信息也需要调用专门的API;脉冲编码脚本中定义编码方法,用于将预处理的结果转换为脉冲序列;脉冲解码脚本中定义解码方法,用于将输出层神经元的脉冲激发序列解码为相应的结果;业务功能处理脚本用于实现具体的业务功能;类脑计算机操作系统部署好模型并运行后,会调用该目录下的脚本来实现具体的应用功能;
所述步骤S2.4中,基于描述文件得到的输入层的神经元规模,经数据处理脚本得到数据输入源和数据预处理方法,再通过脉冲编码脚本得到数据预处理后的脉冲序列;将脉冲序列作为脉冲输入。
进一步地,所述脉冲编码脚本的输出是键值对的集合,形式如下:
[key1:[time1,time2,time3,...],key2:[time1,time2,time3,...]...]
其中key表示输入神经元编号,其个数与脉冲神经网络的输入层神经元规模相匹配,time表示该神经元发放脉冲的时间点。
进一步地,所述步骤S1中,类脑应用程序包还包括图标文件,用于在类脑计算机操作系统用户界面中显示;
所述步骤S2中,还包括创建类脑应用程序运行面板,用于载入图标文件用于标识,在获取到解码后的脉冲输出后,通过调用可视化脚本定义的输出信息展示方式,将脉冲输出呈现在运行面板上。
一种类脑计算机操作系统的脉冲神经网络应用表示方法,将所述类脑计算机操作系统的脉冲神经网络应用表示方法应用于图像分类识别,所述步骤S2.5中,对脉冲输出进行解码,并统计脉冲神经网络输出层神经元各自的脉冲发放次数之和,基于输出层神经元各自的脉冲发放次数之和得到图像分类概率值。
进一步地,当输出层神经元分布在类脑计算机操作系统中作为计算节点的多个类脑芯片上时,对每个神经元重新编号,得到的最终索引号的计算规则如下:
式中:
一种类脑计算机操作系统的脉冲神经网络应用表示装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的类脑计算机操作系统的脉冲神经网络应用表示。
本发明的优势和有益效果在于:
本发明通过类脑计算机操作系统,针对dpk提供了统一的安装接口,可以远程实现类脑应用的一键式部署运行,该接口封装了原来底层的部署SNN网络和脉冲数据计算等接口,会根据dpk的目录结构获取对应的文件并运行相应的业务脚本,用户只需要关注类脑计算机返回的计算结果。这样不仅简化了用户使用类脑计算机的操作流程,也可以更有效的维护控制类脑计算机的硬件资源以及其上运行的多个类脑应用。
附图说明
图1是本发明实施例中类脑计算机操作系统的脉冲神经网络应用表示方法的流程图。
图2是本发明实施例中类脑计算机操作系统构建脉冲神经网络应用的流程图。
图3是本发明实施例中类脑计算机操作系统构建的脉冲神经网络应用文件结构示意图。
图4是本发明实施例中类脑计算机操作系统部署脉冲神经网络应用文件的流程图。
图5是本发明实施例中类脑计算机操作系统的脉冲神经网络应用表示装置的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明提出的类脑计算机操作系统的脉冲神经网络应用表示方法,简称为类脑应用表示方法,该方法针对类脑操作系统的需求提供了一种统一的类脑应用的构建方式,将一个类脑应用所需的全部文件打包成dpk(darwin application package达尔文应用程序包),可以高效地利用类脑计算机资源来控制和运行多种类脑应用,dpk实际是对类脑应用多个文件的打包压缩,起到一个承上启下的作用,对使用类脑计算机的上层用户如何定义脉冲神经网络模型和开发类脑应用提供了约束和规范;而对操作系统而言,部署脉冲神经网络模型到类脑计算机、以及运行类脑应用所需的各种信息,也都包含在dpk中。具体的,类脑计算机核心硬件是类脑芯片,达尔文类脑计算机由66个基础模块组成,每个基础模块包含三组具有2×2颗达尔文类脑芯片的子模块,可以支持亿级的神经元和突触。而类脑操作系统基于达尔文神经拟态芯片,负责控制类脑计算机的计算资源和存储资源,提供神经任务调度、类脑通信管理等技术支持,可以满足大规模、低延时的类脑应用计算需求。每个类脑应用通过dpk的方式经由类脑操作系统进行安装、部署、运行,利用类脑计算机的芯片资源,实现特定的人工智能需求。
如图1所示,类脑计算机操作系统的脉冲神经网络应用表示方法,包括如下步骤:
步骤S1:构建脉冲神经网络并进行训练,得到脉冲神经网络文件;对构建的脉冲神经网络进行编译,建立脉冲神经网络与类脑计算机硬件资源之间的映射关系,得到编译文件;将脉冲神经网络文件和编译文件,连同校验文件、图标文件和业务功能文件打包为类脑应用程序包;其中,校验文件用于检验类脑应用程序包的完整性和安全性,业务功能文件用于类脑计算机操作系统对具体应用功能的调用;图标文件用于在类脑计算机操作系统用户界面中显示;包括如下步骤:
步骤S1.1:脉冲神经网络模型的训练和/或转换,将人工智能神经网络转换为脉冲神经网络,对脉冲神经网络进行训练,输出脉冲神经网络文件,包括描述文件和权重连接文件;
如图2所示,本发明实施例中,脉冲神经网络模型的训练和/或转换,脉冲神经网络模型训练是指通过模型结构设计、模型构建、SNN训练等步骤来生成一个新的脉冲神经网络;模型转换是指通过一些算法将人工智能神经网络(Artificial Neural Network,ANN)转换为脉冲神经网络,基本原理是根据ANN各层的连接关系创建脉冲神经网络(SpikingNeural Network,SNN)结构,并将ANN的连接权重转换为脉冲神经网络的突触权重。
SNN模型训练是使用SPAIC类脑计算框架实现,ANN转换是基于snntoolbox转换工具箱实现。该步骤生成的SNN模型包含输入层、隐藏层和输出层,层与层之间的连接可以是全连接或卷积连接,最后输出SNN模型描述文件和权重连接文件,这两个文件中定义了SNN的整个网络结构、各个网络层的神经元规模、以及各层神经元之间的连接关系和权重值等信息。
步骤S1.2:对脉冲神经网络进行编译,通过编译器建立脉冲神经网络的结构与类脑计算机硬件资源之间的映射关系,并将脉冲神经网络编译为类脑计算机能够识别的类脑芯片指令集;
本发明实施例中,对脉冲神经网络进行编译,模型编译用于生成SNN模型的二进制文件,通过编译器建立SNN模型的逻辑结构与类脑计算机硬件资源之间的映射关系,并将SNN模型编译为类脑计算机可以识别的类脑芯片指令集,以便于类脑操作系统将其部署到类脑芯片上。
步骤S1.1输出的SNN模型是无法在类脑计算机上运行的,在此需要使用达尔文类脑编译器DarwinCPL将其编译成达尔文芯片指令,在部署时,根据编译结果逐层地将网络中的神经元映射到芯片的硬件节点上。
步骤S1.3:将脉冲神经网络文件和编译文件,连同校验文件和业务功能文件打包为类脑应用程序包;
业务功能文件为实现应用业务功能的脚本,包括数据处理脚本、脉冲编解码脚本、业务功能处理脚本,数据处理脚本用于配置数据源输入方式和数据预处理方法;脉冲编码脚本中定义编码方法,用于将预处理的结果转换为脉冲序列;脉冲解码脚本中定义解码方法,用于将输出层神经元的脉冲激发序列解码为相应的结果;业务功能处理脚本用于实现具体的业务功能;
本发明实施例中,类脑应用的构建打包。该步骤通过类脑操作系统用户界面工具将前两步生成的文件以及其他必要的文件打包成dpk。
dpk内的神经模型文件需要通过类脑操作系统安装部署到类脑芯片,应用的业务处理文件需要定义好数据源的输入接口、数据的预处理方式、脉冲编解码方法、输出脉冲的可视化规则、业务功能的处理逻辑等,一个完整的类脑操作系统脉冲神经网络应用文件的包内结构如图3所示。其中主要有五部分组成:
第一部分:meta_inf(DPK元数据)目录下存储所有模型文件的校验数据,用于类脑操作系统安装dpk时检查包的完整性和安全性,其中meta_code.pickle(元数据代码)目录中存储每个文件的MD5值和文件大小,darwin-security-sign(达尔文安全签名)目录中存储的是一个签名序列。当一个dpk执行安装后,类脑操作系统会首先解析上述校验文件检查应用包的安全性和完整性,检查通过后才进行安装,即将脉冲神经网络部署到类脑芯片上。configure.json(配置)目录存储了类脑应用的自定义配置信息,包括应用名称、版本号、作者等。
第二部分:logo(图标)目录下存储dpk的图标文件,支持32×32px和48×48px大小的图片,用于在类脑操作系统用户界面中显示。该部分是非必需的,如果没有提供图标,类脑操作系统会使用默认的图标来标记该模型。
第三部分:model(模型)目录下存储步骤一输出的SNN模型文件,本发明实施例中包括A、B、C三种模型。其中snn_desc.json(SNN描述)目录下是SNN模型描述文件,定义了模型的名称、版本、模型的层次结构、每一层的神经元规模等信息;connections.data(连接)目录下是SNN模型的权重连接文件,这是一个四元组的集合,每个四元组定义了突触连接的两个神经元的编号、突触权重和突触时延,即表示为[src, dest, weight, delay]。一个类脑应用可以包含多个SNN模型。
第四部分:bin(编译)目录下存储步骤S1.2SNN模型编译后输出的二进制文件,每个模型对应一套编译文件。如果选择不同的编译器,这里的文件内容会有所不同,但都是将SNN逻辑模型映射到类脑计算机硬件资源的二进制文件,可以通过类脑操作系统直接部署到类脑芯片上。
第五部分:scripts(脚本)目录下存储用于实现应用业务功能的脚本,分为主脚本main.py和其他脚本other.py,具体包含数据处理、脉冲编解码、业务功能处理、结果可视化等,其中数据处理脚本用于配置数据源输入方式和数据预处理方法;脉冲编码脚本中定义编码方法,用于将预处理的结果转换为脉冲序列;可视化脚本用于获取脉冲输出,即类脑芯片对数据的处理结果,并定义输出信息的展示方式。类脑操作系统部署好模型并运行后,会调用该目录下的脚本来实现具体的应用功能。类脑操作系统对这里的脚本有一定的约束:
1)脉冲编码脚本的输出是键值对的集合,形式如下:
[key1:[time1,time2,time3,...],key2:[time1,time2,time3,...]...]
其中key表示输入神经元编号,其个数与脉冲神经网络的输入层神经元规模相匹配,time为该神经元发放脉冲的时间点,在该集合中需要保证key值的个数与SNN模型的输入层神经元规模相匹配,否则类脑操作系统会报错。
2)业务脚本中对脉冲数据的处理需要调用类脑操作系统提供的API,包括数据输入输出等,调试和运行等日志信息也需要调用专门的API。
传统情况下SNN模型的部署和业务逻辑处理是分开的两个环节,模型部署成功后返回芯片的位置信息,然后再将业务逻辑所需的脉冲数据发送给指定芯片;而且这些操作需要满足用户电脑与类脑计算芯片资源网络直连,以实现数据传输。而在本发明示例中,达尔文类脑操作系统针对dpk提供了统一的安装接口,可以远程实现类脑应用的一键式部署运行,该接口封装了原来底层的部署SNN网络和脉冲数据计算等接口,会根据dpk的目录结构获取对应的文件并运行相应的业务脚本,用户只需要关注类脑计算机返回的计算结果。这样不仅简化了用户使用类脑计算机的操作流程,也可以更规范的维护控制类脑计算机的硬件资源以及其上运行的多个类脑应用。
步骤S2:类脑计算机操作系统针对类脑应用程序包构建接口,根据类脑应用程序包的目录结构获取并运行对应的文件,来部署脉冲神经网络,如图4所示,包括如下步骤:
步骤S2.1:类脑计算机操作系统导入类脑应用程序包,并解压;
本发明实施例中,导入脉冲神经网络应用文件dpk并解压;
步骤S2.2:执行校验文件,检查包的完整性和安全性,并判断脉冲神经网络能否部署于类脑计算机操作系统上;
本发明实施例中,读取meta_inf目录下的校验文件执行检查。该步骤主要检查神经模型的完整性和安全性,并判断该SNN模型的规模能否部署到类脑计算机上。
步骤S2.3:基于编译文件,得到脉冲神经网络与类脑计算机硬件资源之间的映射关系,将脉冲神经网络部署于类脑计算机的类脑芯片上;
基于类脑芯片指令集,逐层将脉冲神经网络的神经元映射到作为硬件计算节点的类脑芯片上。
本发明实施例中,提取bin目录下的模型编译文件部署到类脑计算机。模型检查通过后会提取bin目录下的脉冲神经网络模型编译文件执行部署操作,部署成功后会将该模型纳入操作系统的控制范围内。
还包括创建类脑应用程序运行面板,用于载入图标文件用于标识,在获取到解码后的脉冲输出后,通过调用可视化脚本定义的输出信息展示方式,将脉冲输出呈现在运行面板上。
本发明实施例中,创建类脑应用运行面板,解析logo目录下的图标载入面板,从而进行标识。
步骤S2.4:解析脉冲神经网络文件和业务功能文件,获取脉冲输入;
基于描述文件得到的输入层的神经元规模,经数据处理脚本得到数据输入源和数据预处理方法,再通过脉冲编码脚本得到数据预处理后的脉冲序列;将脉冲序列作为脉冲输入。
本发明实施例中,获取脉冲输入,通过解析model目录下的SNN模型信息和scripts下的脚本获取脉冲输入。其中SNN模型信息中定义了输入层神经元的规模,预处理脚本用于配置数据输入源和数据预处理方式,编码脚本用于将输入数据转换为脉冲序列。
步骤S2.5:将脉冲输入发送至部署于类脑计算机的脉冲神经网络,解析并返回脉冲输出。
本发明实施例中,将脉冲输入发送给类脑计算机并解析返回的脉冲输出,处理应用的业务逻辑。该步骤中类脑操作系统会将脉冲输入序列发送给底层类脑计算机,并将类脑计算机返回的脉冲输出做解码,然后调用可视化脚本呈现在应用面板中,或者根据业务需求处理脉冲输出结果。
一种类脑计算机操作系统的脉冲神经网络应用表示方法,将上述类脑计算机操作系统的脉冲神经网络应用表示方法应用于图像分类识别,所述步骤S2.5中,对脉冲输出进行解码,并统计脉冲神经网络输出层神经元各自的脉冲发放次数之和,基于输出层神经元各自的脉冲发放次数之和得到图像分类概率值。
这里涉及到一个计算规则,当输出层神经元分布在类脑计算机操作系统中作为计算节点(类脑芯片执行神经计算的基本单位)的多个类脑芯片上时,对每个神经元重新编号,得到的最终索引号的计算规则如下:
式中:
nodeIndex:表示计算节点在脉冲神经网络最后一层的序号;
neuronNum:表示每个计算节点上的神经元数目,通过将脉冲神经网络输出层的神经元总数平均分配到该层的计算节点上得到;
curIndex:表示本神经元在本节点的神经元序号。
通过上述步骤,可以完整地运行一个基于脉冲神经网络模型创建的类脑应用,而且dpk文件可以持久保存在类脑操作系统上,便于维护和控制,也有利于提高类脑计算机硬件资源的利用率。
这部分内容实施方式与上述方法实施例的实施方式类似,此处不再赘述。
与前述类脑计算机操作系统的脉冲神经网络应用表示方法的实施例相对应,本发明还提供了类脑计算机操作系统的脉冲神经网络应用表示装置的实施例。
参见图5,本发明实施例提供的类脑计算机操作系统的脉冲神经网络应用表示装置,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的类脑计算机操作系统的脉冲神经网络应用表示方法。
本发明类脑计算机操作系统的脉冲神经网络应用表示装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明类脑计算机操作系统的脉冲神经网络应用表示装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的类脑计算机操作系统的脉冲神经网络应用表示方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (9)
1.一种类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于包括如下步骤:
步骤S1:构建脉冲神经网络并进行训练,得到脉冲神经网络文件;对构建的脉冲神经网络进行编译,建立脉冲神经网络与类脑计算机硬件资源之间的映射关系,得到编译文件;将脉冲神经网络文件和编译文件,连同校验文件和业务功能文件打包为类脑应用程序包;其中,校验文件用于检验类脑应用程序包的完整性和安全性,业务功能文件用于类脑计算机操作系统对具体应用功能的调用;
一个类脑应用程序包含多个脉冲神经网路,每个脉冲神经网络对应生成一套编译文件;
业务功能文件为实现应用业务功能的脚本,包括数据处理脚本、脉冲编解码脚本、业务功能处理脚本,数据处理脚本用于配置数据源输入方式和数据预处理方法;脉冲编码脚本中定义编码方法,用于将预处理的结果转换为脉冲序列;脉冲解码脚本中定义解码方法,用于将输出层神经元的脉冲激发序列解码为相应的结果;业务功能处理脚本用于实现具体的业务功能;
步骤S2:类脑计算机操作系统针对类脑应用程序包构建接口,该接口封装了包括原来底层的部署脉冲神经网络和脉冲数据计算接口,根据类脑应用程序包的目录结构获取并运行对应的文件,来部署脉冲神经网络,包括如下步骤:
步骤S2.1:类脑计算机操作系统导入类脑应用程序包;
步骤S2.2:执行校验文件,检查包的完整性和安全性,并判断脉冲神经网络能否部署于类脑计算机上;
步骤S2.3:基于编译文件,得到脉冲神经网络与类脑计算机硬件资源之间的映射关系,将脉冲神经网络部署于类脑计算机的类脑芯片上;
步骤S2.4:解析脉冲神经网络文件和业务功能文件,获取脉冲输入;
基于描述文件得到的输入层的神经元规模,经数据处理脚本得到数据输入源和数据预处理方法,再通过脉冲编码脚本得到数据预处理后的脉冲序列;将脉冲序列作为脉冲输入;
步骤S2.5:将脉冲输入发送至部署于类脑计算机的脉冲神经网络,解析并返回脉冲输出。
2.根据权利要求1所述的类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于:所述步骤S1包括如下步骤:
步骤S1.1:脉冲神经网络模型的训练和/或转换,将人工智能神经网络转换为脉冲神经网络,对脉冲神经网络进行训练,输出脉冲神经网络文件,包括描述文件和权重连接文件;
步骤S1.2:对脉冲神经网络进行编译,通过编译器建立脉冲神经网络的结构与类脑计算机硬件资源之间的映射关系,并将脉冲神经网络编译为类脑计算机能够识别的类脑芯片指令集;
步骤S1.3:将脉冲神经网络文件和编译文件,连同校验文件和业务功能文件打包为类脑应用程序包。
3.根据权利要求2所述的类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于: 所述步骤S2.3中,基于类脑芯片指令集,逐层将脉冲神经网络的神经元映射到作为硬件计算节点的类脑芯片上。
4.根据权利要求1所述的类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于:所述脉冲编码脚本的输出是键值对的集合,形式如下:
[key1:[time1,time2,time3,...],key2:[time1,time2,time3,...]...]
其中key表示输入神经元编号,其个数与脉冲神经网络的输入层神经元规模相匹配,time表示该神经元发放脉冲的时间点。
5.根据权利要求1所述的类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于:所述步骤S1中,类脑应用程序包还包括图标文件,用于在类脑计算机操作系统用户界面中显示;
所述步骤S2中,还包括创建类脑应用程序运行面板,用于载入图标文件用于标识,在获取到解码后的脉冲输出后,通过调用可视化脚本定义的输出信息展示方式,将脉冲输出呈现在运行面板上。
6.根据权利要求1-5任一项所述类脑计算机操作系统的脉冲神经网络应用表示方法,其特征在于:所述步骤S2.5中,对脉冲输出进行解码,并统计脉冲神经网络输出层神经元各自的脉冲发放次数之和,基于输出层神经元各自的脉冲发放次数之和得到图像分类概率值,用于图像分类识别。
7.一种类脑计算机操作系统的脉冲神经网络应用表示装置,其特征在于:包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-5中任一项所述的类脑计算机操作系统的脉冲神经网络应用表示方法。
9.一种类脑计算机操作系统的脉冲神经网络应用表示装置,其特征在于:包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求6所述的类脑计算机操作系统的脉冲神经网络应用表示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211325953.6A CN115392443B (zh) | 2022-10-27 | 2022-10-27 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211325953.6A CN115392443B (zh) | 2022-10-27 | 2022-10-27 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115392443A CN115392443A (zh) | 2022-11-25 |
CN115392443B true CN115392443B (zh) | 2023-03-10 |
Family
ID=84128823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211325953.6A Active CN115392443B (zh) | 2022-10-27 | 2022-10-27 | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115392443B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117634550B (zh) * | 2024-01-25 | 2024-06-04 | 之江实验室 | 一种面向多类脑芯片级联系统的时间同步方法与装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN110322010A (zh) * | 2019-07-02 | 2019-10-11 | 深圳忆海原识科技有限公司 | 用于类脑智能与认知计算的脉冲神经网络运算系统及方法 |
CN111325321A (zh) * | 2020-02-13 | 2020-06-23 | 中国科学院自动化研究所 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN114492770A (zh) * | 2022-01-28 | 2022-05-13 | 浙江大学 | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 |
CN114492782A (zh) * | 2022-04-19 | 2022-05-13 | 之江实验室 | 基于强化学习的神经网络的片上核心编译映射方法及装置 |
CN114548384A (zh) * | 2022-04-28 | 2022-05-27 | 之江实验室 | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 |
CN114638360A (zh) * | 2022-05-19 | 2022-06-17 | 之江实验室 | 一种用于脉冲神经网络学习与仿真的计算平台及方法 |
CN115081587A (zh) * | 2022-05-27 | 2022-09-20 | 浙江大学 | 类脑计算机中脉冲神经网络在硬件上的运行部署方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544539B2 (en) * | 2016-09-29 | 2023-01-03 | Tsinghua University | Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system |
FR3087560A1 (fr) * | 2018-10-23 | 2020-04-24 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels |
CN111104120B (zh) * | 2018-10-29 | 2023-12-22 | 赛灵思公司 | 神经网络编译方法、系统及相应异构计算平台 |
WO2021120177A1 (zh) * | 2019-12-20 | 2021-06-24 | 华为技术有限公司 | 编译神经网络模型的方法和装置 |
CN113240074B (zh) * | 2021-04-15 | 2022-12-06 | 中国科学院自动化研究所 | 一种可重构神经网络处理器 |
-
2022
- 2022-10-27 CN CN202211325953.6A patent/CN115392443B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN110322010A (zh) * | 2019-07-02 | 2019-10-11 | 深圳忆海原识科技有限公司 | 用于类脑智能与认知计算的脉冲神经网络运算系统及方法 |
CN111325321A (zh) * | 2020-02-13 | 2020-06-23 | 中国科学院自动化研究所 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN114492770A (zh) * | 2022-01-28 | 2022-05-13 | 浙江大学 | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 |
CN114492782A (zh) * | 2022-04-19 | 2022-05-13 | 之江实验室 | 基于强化学习的神经网络的片上核心编译映射方法及装置 |
CN114548384A (zh) * | 2022-04-28 | 2022-05-27 | 之江实验室 | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 |
CN114638360A (zh) * | 2022-05-19 | 2022-06-17 | 之江实验室 | 一种用于脉冲神经网络学习与仿真的计算平台及方法 |
CN115081587A (zh) * | 2022-05-27 | 2022-09-20 | 浙江大学 | 类脑计算机中脉冲神经网络在硬件上的运行部署方法 |
Non-Patent Citations (1)
Title |
---|
脉冲神经网络中神经元突触的硬件实现方案;李宏伟等;《计算机系统应用》;20140215(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115392443A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422778B2 (en) | Development environment for real-time dataflow programming language | |
CN109285071B (zh) | 一种基于区块链的数据处理平台及数据处理方法 | |
US20200042856A1 (en) | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit | |
US11036480B2 (en) | General machine learning model, and model file generation and parsing method | |
CN109643260A (zh) | 使用分析加速器的数据流分析处理的资源高效加速 | |
US10613844B2 (en) | Using comments of a program to provide optimizations | |
KR20200068050A (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
CN115392443B (zh) | 类脑计算机操作系统的脉冲神经网络应用表示方法及装置 | |
WO2023116067A1 (zh) | 面向5g云边端协同的电力业务分解方法及系统 | |
CN109299032B (zh) | 数据分析方法、电子设备及计算机存储介质 | |
CN110262783A (zh) | 一种接口生成方法、装置及终端设备 | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
US11762758B2 (en) | Source code fault detection | |
CN111399818A (zh) | 推荐引擎设计方法、装置、服务器及存储介质 | |
Rudi et al. | CodeFlow: A code generation system for Flash-X orchestration runtime | |
CN102612683A (zh) | 跨执行环境保持数据完整性 | |
CN113867699A (zh) | 业务系统的实现方法、装置、设备、介质及程序产品 | |
CN113032003B (zh) | 开发文件导出方法、装置、电子设备及计算机存储介质 | |
Park et al. | Interworking technology of neural network and data among deep learning frameworks | |
CN112799647B (zh) | 一种面向业务人员的规则引擎适配器装置的识别方法 | |
US11909858B1 (en) | System and method for generating and performing a smart contract | |
US20230110520A1 (en) | Ui service package generation and registration method and apparatus, and ui service loading method and apparatus | |
CN118626077A (zh) | 数据组合装置以及数据组合方法 | |
CN118295658A (zh) | 一种跨端场景下的页面显示处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |