神经网络表示标准框架结构的制作方法

文档序号:16251078发布日期:2018-12-12 00:03阅读:224来源:国知局
神经网络表示标准框架结构的制作方法

本发明涉及人工智能领域,尤其涉及深度学习中神经网络表示标准框架结构。

背景技术

人工智能作为新一轮产业变革的核心驱动力,将重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。深度学习是近年来人工智能发展的核心技术,而神经网络表示正是深度学习技术应用中的基础性问题。其中,卷积神经网络是目前应用最广泛的深度神经网络,手写数字识别、人脸识别、车牌检测与识别、图片检索等大量应用领域都由其驱动,为人工智能的快速发展和广泛使用提供了动力。

目前国内外已有很多深度学习开源算法框架来支持深度学习算法的开发,包括tensorflow、caffe、mxnet、pytorch、cntk等,不同算法平台分别采用了自己特有的网络、模型表示和存储标准。由于目前尚无统一神经网络表示标准,不同深度学习开源算法框架不能互操作与协同工作,例如caffe上开发的模型不能在tensorflow上直接使用。同时不同深度学习框架之间对神经网络粒度定义不同,不仅妨碍硬件厂商对网络的加速和优化,同时对于新出现的运算操作,需要进行重定义。通过制定神经网络表示格式,能够简化研究、应用与深度学习框架的耦合关系,从而使得相关技术与产品可以更方便地应用在人工智能的不同领域与行业。

同时,大型的神经网络具有大量的层级与节点,这也导致其权重参数数量巨大,因此考虑如何减少这些神经网络所需的内存与计算量就显得极为重要,特别是对于在线学习和增量学习等实时应用。此外,近几年智能可穿戴设备的流行,也让人们关注如何在资源(内存、cpu、能耗和带宽等)有限的便携式设备上部署深度学习应用。例如resnet-50有50层卷积网络,其对存储需求和计算需求很大。如果剪枝一些冗余的权重后,其大概能节约75%的参数和50%的计算时间。对于只有资源受限的移动设备来说,如何使用这些方法压缩模型就十分重要了。然而,如今的压缩算法都依赖于不同的深度学习开源算法框架,导致不同深度学习算法框架上生成的压缩后的神经网络模型不能互相兼容,同时也未存在对这些压缩后的神经网络的统一表示,导致模型的兼容性变差,妨碍受限设备上深度学习算法的应用与开发。



技术实现要素:

本发明的目的是提供一种神经网络表示标准框架结构,以打破各种深度学习算法框架之间的壁垒,促进深度学习在可穿戴设备上的开发和应用。

为实现上述目的,本发明提供了一种神经网络表示标准框架结构,包括:

可互操作表示模块,通过对输入的神经网络进行转换得到可互操作的表示格式,其包含对神经网络的语法定义、支持的运算操作定义和权重格式定义;

紧凑表示模块,将可互操作表示的神经网络通过神经网络压缩算法转换为序列化格式的紧凑表示格式,其包含压缩后的神经网络的语法定义、支持的运算操作定义和权重格式定义;

编解码表示模块,通过神经网络压缩算法将紧凑表示格式的神经网络转换为编解码表示格式,其包含压缩后的神经网络的语法定义、支持的运算操作定义和编解码后权重格式定义;

封装表示模块,将安全信息和身份认证信息和神经网络一起封装,由此将神经网络转换为模型。

优选地,所述技术方案中,所述可互操作表示模块中的对神经网络的语法定义、支持的运算操作定义和权重格式定义分别包括:

语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算的简单或复杂运算;

权重格式定义包含数据通道的前后顺序定义、数据存储的精度定义。

优选地,所述技术方案中,所述紧凑表示模块中的压缩后的神经网络的语法定义、支持的运算操作定义和权重格式定义分别包括:

语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算的简单或复杂运算;

权重格式定义包含矩阵通道的前后顺序定义、数据存储的精度定义和支持的压缩算法中特殊数据结构的格式定义。

优选地,所述技术方案中,所述编解码表示模块中的压缩后的神经网络的语法定义、支持的运算操作定义和编解码后权重格式定义分别包括:

语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算的简单或复杂运算;

编解码后的权重格式定义包括神经网络权重压缩形式的编码表示和重构神经网络权重的语法来描述解码权重。

优选地,所述技术方案中,所述标准框架包括以下神经网络:卷积神经网络、循环神经网络、生成对抗网络或自动编码器神经网络。

优选地,所述技术方案中,所述可互操作表示的定义满足以下要求:

所述模型结构语法对网络结构和权重是否加密分别提供选项,不定义具体的加密算法;

所述计算图语法由一系列节点组成,节点语法包括节点名称、节点描述、节点输入、节点属性、节点运算操作以及运算操作定义;

所述运算操作包含卷积神经网络、循环神经网络、生成对抗网络、自动编码器神经网络模型的基于张量的逻辑运算、算术运算、关系运算和位运算的简单或复杂运算;

所述元运算操作包含操作名称、输入、输出、支持数据类型和属性;

所述复杂运算操作包含操作名称、输入、输出、支持数据类型、属性和基于元运算操作定义。

优选地,所述技术方案中,所述紧凑表示和编解码表示的定义满足以下要求:

所述模型结构语法对网络结构和权重是否加密分别提供选项,不定义具体的加密算法;

所述计算图语法由一系列节点组成,节点语法包括节点名称、节点描述、节点输入、节点属性、节点运算操作以及运算操作定义;

所述运算操作包含卷积神经网络、循环神经网络、生成对抗网络、自动编码器神经网络模型的基于张量的逻辑运算、算术运算、关系运算和位运算的简单或复杂运算;

所述元运算操作包含操作名称、输入、输出、支持数据类型和属性;

所述复杂运算操作包含操作名称、输入、输出、支持数据类型、属性和基于元运算操作定义。

优选地,所述技术方案中,所述紧凑表示和编解码表示支持下面的神经网络压缩算法需要的数据格式:稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示。

优选地,所述技术方案中,所述元运算操作和复杂运算操作满足以下设计规则:

将复杂运算或高级功能操作分解成低级运算操作或元运算操作,使用元运算操作来组装新的复杂运算或高级功能操作;

定义的元运算操作能够降低编译器的设计、验证复杂性和功耗面积。

优选地,所述技术方案中,所述封装表示包括:对神经网络进行封装的安全信息、身份认证信息,用来保护模型的知识产权和安全。

与现有技术相比,本发明具有以下优点:

(1)提出了可互操作表示格式,作为中间表示,实现各种深度学习开源算法框架的神经网络模型的相互转换;

(2)提出了紧凑操作表示格式,支持大部分的神经网络压缩算法;

(3)提出了封装格式,将神经网络和安全信息、身份认证封装为模型;

(4)将基于张量的运算操作分为元运算操作和复杂运算操作,并提出了相应的设计原则;

(5)提供了从神经网络到最终模型的不同表示层次的定义,从而能够统一神经网络各个层次的表示格式,打破各种深度学习开源算法框架之间的壁垒,实现不同深度学习开源算法框架的互操作,促进人工智能各种应用的开发和普及。

附图说明

图1为本发明实施例中神经网络表示标准框架结构的示意图;

图2为本发明实施例中神经网络表示标准框架结构应用的示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

本发明提供一种神经网络表示标准框架结构,包括:

可互操作表示模块,通过对输入的神经网络进行转换得到可互操作的表示格式,其包含对神经网络的语法定义、支持的运算操作定义和权重格式定义;

紧凑表示模块,将可互操作表示的神经网络通过神经网络压缩算法转换为序列化格式的紧凑表示格式,其包含压缩后的神经网络的语法定义、支持的运算操作定义和权重格式定义;

编解码表示模块,通过神经网络压缩算法将紧凑表示格式的神经网络转换为编解码表示格式,其包含压缩后的神经网络的语法定义、支持的运算操作定义和编解码后权重格式定义;

封装表示模块,将安全信息和身份认证信息和神经网络一起封装,由此将神经网络转换为模型。

图1所示为本发明实施例中神经网络表示标准框架结构的示意图。如图1所示,对于输入的神经网络,可以通过转换工具转换语法、权重和运算操作为提出的可互操作的表示格式,该可互操作表示可以实现各种深度学习开源算法框架间的神经网络模型转换;通过可互操作表示的神经网络通过提到的神经网络压缩算法,转换为压缩后的神经网络,即采用紧凑表示,支持基本的压缩后的神经网络的数据结构,同时提高神经网络的运行效率和存储效率,提供硬件优化;然后通过部分神经网络压缩算法,将紧凑的神经网络转换为编解码表示,在不损坏神经网络的结构信息和权重的情况下,使神经网络的大小最小;最后,将安全信息和身份认证等信息和神经网络封装,将神经网络转换为模型,方便和优化模型的分发与存储。

其中,可互操作表示格式包含对基本神经网络的语法定义、支持的运算操作定义和权重格式的定义。具体到每部分定义如下:

基本的语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算;

权重格式定义数据通道的前后顺序、数据存储的精度定义。

所述可互操作表示内的定义需要满足下面内容:

所述模型结构语法需对网络结构和权重是否加密分别提供选项,不定义具体的加密算法。

所述计算图由一系列节点组成,而节点语法需要包括节点名称、节点描述、节点输入、节点属性、节点运算操作以及运算操作定义。

所述元运算操作和复杂运算操作需要满足以下设计原则:

1、将复杂运算或高级功能操作分解成低级运算操作或元运算操作,可以使用元运算操作来组装新的复杂运算或高级功能操作。

2、定义的元运算操作能够降低编译器的设计、验证复杂性和功耗面积。

所述运算操作应包含卷积神经网络、循环神经网络、生成对抗网络、自动编码器等深度神经网络模型的基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算。

所述元运算操作需要包含操作名称、输入、输出、支持数据类型和属性。

所述复杂运算操作需要包含操作名称、输入、输出、支持数据类型、属性和基于元运算操作定义。

紧凑表示格式包含压缩后的神经网络的语法定义、支持的运算操作定义和权重格式定义。具体到每部分定义如下:

语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算,支持压缩后的神经网络数据格式运算操作;

权重格式定义矩阵通道的前后顺序定义、数据存储的精度定义和支持的压缩算法中特殊数据结构的格式定义。

支持的压缩算法的数据格式包括但不限于稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示。

所述紧凑表示内的定义需要满足下面内容:

所述模型结构语法需对网络结构和权重是否加密分别提供选项,不定义具体的加密算法。

所述计算图由一系列节点组成,而节点语法需要包括节点名称、节点描述、节点输入、节点属性、节点运算操作以及运算操作定义。

所述元运算操作和复杂运算操作需要满足以下设计原则:

1、将复杂运算或高级功能操作分解成低级运算操作或元运算操作,可以使用元运算操作来组装新的复杂运算或高级功能操作。

2、定义的元运算操作能够降低编译器的设计、验证复杂性和功耗面积。

所述运算操作应包含卷积神经网络、循环神经网络、生成对抗网络、自动编码器等深度神经网络模型的基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算。

所述元运算操作需要包含操作名称、输入、输出、支持数据类型、属性、包括但不限于稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示所需的数据结构说明。

所述复杂运算操作需要包含操作名称、输入、输出、支持数据类型、属性、基于元运算操作定义、包括但不限于稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示所需的数据结构说明。

编解码表示格式包含压缩后的神经网络的语法定义、支持的运算操作定义和编解码后权重格式定义。具体到每部分定义如下:

语法定义包含模型结构语法、贡献者语法、计算图语法、节点语法、节点属性语法、数据类型语法、其他数据类型语法、张量语法以及张量大小语法;

支持的运算操作被划分为元运算操作和复杂运算操作,包含基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算,支持压缩后的神经网络数据格式运算操作;

编码后的权重格式需要定义神经网络权重压缩形式的编码表示和重构神经网络权重的语法来描述解码权重的主要方法。

可选的压缩格式包括但不限于哈夫曼编码、lempel-ziv(lz77)、lempel-ziv-markovchain(lzma)。

所述编解码表示内的定义需要满足下面内容:

所述模型结构语法需对网络结构和权重是否加密分别提供选项,不定义具体的加密算法。

所述计算图由一系列节点组成,而节点语法需要包括节点名称、节点描述、节点输入、节点属性、节点运算操作以及运算操作定义。

所述元运算操作和复杂运算操作需要满足以下设计原则:

1、将复杂运算或高级功能操作分解成低级运算操作或元运算操作,可以使用元运算操作来组装新的复杂运算或高级功能操作。

2、定义的元运算操作能够降低编译器的设计、验证复杂性和功耗面积。

所述运算操作应包含卷积神经网络、循环神经网络、生成对抗网络、自动编码器等深度神经网络模型的基于张量的逻辑运算、算术运算、关系运算和位运算等简单或复杂运算。

所述元运算操作需要包含操作名称、输入、输出、支持数据类型、属性、包括但不限于稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示所需的数据结构说明。

所述复杂运算操作需要包含操作名称、输入、输出、支持数据类型、属性、基于元运算操作定义、包括但不限于稀疏编码的稀疏矩阵、权重量化的量化表、低秩分解的分解矩阵和二值神经网络的位表示所需的数据结构说明。

封装表示中包含对神经网络进行封装的安全信息、身份认证等信息,用来保护模型的知识产权和安全。

该神经网络表示标准框架支持但不限于卷积神经网络、循环神经网络、生成对抗网络、自动编码器等深度神经网络模型。

下面对本发明实施例中神经网络表示标准框架结构的应用进行说明。

如图2所示,本发明实施例中神经网络表示标准框架结构的应用包括:

可操作表示:打破各种深度学习开源算法框架间的壁垒,提供深度学习开源算法框架间的可互操作性。应用的场景包括数据中心、安全监控中心、城市级的大数据平台等。

紧凑表示:为受限设备提供深度神经网络面向硬件的优化,提高神经网络的运行效率与存储效率。应用的场景包括可穿戴设备,例如vr/ar设备、智能手表、智能手机等。

编解码表示:为神经网络的模型的分发和存储提供便捷,保护神经网络模型的安全。应用的场景包括终端计算设备,例如自动驾驶汽车、移动设备、机器人、无人机等。

封装表示:为神经网络模型的分发和存储提供安全,保护神经网络模型的安全。应用场景包含在指定设备对模型进行运行、防止模型的非法传播与使用。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1