一种在处理单元上对神经网络进行量化的方法和设备技术

技术编号:33904759 阅读:12 留言:0更新日期:2022-06-25 18:29
本公开记载了一种用于在处理单元上对神经网络进行量化的方法、电子设备和计算装置,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。处理装置的数据。处理装置的数据。

【技术实现步骤摘要】
一种在处理单元上对神经网络进行量化的方法和设备


[0001]本公开涉及计算机领域,更具体地,涉及神经网络中数据量化的方法。

技术介绍

[0002]Int8量化能明显减少神经网络模型的占用空间和神经网络模型运行时占用的带宽。当前,卷积神经网络的量化过程都是在CPU上进行的:将待量化网络运行在CPU上,在网络运行过程中通过修改待量化算子函数获取所需的参数,并在运行网络时执行量化过程。最终,量化后的卷积神经网络就可以运行在MLU平台上进行应用。但是,上述量化过程有以下四个缺点:一、由于CPU处理卷积神经网络速度很慢,导致当量化中使用的样本过大时,整个量化所耗费的时间会大幅增加;二、对于由多个cnml算子拼接而成的大算子和由Bang c语言实现的算子(一般由用户自定义,框架官方不支持)无法在CPU上运行,导致整个量化无法进行;三、对于多个cnml算子拼接的大算子,待量化的算子可能为其中的某个cnml算子,而网络运行过程又无法拿到相关参数,从而导致该拼接算子无法量化;四、破坏框架结构,并且后续框架有改动量化工具也需要进行修改,提高了维护成本。

技术实现思路

[0003]本公开的技术方案的目的在于提供一种能够对神经网络的节点进行量化的方案。
[0004]根据本公开的第一方面,提供一种在处理单元上对神经网络进行量化的方法,包括:获取所述神经网络的节点;运行所述神经网络以确定节点中的可量化节点,以便于对所述可量化节点的输入进行量化。
[0005]根据本公开的第二方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
[0006]根据本公开的第三方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
[0007]本公开的上述技术方案,充分利用人工智能芯片(例如MLU)擅长处理卷积神经网络的优势,解决了多样本量化耗时长的问题。不同于以前的量化方法,新量化方法不会破坏框架结构,整个实现过程都是基于框架的API实现的,不会改动框架源码。本公开的技术方案还解决了多cnml拼接算子和bangc算子无法量化的问题。
附图说明
[0008]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0009]图1是示出根据本披露实施例的神经网络的结构示意图;
[0010]图2示出了根据本公开的一个实施方式的在处理单元上对神经网络进行量化的方
法流程图;
[0011]图3示出了根据本公开的一个实施方式的获取所述神经网络的节点的流程图;
[0012]图4示出了根据本公开的一个实施方式的运行所述神经网络以确定节点中的可量化节点的流程示意图;
[0013]图5示出了根据本公开的一个实施方式的响应于所述节点为运算节点,运行所述神经网络以确定所述运算节点是否为可量化节点的流程图;
[0014]图6示出了一个组合式节点的示意图;
[0015]图7示出了根据本公开的一个实施方式的对可量化的组合式节点进行拆分的方法示意图;
[0016]图8示出了根据本公开的一个实施方式的将由所述多个基本算子组成的可量化节点模拟为子网络的流程图;
[0017]图9示出了对数据进行量化的过程;
[0018]图10示出了一种组合处理装置;以及
[0019]图11示出了一种示例性板卡。
具体实施方式
[0020]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0021]应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0022]还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0023]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0024]图1是示出根据本披露实施例的神经网络100的结构示意图。神经网络(或称人工神经网络“ANN”)被广泛运用于图像处理、语音识别等领域,其包含数百、数千甚至数百万个称为“神经元”的处理单元(就像人脑中的神经元一样),这些神经元分布于不同的层,并且协同工作以解决具体问题。
[0025]如图1中示意性示出的,神经网络100可以包括三个层,即输入层、隐藏层和输出层。输入层的神经元(如图中所示出的三个垂直排列的方框)被称为输入神经元。作为神经
网络中的第一层,输入层的神经元接受需要输入的信号并将它们传递到下一层,如图中所示出的隐藏层中的第一层(以“F1”标识出)。输入层通常不对输入信号做操作,并且没有关联的权值和偏置。
[0026]处于神经网络100中间位置的隐藏层,其根据应用场景的不同可以进一步细分为卷积层、池化层、批归一化层、激活层和全连接层等各类线性层和非线性层。此处的各类层都可以设置有与该层相关联的算子以执行相对应的计算操作。例如,对于卷积层存在卷积算子,该卷积算子可以具体化为一个或多个卷积计算公式的表达。通过利用该卷积算子将输入数据与卷积核进行计算,可以获得卷积操作后的结果值。
[0027]在上述算子中,有些算子需要进行量化,而有些不需要;有些算子或是单独的算子,而有些算子或子网络是由多个算子组成的。这将需要对相应的算子或者子网络进行判断。
[0028]本公开的技术方案可以采用CNML人工智能学习库,用户可以使用CNML提供的丰富算子来构造整个网络,再通过CNML编译生成可执行镜像(function),这个镜像可以直接运行,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在处理单元上对神经网络进行量化的方法,包括:获取所述神经网络的节点;运行所述神经网络以确定节点中的可量化节点,以便于对所述可量化节点的输入进行量化。2.根据权利要求1所述的方法,其中,获取所述神经网络的节点包括:接收关于所述神经网络的结构信息;以及从所述结构信息中获取所述神经网络的节点。3.根据权利要求2所述的方法,其中,接收关于所述神经网络的结构信息包括:接收记载所述神经网络的结构的文件,优选地,所述文件为Json文件。4.根据权利要求1所述的方法,其中,运行所述神经网络以确定节点中的可量化节点包括:确定所述节点是否为运算节点;响应于所述节点为运算节点,运行所述神经网络以确定所述运算节点是否为可量化节点,以便于对所述可量化节点的输入进行量化。5.根据权利要求4所述的方法,其中,确定所述节点是否为运算节点包括:确定所述节点名称中是否包含表征运算节点的第一关键字。6.根据权利要求5所述的方法,其中所述第一关键字为“output”。7.根据权利要求4所述的方法,其中,响应于所述节点为运算节点,运行所述神经网络以确定所述运算节点是否为可量化节点包括:响应于所述节点为运算节点,接收数据和权重;运行所述神经网络,以根据所述数据和权重来得到第一输出;根据所述第一输出来确定所述运算节点是否为可量化节点。8.根据权利要求7所述的方法,其中,所述数据来自于外部输入或者来自于上级算子的输出。9.根据权利要求1

8中任意一项所述的方法,其中...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1