神经网络层训练方法、神经网络计算系统和计算机可读介质技术方案

技术编号:32349948 阅读:24 留言:0更新日期:2022-02-20 02:15
本发明专利技术提供一种神经网络的层训练方法,所述层包括以第一精度存储的一个或多个权重参数,所述训练方法包括:S101:为所述层提供输入;S102:选择精度低于所述第一精度的第二精度;S103:以所述第二精度量化所述一个或多个权重参数;S104:以第二精度的所述一个或多个权重参数,基于所述输入,计算所述层的输出;S105:通过反向传播算法,以第一精度更新所述一个或多个权重参数。本发明专利技术提出了任意精度神经网络的概念和实现。使得在部署的时候可以把同一个模型动态的量化到不同的精度级别下。对于需要的精度级别不需要额外维护对应的模型,同时在实际使用中,提供更丰富的精度级别选项,避免遇到无法满足需求的问题。避免遇到无法满足需求的问题。避免遇到无法满足需求的问题。

【技术实现步骤摘要】
神经网络层训练方法、神经网络计算系统和计算机可读介质


[0001]本专利技术大致涉及人工智能领域,尤其涉及神经网络层训练方法、精度可调节的神经网络计算系统和计算机可读介质。

技术介绍

[0002]神经网络对于算力有一定要求。给定一个已经训练完成的神经网络,在算力受限的情况下如果需要保证计算速度,则需要牺牲精度。实际应用中算力可能是可以动态调整的,例如手机在电量高的情况下可以提供高算力,电量低的时候则需要降低算力节约能耗。在这种情况下,需要一种模型能够动态的平衡算力和精度,满足实际应用需要。
[0003]现有技术方案需要维护多个不同的模型,在不同的运行精度下准备各个精度下的模型,在部署的时候根据需要替换模型,满足应用需求。如图1A-1C所示的,其中图1A示出了低精度的神经网络模型,其中计算的精度最低,例如为1bit;图1B示出了高精度的神经网络模型,其中计算的精度最高,例如为32bit;图1C示出了中间精度的神经网络模型,其中计算的精度居中,例如为n1bit,其中1<n1<32。根据需要,也可以预先存储准备更多数目的中间精度的神经网络模型。在进行计算时,图1A的低精度的神经网络模型所需的电力或算力最低,同时精度最差;图1B的高精度的神经网络模型所需的电力或算力最高,同时精度最高;图1C的中间精度的神经网络模型所需的电力或算力居中,同时精度居中。
[0004]现有技术主要问题是存储空间成本高,部署缺乏灵活性。在模型准备阶段必须明确应用中需要的不同精度级别,针对每一种进度级别,训练模型。部署的时候需要根据精度需要载入不同的模型。如果遇到没有预先准备好的精度级别,则无法提供能满足需要的模型。在精度级别多的情况下,需要存储多个模型,对存储空间需求高。

技术实现思路

[0005]有鉴于现有技术的至少一个问题,本专利技术提供一种神经网络的层训练方法,所述层包括以第一精度存储的一个或多个权重参数,所述训练方法包括:
[0006]S101:为所述层提供输入;
[0007]S102:选择精度低于所述第一精度的第二精度;
[0008]S103:以所述第二精度量化所述一个或多个权重参数;
[0009]S104:以第二精度的所述一个或多个权重参数,基于所述输入,计算所述层的输出;
[0010]S105:通过反向传播算法,以第一精度更新所述一个或多个权重参数。
[0011]根据本专利技术的一个方面,所述的层训练方法还包括:调整所述第二精度,重复所述步骤S101、S102、S103和S104。
[0012]根据本专利技术的一个方面,所述步骤S102包括:随机选择精度低于第一精度的第二精度。
[0013]根据本专利技术的一个方面,所述的层训练方法还包括:以所述第一精度的所述一个
或多个权重参数,基于所述输入,计算所述层的输出。
[0014]根据本专利技术的一个方面,所述的层训练方法还包括:对所述神经网络的所有层,通过所述步骤S101、S102、S103、S104和S105来进行训练。
[0015]本专利技术还提供一种精度可调节的神经网络计算系统,包括IO接口、存储器、量化器和神经网络芯片,其中
[0016]所述IO接口配置成可输入/输出数据;
[0017]所述存储器配置成可存储神经网络模型和所述神经网络模型的权重参数,其中所述权重参数以第一精度存储;
[0018]所述量化器与所述存储器通讯,并且可以将所述权重参数量化为第二精度或第一精度并输出,所述第二精度低于所述第一精度;
[0019]所述神经网络芯片配置成可按照所述第一精度或第二精度的权重参数执行人工神经网络运算。
[0020]根据本专利技术的一个方面,所述量化器配置成可根据所述神经网络芯片的算力和/或电力,选择第一精度或不同的第二精度来量化所述权重参数。
[0021]根据本专利技术的一个方面,所述量化器配置成:随着所述神经网络芯片的算力降低和/或电力降低,选择较低的第一精度来量化所述权重参数。
[0022]根据本专利技术的一个方面,所述神经网络芯片配置成执行反向传播训练算法,并以第一精度更新所述权重参数。
[0023]本专利技术还提供一种计算机可读介质,具有存储于其上的指令,其中所述指令当被处理器执行时,可实施如上所述的层训练方法。
[0024]本专利技术提出了任意精度神经网络的概念和实现。使得在部署的时候可以把同一个模型动态的量化到不同的精度级别下。对于需要的精度级别不需要额外维护对应的模型,同时在实际使用中,提供更丰富的精度界别选项,避免遇到无法满足需求的问题。经验证发现,使用提出的方法训练完成的网络,在不同精度下的准确率和单独在这个精度级别下训练得到的模型的准确率保持在同一水平上。在不同精度下训练神经网络使得得到的参数能够动态的调整到不同的精度进行部署。通过维护不同精度下的批量标准化参数,得到这种训练方式可以收敛,得到需要的任意精度神经网络。通过动态修改网络模型的结构也可以达到类似的动态平衡算力需求和准确度需求的效果。但是和本方法是不冲突的方法,即两种方法可以同时被使用。任意精度神经网络和之前的方法对比,之前的方法中,神经网络每一层的精度在训练之后是固定的。而提出的任意精度神经网络支持动态的调整精度。为了实现任意精度的神经网络,本专利技术提出了在训练的时候联合训练不同精度参数的方法。对于模型中的每一个参数,维护一个全精度浮点数值。训练中,在每次前向传播的过程中,预先把参数量化到随机选择的一个精度级别,反向传播的时候把梯度更新到这个全精度的浮点数值上。这样使得网络在训练过程中得到的参数在部署的时候也可以动态的调整。考虑到当前常用神经网络的结构中大都包含批量标准化(BatchNorm)操作。方案中需要对于不同精度维护不同的批量标准化的参数,这个参数的数量和神经网络的总数相比很小,所以不会对存储大小造成明显变化。经验证发现使用提出的方法训练完成的网络,在不同精度下的准确率和单独在这个精度级别下训练得到的模型的准确率保持在同一水平上。
附图说明
[0025]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:
[0026]图1A示出了低精度的神经网络模型;
[0027]图1B示出了高精度的神经网络模型;
[0028]图1C示出了中间精度的神经网络模型;
[0029]图2示出了根据本专利技术一个实施例的一种神经网络的层训练方法;
[0030]图3示出了对层进行训练的图示说明;
[0031]图4示出了根据第二精度对权重进行量化的示意图;和
[0032]图5示出了根据本专利技术一个实施例的精度可调节的神经网络计算系统。
具体实施方式
[0033]在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本专利技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络的层训练方法,所述层包括以第一精度存储的一个或多个权重参数,所述训练方法包括:S101:为所述层提供输入;S102:选择精度低于所述第一精度的第二精度;S103:以所述第二精度量化所述一个或多个权重参数;S104:以第二精度的所述一个或多个权重参数,基于所述输入,计算所述层的输出;S105:通过反向传播算法,以第一精度更新所述一个或多个权重参数。2.如权利要求1或2所述的层训练方法,还包括:调整所述第二精度,重复所述步骤S101、S102、S103、S104和S105。3.如权利要求1或2所述的层训练方法,其中所述步骤S102包括:随机选择精度低于第一精度的第二精度。4.如权利要求1或2所述的层训练方法,还包括:以所述第一精度的所述一个或多个权重参数,基于所述输入,计算所述层的输出。5.如权利要求1或2所述的层训练方法,还包括:对所述神经网络的所有层,通过所述步骤S101、S102、S103、S104和S105来进行训练。6.一种精度可调节的神经网络计算系统,包括IO接口、存储器、量...

【专利技术属性】
技术研发人员:李皓翔俞海超华刚
申请(专利权)人:虫极科技北京有限公司
类型:发明
国别省市:

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

1