CN108345939A - 基于定点运算的神经网络 - Google Patents
基于定点运算的神经网络 Download PDFInfo
- Publication number
- CN108345939A CN108345939A CN201710061333.9A CN201710061333A CN108345939A CN 108345939 A CN108345939 A CN 108345939A CN 201710061333 A CN201710061333 A CN 201710061333A CN 108345939 A CN108345939 A CN 108345939A
- Authority
- CN
- China
- Prior art keywords
- parameter
- layer
- gradient
- fixed point
- convolutional layer
- 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.)
- Granted
Links
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
-
- 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/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本公开的实现提出了一种用于训练卷积神经网络的方案。在该方案中,利用定点格式来存储神经网络的参数,例如,权重和偏置。定点格式的参数具有预定义的位宽并且可以存储在专用处理设备的存储单元中。专用处理设备在执行方案时,接收对卷积层的输入,并且从存储单元读取卷积层的参数。专用处理设备可以基于卷积层的输入和所读取的参数来计算卷积层的输出。以这种方式,可以降低对专用处理设备的存储空间以及计算资源的要求。
Description
背景技术
神经网络在机器视觉、自然语言处理和语音识别等环境中具有非常广泛和深入的应用。卷积神经网络是一种特殊类型的神经网络,其包含大量的学习参数。大部分卷积神经网络需要大量的时间来进行训练,即使将卷积神经网络部署在一个或多个快速且耗能的图形处理单元(GPU)上。已经提出了用于提高神经网络计算速度的各种方案。但是,现有的方案在存储消耗和/或计算复杂性方面仍然存在亟待改进之处。
发明内容
根据本公开的实现,提出了一种用于训练神经网络的方案。在该方案中,利用定点格式来存储神经网络的参数,例如,权重和偏置。这些参数也称为原始(primal)参数,在每次迭代中进行更新。定点格式的参数具有预定义的位宽并且可以存储在专用处理设备的存储单元中。专用处理设备在执行方案时,接收对神经网络层的输入,并且从存储单元读取该层的参数。专用处理设备可以基于层的输入和所读取的参数来计算层的输出。以这种方式,可以降低对专用处理设备的存储空间和计算资源的要求。
提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
图1示意性示出了能够实施本公开的多个实现的计算环境的框图;
图2示意性示出了根据本公开的一个实现的神经网络的框图;
图3示意性示出了根据本公开的一个实现的神经网络的卷积层的正向传播的内部架构;
图4示意性示出了根据本公开的一个实现的神经网络的层的反向传播的内部架构;
图5示意性示出了根据本公开的一个实现的用于训练神经网络的方法的流程图;
图6示意性示出了根据本公开的一个实现的用于训练神经网络的设备的框图;
图7示意性示出了根据本公开的一个实现的神经网络的正向传播的框图;以及
图8示意性示出了根据本公开的一个实现的神经网络的反向传播的框图。
这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
近年来,大量的研究关注于使用现场可编程门阵列(FPGA)和专用集成电路(ASIC)之类的专用处理硬件来加速模型训练和推断。在这些方法中,模型量化被认为是最有前景的方案之一。这是因为,模型量化不仅显著地实现加速,能够提供功率效率,而且还实现了可比的精确度。模型量化尝试将模型参数(以及激活和梯度)量化为低位宽值,其中模型二进制化通过将模型参数量化为二进制值(一个比特,+1和-1)而进一步推动量化的极限。因此,在推断中,可以显著降低存储器的消耗和访问数量,并且可以利用位操作来实现大部分的算术运算,例如,二进制卷积核。然而,这些量化方案还需要进一步的提升空间,以进一步降低对存储器的消耗,降低计算复杂度等等。
以下参考附图来说明本公开的基本原理和若干示例实现。注意,为了方面描述,下文将主要参考卷积神经网络来描述本公开的实施例。相应地,将描述卷积层作为神经网络层的示例。但是应当理解,这并非有意限制本公开的范围。在此描述的思想和原理适用于任何目前已知或者将来开发的适当神经网络系统。
示例环境
图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100可以包括存储器102、控制器104和专用处理设备106。
在一些实现中,计算设备100可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
专用处理设备106还可以进一步包括存储单元108和处理单元110。例如,专用处理设备106可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、具有定制处理单元的处理器或中央处理单元(CPU)或者图形处理单元(GPU)。因此,存储单元108也可以成为片上存储器,相应地,存储器102也可以称为片外存储器。在一些实现中,处理单元110可以控制专用处理设备106的整体操作,并且可以执行各种计算。
存储器102可以由各种存储介质来实现,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器102可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储设备102可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。
控制器104可以控制计算过程的开始和结束,也可以提供卷积神经网络正向传播过程中所需要的输入。此外,控制器104还可以向神经网络提供权重数据。控制器104与专用处理设备106之间可以通过标准接口进行通信,例如PCIe总线等。控制器104将计算任务分配给专用处理设备106上的处理单元110。在处理单元110接收到控制器104的开始信号之后,开始计算过程。控制器104将输入和权重等提供给处理单元110,以由处理单元110进行计算。专用处理设备106的存储单元108可以用于存储卷积核权重等参数,存储器102可以存储输入和输出特征映射以及计算过程中产生的中间数据。专用处理设备106完成神经网络正向传播过程的计算,然后将卷积神经网络最后一层计算得到的输出结果返回给控制器104。然而,应当理解,上述控制过程仅是示例。本领域技术人员在理解本公开的实现之后可以对这些控制过程进行修改。
计算设备100或者专用处理设备106可以用于实施本公开的多种实现中的神经网络训练。在神经网络的训练过程中,模型参数,也称为原始(primal)参数,被定义为所存储的权重和偏置。这些参数在每次迭代期间进行更新。在现有技术中,这些参数以高精度格式存储。在每次正向传播之前,这些参数被量化或二进制化,并且相关梯度累加仍然在浮点域中执行。因此,FPGA和ASIC之类的专用处理设备仍然需要实现复杂的浮点乘法-累加运算来处理参数更新,设置更加复杂的非线性量化方法。
根据本公开的一些实现,通过将这些参数表示为定点格式进一步推动对量化的极限。将这些参数量化为定点格式可以降低这些参数的位宽,从而显著降低存储器空间。例如,与32位浮点数相比,8位定点数可以将存储空间降低为四分之一。这使得有可能将这些参数存储在专用处理设备的片上存储器上,而不是片外存储器。在45nm CMOS工艺节点的情况下,这意味着100倍的能量效率提升。此外,在专用处理设备上,低精度定点算术运算比浮点数更加快速、节能。而且,与更宽的时钟频率、更短的流水线和增加的吞吐量相结合,定点运算通常可以显著降低逻辑元件使用率和功耗。
卷积神经网络
卷积神经网络是一种特定类型的神经网络,通常包括多个层,每一层包括一个或多个神经元。每个神经元从神经网络的输入或者上一层获得输入数据,执行相应的操作,并且将结果输出给下一层或者神经网络模型的输出。神经网络的输入例如可以是图像,例如具有特定像素的RGB图像。在分类问题中,神经网络的输出为不同类别的评分或者概率。在神经网络的最后一层(通常为全连接层),可以设置有损失函数,损失函数可以是交叉熵损失函数。在训练神经网络的过程中,通常要求使得损失函数最小化。
卷积神经网络的结构针对输入数据为图像的情况进行了特殊设计。因此,在输入数据为图像的情况下,卷积神经网络十分高效,并且大幅度降低了神经网络中所需要的参数的数目。
在卷积神经网络中,每一层呈现三维排列:宽度、高度和深度。卷积神经网络的每一层将其三维输入数据转换为三维激活数据并输出。卷积神经网络是由各种层按照顺序排列组成,神经网络中的每一层将激活数据从一个层传递到另一个层。卷积神经网络主要包括三种类型的层:卷积层、汇聚层和全连接层。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。
图2示意性地示出了根据本公开的一些实现的卷积神经网络(CNN)200的架构。应当理解,卷积神经网络200的结构和功能仅为了说明的目的进行描述,而并不限制本公开的范围。本公开可以由不同的结构和/或功能来实现。
如图2所示,CNN 200包括输入层202、卷积层204和208、汇聚层206和210以及输出层212。一般而言,卷积层和汇聚层以交替形式组织。例如,如图2所示,卷积层204之后为相邻的汇聚层206,卷积层208之后为相邻的汇聚层210。然而,应当理解,卷积层之后也可以不存在相邻的汇聚层。在一些实现中,CNN 200仅包括汇聚层206和210中的一个。在一些实现中,也可以不使用汇聚层。
如上所述,输入层202、卷积层204和208、汇聚层206和210以及输出层212中的每一个包括一个或多个平面,也称为特征映射或通道。这些平面沿着深度维度布置,每个平面可以包括两个空间维度,宽度和高度,因而也称为空间域。
为了便于理解本公开的思想和原理,下面首先结合图像分类的例子应用来描述CNN 200的原理。当然,应当理解的是,CNN 200也容易扩展到任何其他合适的应用。输入层202可以由输入图像所表示,例如32*32的RGB图像。在这种情况下,输入层202的维度为32*32*3。换言之,图像的宽高均为32,并且具有3个颜色通道。
卷积层204和208中的每一个的特征映射可以通过对上一层的特征映射应用卷积操作来获得。通过卷积操作,卷积层的特征映射中的每个神经元仅与前一层的部分神经元连接。因此,向卷积层应用卷积操作意味着在这两层之间存在稀疏连接。卷积层在应用卷积操作之后,可以对所获得的结果应用激活函数,以确定卷积层的输出。
例如,在卷积层204中,每个神经元与输入层202中的一个局部区域相连,每个神经元计算这一局部区域与其权重的内积。卷积层204可以计算所有神经元的输出。如果使用12个滤波器(也称为卷积核),所得到的输出数据的维度就是[32x 32x 12]。在卷积层204中,还可以对每个输出数据进行激活操作。常见的激活函数包括Sigmoid、tanh、ReLU等。
汇聚层206和210在空间维度(宽度和高度)上对上一层的输出进行下采样操作,从而降低空间维度上的数据尺寸。输出层212通常为全连接层,其中的每个神经元与前一层的所有神经元连接。输出层212计算分类评分,将数据尺寸转换为一维向量。该一维向量的每个元素对应于相应的类别。例如,在用于分类的CIFAR-10中的图像的卷积网络,其最后的输出层的维度是1x 1x 10,因为卷积神经网络最终将会把图像压缩为包含分类评分的一个向量,该向量沿深度方向排列。
可以看出,卷积神经网络逐层将图像从原始像素值转换为最终的分类评分值。例如,卷积层和全连接层对相应输入进行操作时,不仅可以使用激活函数,也可以使用学习参数。卷积层和全连接层中的参数可以根据各种优化方案进行优化。这种优化方案的示例包括但不限于随机梯度下降法、自适应动量估计(ADAM)方法,等等。这样,对于训练数据集中的数据,可以尽量降低卷积神经网络所获得的分类评分与每个图像的标签之间的误差。
神经网络的训练可以使用反向传播方法来实现。在该方法中,将训练集输入到神经网络的输入层。例如,可以将训练集分批输入到神经网络的输入层,并且逐批迭代更新神经网络的参数。每个批次的样本可以被称为一个小批次(mini-batch)。在多次迭代之后,训练集中的所有样本被全部训练一次,这称为一个时代(epoch)。
在每次迭代过程中,多个输入,组成一个小批次,被提供给输入层。通过正向传播过程,将输入逐层传播至神经网络的输出层,从而可以确定神经网络的输出,例如分类评分。该分类评分可以与训练集中的标签进行比较,然后计算预测误差。例如,这可以由损失函数。输出层发现输出和正确的标签不一致。这时,调整神经网络中的最后一层的参数,然后将与其连接的倒数第二层的参数进行调整,然后逐层沿反向调整。在完成对神经网络的所有参数调整之后,对下一个小批次执行这一过程。如此,迭代地执行这一过程,直到满足预定义的终止条件为止。
二进制神经网络
以下介绍本公开的实现可应用于其中的二进制神经网络(BNN)。在BNN中,可以将权重和激活二进制化,从而可以使用比特卷积核,显著加速性能。在一些实现中,可以使用随机性方法将浮点数转换为一个比特。随机二进制化方案能够获得较好的性能,但是该方案的计算复杂度较高。这是因为该方案在进行量化时需要使用硬件资源来生成随机比特。在一些实现中,可以使用确定性方法将浮点数转换为一个比特。确定性方案具有较低的计算复杂度。例如,可以使用简单的符号函数sign(·)将浮点数转换为二进制,如公式(1)所示。
如公式(1)所示,权重w在大于或等于零时,被转换为+1,在小于零时被转换为-1,从而所获得的数值wb为一位的二进制数。这一二进制转换方法显著地降低正向传播中的计算复杂度和存储消耗。然而,符号函数的导数在几乎所有地方为零,使得损失函数c的梯度不能在反向过程中传播。为了解决这一问题,可以使用“直通式估计器”(Straight-ThroughEstimator,STE)方法,如公式(2)所示:
在公式(2)中,表示指示函数,其中在输入ri满足条件|ri|≤1时,指示函数的值为1,在输入ri满足条件|ri|≤1时,指示函数的值为0。由此可见,STE方法可以保留梯度信息,并且在ri太大时,去除梯度信息。如果在ri太大时,没有将梯度信息去除,则可能使得模型的性能明显下降。
从另一角度理解,STE也可以认为等价于向输入ri应用硬双曲正切激活函数(hard-tanh)HT,其中HT被定义为:
相应地,HT的导数被定义为:
可见,公式(4)与公式(2)中定义的STE完全相同。利用公式(3)和(4),神经网络可以在正向传播中将权重和激活均二进制化,同时仍然保持梯度为实数以确保随机梯度下降方法能够正常工作。
定点格式
根据本公开的实现,权重和梯度可以以定点格式存储。例如,权重可以以定点格式存储在专用处理设备106的存储单元108中。定点格式包括l位的有符号整数尾数和定点数共用的全局比例因子(例如,2-n),如公式(5)所示:
其中n和尾数m1~mK为整数。
可以看出,向量v包括K个元素v1~vK,这K个元素共用一个比例因子2-n。整数n实际上表示l位定点数的小数点位置。换言之,比例因子实际上表示小数点的位置。比例因子通常固定,也即小数点固定,因而这种类型的数据格式称为定点数。减小比例因子减小定点格式的范围,但是增加了定点格式的精度。比例因子通常为2的幂,这是因为比例乘法可以由移位来代替,从而降低计算复杂度。
在一些实现中,可以使用以下公式(6)将数据x(例如,浮点数)转换为比例因子为2-n的l位定点数。
其中表示向下取整,MIN和MAX分别表示比例因子为2-n的l位定点数所能表示的最大值和最小值。在一些实现中,为了充分利用所有序数的2l以使得加法和乘法电路更加简单,MIN和MAX可如下定义:
可以看出,公式(6)还定义了取整行为,即由向下取整操作所表示。此外,公式(6)定义了由Clip所表示的饱和行为。换言之,在大于MAX时,将转换后的定点数的取值为MAX,并且在小于MIN时,将转换后的定点数的取值确定为MIN。
在下文中,如果没有另外指明,将数据转换为定点格式的操作均可以通过公式(6)和(7)来实现。当然,也可以使用其他任何适当的转换操作。
量化
在训练过程中,参数、激活和梯度的大小都会发生波动,其中梯度的波动最为明显。为了与这些波动相匹配,可以将不同的位宽和比例因子分配给不同层的参数、激活和梯度,并且在迭代过程中,还可以相应地更新这些量的比例因子。此外,还可以将不同的比例因子分配给参数中的权重和偏置。
在本公开的一些实现中,可以基于数据的范围来更新比例因子。具体地,可以基于数据的溢出情况(例如,溢出率和/或溢出数目)来确定是否更新比例因子以及如何更新比例因子。以下以权重为例来说明更新比例因子的方法,然而应当理解,这一方法也可以应用于其他量。
在当前的比例因子的情况下,可以确定权重的溢出率是否超过预定义阈值。如果溢出率超过预定义阈值,则表明定点数的范围太小,因而需要增大比例因子。例如,可以将比例因子乘以基数(例如,2)。例如,可以将小数点向右移动一位。如果溢出率没有超过该预定义阈值并且在将权重乘以2的情况下溢出率仍低于该预定义阈值,则表明定点数的范围太大。因此,可以减小比例因子,例如,将比例因子除以基数(例如,2)。例如,可以将小数点的位置向左平移一位。
与二进制的权重和激活相比,梯度通常需要更高的精度。因此,对梯度的量化需要着重的考虑。由于线性量化方案通常无法很好收敛,因而通常使用非线性量化函数对梯度进行量化。这些非线性量化函数不可避免地需要增加计算复杂度,因而是不期望的。因此,根据本公开的一些实现,使用线性量化方案来降低计算复杂度。如上所述,如果简单地将线性量化函数用在神经网络的训练中,会导致太强的约化,阻碍神经网络模型收敛。然而,在使用自适应比例因子更新方案的情况下,可以使用线性量化方案,而不会导致无法收敛或者模型性能的显著下降。
正向传播
图3示意性示出了根据本公开的一个实现的卷积神经网络的卷积层300的正向传播的内部架构。卷积层300可以是神经网络的第k层。例如,卷积层300可以是图2的卷积神经网络的卷积层204或者208。在图3中,图例10表示二进制数,图例20表示定点数。应当理解,尽管在图3中示出了多个模块或子层,然而,在具体实现中可以根据不同的目的省略或修改各个子层。
如图3所示,卷积层300的参数包括权重302和偏置304,其可以分别被表示为和即第k层的权重和偏置。在一些实现中,卷积层300的参数可以以定点格式表示和存储,而不是浮点格式。这些定点格式的参数可以被存储在专用处理设备106的存储单元108上。在使用时,可以从存储单元108读取这些定点格式的参数。
在正向传播过程中,定点格式的权重302通过二进制子层308被转换为二进制格式的权重310,其可以被表示为例如,二进制子层308可以通过符号函数将定点格式的权重302转换为二进制格式的权重310,如公式(1)所示。卷积层300还接收输入306,其可以被表示为例如,在卷积层300为神经网络的输入层的情况下(即,k=1),输入306可以是例如神经网络的输入图像。在这种情况下,输入306可以视为8位的整数向量(0-255)。在其他情况下,例如卷积层300为神经网络的隐藏层或输出层,输入306可以是上一层的输出,因此可以是二进制向量(+1或-1)。在这两种情况下,卷积操作都仅包含整数乘法和累加,并且可以通过二进制卷积核来计算。在一些实现中,如果卷积层300为第一层,则可以根据公式(8)进行处理。
其中x表示例如8位的定点格式的输入306,wb表示二进制权重,xn表示向量x的第n个元素的尾数。
归一化子层316代表整数批次归一化(IBN)子层,其利用均值和方差将小批次内的输入张量进行归一化。与在浮点域中进行的常规批次归一化方法不同,在子层316中所涉及的所有中间结果都是32位整数或者低精度定点数。由于整数是定点数一种特殊形式,因此在IBN子层316中仅包括相应的定点操作。然后,量化子层318将IBN子层316的输出转化为预定义定点格式。具体地,对于IBN子层316而言,输入可以是定点的小批次输入其包含N个元素。为获得归一化输出可以确定所有输入的和以及平方和然后,通过sum1和sum2来计算输入的均值mean←Round(sum1/N)和方差var←Round(sum2/N)-mean2。Round(·)表示对最接近的32位整数取整。然后,基于均值和方差来确定归一化输出归一化输出可以通过子层318被转换为预定义定点格式
对于IBN子层316的输出,可以使用如上在量化部分所描述的比例因子更新方法来对比例因子进行更新。例如,可以首先确定IBN输出的溢出率是否大于预定义阈值。如果溢出率大于预定义阈值,则增大IBN输出的范围。也即,此时,将增大比例因子或者说在基数为2的情况下将定点格式的小数点右移。由于与以上结合量化所描述的比例因子更新方法基本一致,因此,对其更新不再详细描述。
在一些实现中,求和子层320将IBN子层316的输出与偏置304相加,以提供输出sk。偏置304可以从专用处理设备106的存储单元108读取。激活子层322表示激活函数,通常由非线性激活函数来实现,例如,硬双曲正弦函数HT。激活子层322的输出通过量化子层324转换为定点格式的输出326,由表示,以提供给神经网络的下一层(k+1层)。此外,神经网络的最后一层可以不包括激活子层322和二进制子层324,即,损失函数层在浮点域中进行计算。
在一些实现中,在卷积层300之后存在汇聚层。例如,如图2所示,在卷积神经网络200中,卷积层204和208之后均存在汇聚层206。在这种情况下,可以将汇聚层合并到卷积层300中以进一步降低计算复杂度。例如,在卷积神经网络200中,可以将汇聚层206合并到卷积层204中实现。如图3所示,由虚线示出的汇聚子层314可以被合并到卷积层300中,并且可以放置在卷积子层312与IBN子层316之间。
以上结合一个卷积层300介绍了正向传播的过程,应当理解,整个神经网络的正向传播过程可以由多个类似的过程叠加而形成。例如,第k层的输出提供至第k+1层,作为第k+1层的输入,依次进行处理。在图2的卷积神经网络200中,可以通过卷积层300的架构(不含子层314)来确定卷积层204的输出。如果将卷积层204与汇聚层206合并在一起实现,则也可以通过卷积层300的架构(包含子层314)来确定汇聚层206的输出。然后,将该输出提供给卷积层208。最终,可以在输出层212提供分类类别。
反向传播
图4示意性示出了根据本公开的一个实现的卷积神经网络的卷积层400的反向传播的内部架构。图4从右向左示出了反向传播过程。在图4中,图例30表示浮点数,图例20表示定点数。应当理解,尽管这里使用标号300和400分别表示卷积层的正向和反向过程,然而卷积层300和400在神经网络中可以表示同一层。例如,卷积层300和400可以是卷积神经网络200中的卷积层204或208的正向和反向传播的实现架构。还应当理解,尽管在图4中示出了多个模块或子层,然而,在具体实现中可以根据不同的目的和情况而省略或修改各个子层。
如图4所示,在反向传播过程中,卷积层400从神经网络的下一层接收反向输入426。例如,如果卷积层400为第k层,则卷积层400从第k+1层接收反向输入426。反向输入426可以是损失函数对卷积层300的正向输出326的梯度。该梯度可以是浮点格式的,并且可以表示为
反向输入426通过量化子层424被转换为定点值430(表示为)。激活子层422基于定点值430来计算其输出,即损失函数相对于激活子层322的输入sk的梯度,由表示。
应当理解,图4中的大部分子层与图3所示的子层相对应。例如,在图3中的激活子层322与图4中的激活子层422相对应,激活子层422作为激活子层322的反向梯度操作。如果激活子层322的输入为x,输出为y,则对应的激活子层422的反向输入为损失函数对输出y的梯度,反向输出为损失函数对输入x的梯度。在图3中,如果使用硬双曲正切函数作为激活函数,则激活子层322所执行的操作如公式(3)所示。相应地,激活子层422所执行的操作如公式(4)所示。因此,在本公开的上下文中,通常将这两种类型的子层的名字不加区分。
激活子层422的反向输出被提供给求和子层420,求和子层420与求和子层320相对应,可以确定损失函数分别对求和子层320的两个输入的梯度。由于子层320的一个输入为偏置,因此可以确定损失函数对偏置的梯度,并将该梯度提供给量化子层428。然后,该梯度经过量化子层428被转换为定点格式的梯度,并且用于更新偏置404(由表示)。该定点格式具有特定的比例因子。该比例因子可以根据以上在量化部分所描述的比例因子更新方法进行更新。
求和子层420的另一个反向输出传播到IBN子层418。在正向传播过程中,可以利用定点格式来计算IBN子层418。然而,在反向传播过程中,如果使用同样的策略,将IBN的反向传播限制于定点表示,则可能出现不可忽略的精度损失。因此,在一些实现中,可以将IBN子层418重新返回到浮点域进行操作,以提供中间梯度输出。如图4所示,该中间梯度输出为损失函数对输入和参数的卷积的梯度。因此,在IBN子层418之后需要使用附加的量化子层416将浮点格式转换为定点格式。量化子层416将该中间梯度输出转换为定点格式,该定点格式具有特定的比例因子。该比例因子可以根据以上在量化部分所描述的比例因子更新方法进行更新。
卷积子层412进一步传播损失函数对权重的梯度和对卷积层的输入的梯度由于输入要么是8位的整数向量(对于第一层而言,即,k=1),要么是二进制向量(对于其他层而言,即,k≠1),并且权重是二进制向量,因此,卷积子层612仅包含定点乘法和加法,因而具有非常低的计算复杂度。
卷积子层412的反向输出提供给卷积层400的反向输出406提供给上一层。卷积子层412的反向输出通过量化子层408而转换为定点格式,以用于更新权重402(由表示)。该定点格式具有特定的比例因子。该比例因子可以根据以上在量化部分所描述的比例因子更新方法进行更新。
通过反向传播确定损失函数对参数的梯度之后,可以对参数进行更新。如上所述,可以使用各种更新策略来更新参数,例如,随机梯度下降法、自适应动量估计(ADAM)方法,等等。在一些实现中,可以在定点域中执行这些更新规则,从而进一步减少浮点运算。应当理解,这里虽然参考ADAM优化方法进行说明,但是也可以使用现有的或者将来开发的其他优化方法来实现。
ADAM方法根据损失函数对每个参数的梯度的一阶矩估计和二阶矩估计动态调整针对于每个参数的学习速率。定点ADAM优化方法与标准ADAM优化方法的区别在于,其完全在定点域中进行操作。换言之,其中间变量(例如,一阶矩估计和二阶矩估计)均通过定点数进行表示。具体地,一种定点ADAM学习规则可以由如下公式(9)表示,其将标准ADAM更新规则定点化。
其中表示逐元素平方为了简单起见,可以将和分别固定为1-β1和1-β2。FXP(·)表示公式(6)的函数。默认设置为1-β1=2-4,1-β2=2-8,以及∈=2-20。θt-1表示当前的定点参数值,其定点格式为l1,n1,θt表示更新后的定点参数值。梯度gt的定点格式为l2,n2,并且ηt为学习率。可以看出,ADAM方法通过计算中间变量mt,vt和ut来计算更新后的参数,并且仅包括相应的定点操作。
通过定点ADAM方法,可以计算出更新后的权重和偏置如上所述,这些参数可以以定点格式存储在专用处理设备106的存储单元108上。此外,如上所述,还可以更新这些参数的定点格式的比例因子。该比例因子可以根据以上在量化部分所描述的比例因子更新方法进行更新。
另外,如果在正向传播过程中将汇聚层合并到卷积层300中作为其汇聚子层314,则在反向传播过程中需要相应地将相应的汇聚层合并到卷积层400中作为其汇聚子层414。
可以看出,在图3和图4所示的架构中,最多只有两个部分由浮点数实现。第一部分为损失函数部分,第二部分为梯度在IBN子层418的反向传播。这样,尽可能地避免了使用浮点数运算,降低计算复杂度和存储空间。
此外,在图3和图4所示的架构中,量化子层可以通过线性量化方法所实现。与量化子层对应的定点参数的比例因子的自适应更新方法可以用来确保精度不会出现显著的损失。线性量化方法显著降低了计算复杂度,更加有利于卷积神经网络部署在专用处理设备上。
以上结合一个卷积层400介绍了反向传播的过程,应当理解,整个神经网络的反向传播过程可以由多个类似的过程叠加而形成。例如,第k+1层的反向输出可以被提供至第k层,作为第k层的反向输入,从而依次更新各层的参数。在图2的卷积神经网络200中,如果将卷积层204与汇聚层206合并在一起实现,则也可以通过卷积层300的架构(包含子层314)来确定卷积层204的反向输出。然后,将该反向输出提供给输入层202。最终,可以完成对神经网络200的所有参数的更新,从而完成对一个小批次的迭代。通过迭代完成对训练集中的所有小批次的迭代之后,可以称为完成了一次对数据集的完整迭代,也称为时代(epoch)。在多个时代之后,如果训练结果满足预定义的阈值条件,则可以认为训练完成。例如,阈值条件可以是预定义的时代数目或者预定义的精度。
此外,应当理解,不需要在每次迭代中应用自适应更新方法。例如,可以若干次迭代执行一次自适应更新方法,而且对于不同量的自适应更新方法的应用频率也可以不同。例如,由于梯度的波动较大,可以相对较为频繁地应用自适应更新方法。
模型训练
图5示意性地示出了根据本公开的一些实现的用于卷积神经网络的方法500的流程图。方法500可以在如图1所示的专用处理设备106上执行。如上所述,专用处理设备106可以是FPGA或者ASIC。
在502,接收对神经网络的卷积层的输入。如上所述,该输入可以从上一层接收,也可以是对神经网络的输入图像。输入可以对应于训练集中的一个小批次的样本。
在504,从专用处理设备106的存储单元108读取卷积层的参数,该参数是以第一定点格式存储在专用处理设备106的存储单元108上并且具有预定义的位宽。这些参数可以仅表示卷积层的权重参数或者偏置参数,也可以表示权重参数和偏置参数两者。一般而言,第一定点格式的位宽小于浮点数的位宽,从而减少存储单元108的存储空间。
在506,基于卷积层的输入和所读取的参数,通过定点操作来计算卷积层的输出。在一些实现中,可以对卷积层的输入和参数执行卷积操作,以获得中间输出。对中间输出执行归一化以获得归一化输出,归一化仅包括相应的定点操作。例如,归一化可以由如图3所示的IBN层316来实现。
在一些实现中,为了确保在保持模型精度的情况下减小第一定点格式的位宽,可以自适应地更新上述参数的比例因子。例如,在卷积层的输出处,可以接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度。基于反向输入,可以计算神经网络的损失函数对卷积层的参数的梯度。基于神经网络的损失函数对参数的梯度,可以更新第一定点格式的参数,第一定点格式的比例因子可以基于经更新的参数的范围而进行更新。例如,可以使用以上结合量化所描述的方法来更新参数的定点格式。
更新后的参数可以被存储在专用处理设备106的存储单元108上,以供下次迭代时读取。此外,没有必要在每次迭代更新参数的格式,而是可以以一定的频率来更新参数的定点格式。在一些实现中,更新参数仅包括相应的定点操作。例如,这可以使用定点ADAM优化方法来实现。
在一些实现中,损失函数对参数的梯度可以首先被转换为第二定点格式,然后用于更新第一定点格式的参数。第一定点格式可以与第二定点格式相同,也可以与第二定点格式不同。该转换方法可以通过线性量化方法执行。换言之,可以通过线性量化方法将神经网络的损失函数对参数的梯度转换为第二定点格式。然后,可以基于第二定点格式的梯度来更新第一定点格式的参数。在一些实现中,第二定点格式的比例因子可以基于损失函数对参数的梯度的范围而进行更新。如上所述,线性量化方法计算复杂度较低,并且在本公开的实现中由于采用了比例因子更新方法而不会导致性能的显著下降。
在一些实现中,计算卷积层的输出还包括:将归一化输出转换为第三定点格式的归一化输出,第三定点格式的比例因子可以基于第三定点格式的归一化输出的范围而进行更新。如图3所示,IBN子层316的输出可以被提供给量化子层318,量化子层318可以将IBN子层316的归一化输出转换为第二定点格式的归一化输出。第二定点格式的比例因子可以根据情况进行更新。例如,可以设置多少次迭代执行一次更新方法,该更新方法可以是以上在量化部分所描述的方法。
在一些实现中,该方法还包括:在卷积层的输出处接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度。然后,基于归一化的反向梯度操作,获得中间反向输出。换言之,基于反向输入来计算损失函数对上述卷积的梯度。例如,如图4所示,IBN梯度子层416反向梯度操作与IBN子层416的归一化对应。可以在IBN梯度子层416执行反向梯度操作,以获得中间反向输出。然后,可以将中间反向输出转换为第四定点格式。第四定点格式的比例因子可以基于中间反向输出的范围而进行更新。例如,第四定点格式的比例因子可以根据上文结合量化所描述的更新方法来进行更新。
应当理解,尽管方法500针对一个卷积层进行描述,但是应当理解,如上文结合图3和图4所描述的,整个神经网络的训练过程可以是方法500的过程的叠加。
专用处理设备的其他示例实现
图1中已经示出了专用处理设备106的一种示例实现。在图1所述的示例中,专用处理设备106包括存储单元108和处理单元110。存储单元108用于存储神经网络的参数。处理单元110用于从存储单元108中读取所存储的参数并且利用这些参数来对输入进行处理。
图6示意性地示出了专用处理设备106的另一示例实现的框图。如上所述,专用处理设备106可以是FPGA或者ASIC。
在此示例中,专用处理设备106包括存储模块602,其被配置为以第一定点格式存储神经网络的卷积层的参数,第一定点格式的参数具有预定义的位宽。可以理解,存储模块602在功能上类似于图1所示的存储单元108,二者可以使用相同或者不同的技术或工艺实现。一般而言,第一定点格式的位宽小于浮点数的位宽,从而减少存储模块602的存储空间。
专用处理设备106还包括接口模块604,其被配置为接收对卷积层的输入。在一些实现中,接口模块604可以用于处理神经网络的各层之间的输入输出。专用处理设备106还包括数据访问模块606,其被配置为从存储模块602读取卷积层的参数。在一些实现中,数据访问模块606可以用于与存储模块602交互,以处理对神经网络的参数的存取。专用处理设备106还可以包括计算模块608,其被配置为基于卷积层的输入和所读取的参数,通过定点操作来计算卷积层的输出。
在一些实现中,接口模块604还被配置为在卷积层的输出处接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度。此外,计算模块608还被配置为:基于反向输入来计算神经网络的损失函数对卷积层的参数的梯度;以及基于神经网络的损失函数对参数的梯度来更新第一定点格式的参数,第一定点格式的比例因子基于经更新的参数的范围而可更新。
在一些实现中,更新参数仅包括相应的定点操作。
在一些实现中,计算模块608还被配置为:通过线性量化方法将神经网络的损失函数对参数的梯度转换为第二定点格式,第二定点格式的比例因子基于损失函数对参数的梯度的范围而可更新;以及基于第二定点格式的梯度来更新参数。
在一些实现中,计算模块608还被配置为:对卷积层的输入和参数的卷积进行归一化以获得归一化输出,归一化仅包括相应的定点操作。
在一些实现中,计算模块608还被配置为:将归一化输出转换为第三定点格式的归一化输出,第三定点格式的比例因子基于第三定点格式的归一化输出的范围可更新。
在一些实现中,接口模块604还被配置为在卷积层的输出处获取对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度。此外,计算模块608还被配置为基于反向输入来计算损失函数对卷积的梯度;以及将损失函数对卷积的梯度转换为第四定点格式,第四定点格式的比例因子基于损失函数对卷积的梯度的范围而可更新。
测试与性能
以下介绍影响根据本公开的一些实现的神经网络训练模型的最终预测精度的重要因素。这些因素包括:批次归一化(BN)方案、存储参数的位宽和梯度的位宽。通过将这些因素单独地应用到二进制神经网络(BNN)上来逐一评估这些因素的影响。最后,将这些所有因素组合来获得神经网络模型。
在以下测试中,使用数据集CIFAR-30。数据集CIFAR-30是包含60K 32×32RGB微型图像的图像分类基准。该数据集包括10个类的对象,包括飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。每个类具有5K的训练图像和1K的测试图像。为了评估模型拟合能力和训练效率,通过堆叠图3和图4所示的神经网络的基本构造模块来设计具有不同规模的三种网络,包括小模型S、中模型M和大模型L。整体网络结构如图7和图8所示。
图7示意性示出了根据本公开的一个实现的卷积神经网络700的正向传播的框图,并且图8示意性示出了根据本公开的一个实现的卷积神经网络800的反向传播的框图。
在卷积神经网络700和800中,所有的卷积核为3×3维,并且在第一层中输出通道的数目分别为32、64和128。表1列出了三种网络的参数数目和乘法-累加操作(MAC)数目。在图7和图8中,层C21中的“×2(4或8)”表示C21中的输出通道的数目是层C11和C12中的数目的两倍(4倍或8倍),S表示相同填充(same padding),V表示有效填充(valid padding),MP表示最大值汇聚(max pooling)层,C表示卷积层,FC表示全连接层。在图7和图8中省略了每一层的具体架构,这可以参考图3和图4而获知。注意,无论是正向传播还是反向传播,损失函数层都是在浮点域进行计算。
表1
模型 | 参数数目 | MAC数目 |
小模型S | 0.58M | 39.82M |
中模型M | 2.32M | 156.60M |
大模型L | 9.29M | 623.74M |
在所有这些实验中,给定50K的训练图像,以200为批次大小。此外,总计进行37,500次迭代和150个时代(epoch)。由于一个时代表示使用训练集中的全部样本训练一次,而每次迭代使用一个批次的样本进行训练,因此每个时代包括250次迭代。另外,在这些实验中,使用定点ADAM优化方法或标准ADAM优化方法,并且最初将学习率设置为2-6,每50个时代将学习率降低2-4。
现在评估不同的归一化方案对预测精度的影响,包括标准的浮点BN和不同位宽的IBN输出。在这里,保持存储参数和所有的梯度为浮点格式,并使用标准ADAM算法来优化网络。注意,在这里每1,125次迭代(总迭代的3%)针对IBN的输出执行上文所描述的比例因子更新算法。比例因子更新算法的阈值被设置为0.01%。
经测试,神经网络精度损失对于IBN输出的位宽很稳定。最低可以将IBN输出的位宽降低至6位。如果继续降低IBN输出的位宽,则精度将出现断崖式下跌。
为了评估存储参数的位宽所导致的影响,在梯度为浮点数的情况下进行实验。在这种情况下,也适用标准ADAM算法来更新参数,并将更新后的参数以定点格式存储。测试显示,位宽为8位的参数足以用于保持性能,并且低于8位的位宽将带来显著的精度损失。另外,更新比例因子可以将值保持在正常范围内。相反,静态比例因子对模型参数施加太强的约化,导致位宽低于8位时难以收敛。
此外,还评估了梯度的位宽的影响。梯度比参数更加不稳定,这表明对梯度的比例因子的更新应当更加频繁。在一些实现中,每375次迭代(总迭代的1%)可以更新一次,并且可以使用定点ADAM方法。在测试中,存储参数设置为浮点数。经测试,减少梯度的位宽,预测精度下降非常缓慢。在梯度的位宽低于12位时,精度同样呈现断崖式下跌。这也与IBN输出和参数的位宽的影响类似。因此,IBN输出、参数和梯度的位宽小于阈值时,都会出现断崖式下跌。
将这三种效应组合在一起,进行测试,即将神经网络实现为基本上仅涉及定点数计算。这样,可以获得如表2所示的结果。
表2
由于参数存储在专用处理设备106的片上存储器(例如,存储单元108)中,相对存储量由参数数目与存储权重的位的乘积来表征。从图2可以看出,在存储权重的位宽为12位,并且梯度的位宽也为12位时,仍可以获得与较大位宽(例如,24位)可比的精确度。随着权重位宽的降低,存储量也得到明显的下降。因此,根据本公开的一些实现的神经网络训练方案可以在降低存储量的同时保持计算精度。
如表2所示,在梯度和存储权重的位宽为12位时,该方法可以实现与现有技术(未示出)可比的预测精度。然而,与现有技术相比,该方法显著地降低了存储量,从而显著地改善了系统性能。
示例实现方式
以下列出了本公开的一些示例实现方式。
根据本公开的一些实现,提供了一种专用处理设备。该专用处理设备包括:存储单元,被配置为以第一定点格式存储神经网络的层的参数,第一定点格式的参数具有预定义的位宽;处理单元,耦合至存储单元并且被配置为执行动作,动作包括:接收对层的输入;从存储单元读取层的参数;以及基于层的输入和所读取的参数,通过定点操作来计算层的输出。
在一些实现中,神经网络的层包括卷积层。
在一些实现中,动作还包括:在卷积层的输出处接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度;基于反向输入来计算神经网络的损失函数对卷积层的参数的梯度;以及基于神经网络的损失函数对参数的梯度来更新第一定点格式的参数,第一定点格式的比例因子基于经更新的参数的范围而可更新。
在一些实现中,更新参数仅包括相应的定点操作。
在一些实现中,基于神经网络的损失函数对参数的梯度来更新参数包括:通过线性量化方法将神经网络的损失函数对参数的梯度转换为第二定点格式,第二定点格式的比例因子基于损失函数对参数的梯度的范围而可更新;以及基于第二定点格式的梯度来更新参数。
在一些实现中,计算卷积层的输出包括:对卷积层的输入和参数的卷积进行归一化以获得归一化输出,归一化仅包括相应的定点操作。
在一些实现中,计算卷积层的输出还包括:将归一化输出转换为第三定点格式的归一化输出,第三定点格式的比例因子基于第三定点格式的归一化输出的范围可更新。
在一些实现中,动作还包括:在卷积层的输出处获取对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度;基于反向输入来计算损失函数对卷积的梯度;以及将损失函数对卷积的梯度转换为第四定点格式,第四定点格式的比例因子基于损失函数对卷积的梯度的范围而可更新。
在一些实现中,专用处理设备是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、具有定制处理单元的处理器或者图形处理单元(GPU)。
根据本公开的一些实现,提供了一种由专用处理设备执行的方法,专用处理设备包括存储单元和处理单元。该方法包括:接收对神经网络的卷积层的输入;从专用处理设备的存储单元读取卷积层的参数,参数以第一定点格式存储在存储单元中并且具有预定义的位宽;以及由处理单元基于卷积层的输入和所读取的参数,通过定点操作来计算卷积层的输出。
在一些实现中,神经网络的层包括卷积层。
在一些实现中,该方法还包括:在卷积层的输出处接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度;基于反向输入来计算神经网络的损失函数对卷积层的参数的梯度;以及基于神经网络的损失函数对参数的梯度来更新第一定点格式的参数,第一定点格式的比例因子基于经更新的参数的范围而可更新。
在一些实现中,更新参数仅包括相应的定点操作。
在一些实现中,基于神经网络的损失函数对参数的梯度来更新参数包括:通过线性量化方法将神经网络的损失函数对参数的梯度转换为第二定点格式,第二定点格式的比例因子基于损失函数对参数的梯度的范围而可更新;以及基于第二定点格式的梯度来更新参数。
在一些实现中,计算卷积层的输出包括:对卷积层的输入和参数的卷积进行归一化以获得归一化输出,归一化仅包括相应的定点操作。
在一些实现中,计算卷积层的输出还包括:将归一化输出转换为第三定点格式的归一化输出,第三定点格式的比例因子基于第三定点格式的归一化输出的范围可更新。
在一些实现中,该方法还包括:在卷积层的输出处获取对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度;基于反向输入来计算损失函数对卷积的梯度;以及将损失函数对卷积的梯度转换为第四定点格式,第四定点格式的比例因子基于损失函数对卷积的梯度的范围而可更新。
在一些实现中,专用处理设备是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、具有定制处理单元的处理器或者图形处理单元(GPU)。
根据本公开的一些实现,提供了一种专用处理设备。该专用处理设备,包括:存储模块,被配置为以第一定点格式存储神经网络的卷积层的参数,第一定点格式的参数具有预定义的位宽;接口模块,被配置为接收对卷积层的输入;数据访问模块,被配置为从存储模块读取卷积层的参数;以及计算模块,被配置为基于卷积层的输入和所读取的参数,通过定点操作来计算卷积层的输出。
在一些实现中,神经网络的层包括卷积层。
在一些实现中,接口模块还被配置为在卷积层的输出处接收对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度;计算模块还被配置为:基于反向输入来计算神经网络的损失函数对卷积层的参数的梯度;以及基于神经网络的损失函数对参数的梯度来更新第一定点格式的参数,第一定点格式的比例因子基于经更新的参数的范围而可更新。
在一些实现中,更新参数仅包括相应的定点操作。
在一些实现中,计算模块还被配置为:通过线性量化方法将神经网络的损失函数对参数的梯度转换为第二定点格式,第二定点格式的比例因子基于损失函数对参数的梯度的范围而可更新;以及基于第二定点格式的梯度来更新参数。
在一些实现中,计算模块还被配置为:对卷积层的输入和参数的卷积进行归一化以获得归一化输出,归一化仅包括相应的定点操作。
在一些实现中,计算模块还被配置为:将归一化输出转换为第三定点格式的归一化输出,第三定点格式的比例因子基于第三定点格式的归一化输出的范围可更新。
在一些实现中,接口模块还被配置为在卷积层的输出处获取对卷积层的反向输入,反向输入为神经网络的损失函数对卷积层的输出的梯度。此外,计算模块还被配置为基于反向输入来计算损失函数对卷积的梯度;以及将损失函数对卷积的梯度转换为第四定点格式,第四定点格式的比例因子基于损失函数对卷积的梯度的范围而可更新。
在一些实现中,专用处理设备是现场可编程门阵列(FPGA)或者专用集成电路(ASIC)、具有定制处理单元的处理器或者图形处理单元(GPU)。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种专用处理设备,包括:
存储单元,被配置为以第一定点格式存储神经网络的层的参数,所述第一定点格式的所述参数具有预定义的位宽;
处理单元,耦合至所述存储单元并且被配置为执行动作,所述动作包括:
接收对所述层的输入;
从所述存储单元读取所述层的所述参数;以及
基于所述层的所述输入和所读取的所述参数,通过定点操作来计算所述层的输出。
2.根据权利要求1所述的专用处理设备,其中所述层包括卷积层,并且所述动作还包括:
在所述卷积层的输出处接收对所述卷积层的反向输入,所述反向输入为所述神经网络的损失函数对所述卷积层的所述输出的梯度;
基于所述反向输入来计算所述神经网络的损失函数对所述卷积层的所述参数的梯度;以及
基于所述神经网络的损失函数对所述参数的梯度来更新所述第一定点格式的所述参数,所述第一定点格式的比例因子基于经更新的所述参数的范围而可更新。
3.根据权利要求2所述的专用处理设备,其中更新所述参数仅包括相应的定点操作。
4.根据权利要求2所述的专用处理设备,其中基于所述神经网络的损失函数对所述参数的梯度来更新所述参数包括:
通过线性量化方法将所述神经网络的损失函数对所述参数的梯度转换为第二定点格式,所述第二定点格式的比例因子基于所述损失函数对所述参数的所述梯度的范围而可更新;以及
基于所述第二定点格式的所述梯度来更新所述参数。
5.根据权利要求1所述的专用处理设备,其中所述层包括卷积层,并且计算所述层的输出包括:
对所述卷积层的所述输入和所述参数的卷积进行归一化以获得归一化输出,所述归一化仅包括相应的定点操作。
6.根据权利要求5所述的专用处理设备,其中计算所述卷积层的输出还包括:
将所述归一化输出转换为第三定点格式的归一化输出,所述第三定点格式的比例因子基于所述第三定点格式的所述归一化输出的范围可更新。
7.根据权利要求5所述的专用处理设备,其中所述动作还包括:
在所述卷积层的输出处获取对所述卷积层的反向输入,所述反向输入为所述神经网络的损失函数对所述卷积层的输出的梯度;
基于所述反向输入来计算所述损失函数对所述卷积的梯度;以及
将所述损失函数对所述卷积的梯度转换为第四定点格式,所述第四定点格式的比例因子基于所述损失函数对所述卷积的梯度的范围而可更新。
8.根据权利要求1所述的专用处理设备,其中所述专用处理设备是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、具有定制处理单元的处理器或者图形处理单元(GPU)。
9.一种由专用处理设备执行的方法,所述专用处理设备包括存储单元和处理单元,所述方法包括:
接收对神经网络的层的输入;
从所述专用处理设备的所述存储单元读取所述层的参数,所述参数以第一定点格式存储在所述存储单元中并且具有预定义的位宽;以及
由所述处理单元基于所述层的所述输入和所读取的所述参数通过定点操作来计算所述层的输出。
10.根据权利要求9所述的方法,其中所述层包括卷积层,并且所述方法还包括:
在所述卷积层的输出处接收对所述卷积层的反向输入,所述反向输入为所述神经网络的损失函数对所述卷积层的所述输出的梯度;
基于所述反向输入来计算所述神经网络的损失函数对所述卷积层的所述参数的梯度;以及
基于所述神经网络的损失函数对所述参数的梯度来更新所述第一定点格式的所述参数,所述第一定点格式的比例因子基于经更新的所述参数的范围而可更新。
11.根据权利要求10所述的方法,其中更新所述参数仅包括相应的定点操作。
12.根据权利要求10所述的方法,其中基于所述神经网络的损失函数对所述参数的梯度来更新所述参数包括:
通过线性量化方法将所述神经网络的损失函数对所述参数的梯度转换为第二定点格式,所述第二定点格式的比例因子基于所述损失函数对所述参数的所述梯度的范围而可更新;以及
基于所述第二定点格式的所述梯度来更新所述参数。
13.根据权利要求9所述的方法,其中所述层包括卷积层,并且计算所述层的输出包括:
对所述卷积层的所述输入和所述参数的卷积进行归一化以获得归一化输出,所述归一化仅包括相应的定点操作。
14.根据权利要求13所述的方法,其中计算所述卷积层的输出还包括:
将所述归一化输出转换为第三定点格式的归一化输出,所述第三定点格式的比例因子基于所述第三定点格式的所述归一化输出的范围可更新。
15.根据权利要求13所述的方法,还包括:
在所述卷积层的输出处获取对所述卷积层的反向输入,所述反向输入为所述神经网络的损失函数对所述卷积层的输出的梯度;
基于所述反向输入来计算所述损失函数对所述卷积的梯度;以及
将所述损失函数对所述卷积的梯度转换为第四定点格式,所述第四定点格式的比例因子基于所述损失函数对所述卷积的梯度的范围而可更新。
16.一种专用处理设备,包括:
存储模块,被配置为以第一定点格式存储神经网络的层的参数,所述第一定点格式的所述参数具有预定义的位宽;
接口模块,被配置为接收对所述层的输入;
数据访问模块,被配置为从所述存储模块读取所述层的所述参数;以及
计算模块,被配置为基于所述层的所述输入和所读取的所述参数,通过定点操作来计算所述层的输出。
17.根据权利要求16所述的专用处理设备,其中所述层包括卷积层,并且其中:
所述接口模块还被配置为在所述卷积层的输出处接收对所述卷积层的反向输入,所述反向输入为所述神经网络的损失函数对所述卷积层的所述输出的梯度;
所述计算模块还被配置为:
基于所述反向输入来计算所述神经网络的损失函数对所述卷积层的所述参数的梯度;以及
基于所述神经网络的损失函数对所述参数的梯度来更新所述第一定点格式的所述参数,所述第一定点格式的比例因子基于经更新的所述参数的范围而可更新。
18.根据权利要求17所述的专用处理设备,其中更新所述参数仅包括相应的定点操作。
19.根据权利要求17所述的专用处理设备,其中所述计算模块还被配置为:
通过线性量化方法将所述神经网络的损失函数对所述参数的梯度转换为第二定点格式,所述第二定点格式的比例因子基于所述损失函数对所述参数的所述梯度的范围而可更新;以及
基于所述第二定点格式的所述梯度来更新所述参数。
20.根据权利要求16所述的专用处理设备,其中所述层包括卷积层,并且所述计算模块还被配置为:
对所述卷积层的所述输入和所述参数的卷积进行归一化以获得归一化输出,所述归一化仅包括相应的定点操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710061333.9A CN108345939B (zh) | 2017-01-25 | 2017-01-25 | 基于定点运算的神经网络 |
PCT/US2018/014303 WO2018140294A1 (en) | 2017-01-25 | 2018-01-19 | Neural network based on fixed-point operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710061333.9A CN108345939B (zh) | 2017-01-25 | 2017-01-25 | 基于定点运算的神经网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345939A true CN108345939A (zh) | 2018-07-31 |
CN108345939B CN108345939B (zh) | 2022-05-24 |
Family
ID=61569403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710061333.9A Active CN108345939B (zh) | 2017-01-25 | 2017-01-25 | 基于定点运算的神经网络 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108345939B (zh) |
WO (1) | WO2018140294A1 (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508784A (zh) * | 2018-12-28 | 2019-03-22 | 四川那智科技有限公司 | 一种神经网络激活函数的设计方法 |
CN109670582A (zh) * | 2018-12-28 | 2019-04-23 | 四川那智科技有限公司 | 一种全定点化神经网络的设计方法 |
CN109697083A (zh) * | 2018-12-27 | 2019-04-30 | 深圳云天励飞技术有限公司 | 数据的定点化加速方法、装置、电子设备及存储介质 |
CN109740733A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 深度学习网络模型优化方法、装置及相关设备 |
CN109800859A (zh) * | 2018-12-25 | 2019-05-24 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN110059815A (zh) * | 2018-09-11 | 2019-07-26 | 海青智盈技术公司 | 人工智能推理计算设备 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN110414599A (zh) * | 2018-10-22 | 2019-11-05 | 海青智盈技术公司 | 基于集成学习的图像分类系统 |
CN110705696A (zh) * | 2019-10-11 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 神经网络的量化与定点化融合方法及装置 |
CN110874628A (zh) * | 2018-09-03 | 2020-03-10 | 三星电子株式会社 | 人工神经网络及其中控制定点的方法 |
CN110929838A (zh) * | 2018-09-19 | 2020-03-27 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
CN111027691A (zh) * | 2019-12-25 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 用于神经网络运算的计算装置及其集成电路板卡 |
CN111062475A (zh) * | 2018-10-17 | 2020-04-24 | 三星电子株式会社 | 用于对神经网络的参数进行量化的方法和装置 |
CN111126558A (zh) * | 2018-10-31 | 2020-05-08 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111191783A (zh) * | 2018-11-15 | 2020-05-22 | 北京嘉楠捷思信息技术有限公司 | 一种自适应量化方法及装置、设备、介质 |
CN111242274A (zh) * | 2018-11-29 | 2020-06-05 | 意法半导体(鲁塞)公司 | 用于分析神经网络参数集合的方法 |
CN111831355A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
CN111831356A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
CN111831354A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 |
CN112085187A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112308216A (zh) * | 2019-07-26 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 数据块的处理方法、装置及存储介质 |
CN112508167A (zh) * | 2019-09-13 | 2021-03-16 | 富士通株式会社 | 信息处理装置和方法以及记录介质 |
CN112673383A (zh) * | 2018-10-11 | 2021-04-16 | 国际商业机器公司 | 神经网络核中动态精度的数据表示 |
CN112930543A (zh) * | 2018-10-10 | 2021-06-08 | 利普麦德股份有限公司 | 神经网络处理装置、神经网络处理方法和神经网络处理程序 |
CN113111998A (zh) * | 2020-01-09 | 2021-07-13 | 富士通株式会社 | 信息处理设备、计算机可读存储介质和神经网络计算方法 |
CN113255901A (zh) * | 2021-07-06 | 2021-08-13 | 上海齐感电子信息科技有限公司 | 实时量化方法及实时量化系统 |
WO2020026160A3 (zh) * | 2018-08-01 | 2021-10-07 | 南京天数智芯科技有限公司 | 一种用于人工智能设备的核心计算单元处理器及加速处理方法 |
CN113554159A (zh) * | 2020-04-23 | 2021-10-26 | 意法半导体(鲁塞)公司 | 用于在集成电路中实现人工神经网络的方法和装置 |
US11797850B2 (en) | 2020-07-09 | 2023-10-24 | Lynxi Technologies Co., Ltd. | Weight precision configuration method and apparatus, computer device and storage medium |
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
CN113469354B (zh) * | 2020-03-31 | 2024-05-21 | 亚马逊技术股份有限公司 | 受存储器限制的神经网络训练 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11755880B2 (en) * | 2018-03-09 | 2023-09-12 | Canon Kabushiki Kaisha | Method and apparatus for optimizing and applying multilayer neural network model, and storage medium |
CN109165736B (zh) * | 2018-08-08 | 2023-12-12 | 北京字节跳动网络技术有限公司 | 应用于卷积神经网络的信息处理方法和装置 |
US11636319B2 (en) | 2018-08-22 | 2023-04-25 | Intel Corporation | Iterative normalization for machine learning applications |
CN109284761B (zh) * | 2018-09-04 | 2020-11-27 | 苏州科达科技股份有限公司 | 一种图像特征提取方法、装置、设备及可读存储介质 |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
CN110969217B (zh) * | 2018-09-28 | 2023-11-17 | 杭州海康威视数字技术股份有限公司 | 基于卷积神经网络进行图像处理的方法和装置 |
WO2020080665A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Methods and apparatuses for performing artificial intelligence encoding and artificial intelligence decoding on image |
WO2020080765A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image |
US11616988B2 (en) | 2018-10-19 | 2023-03-28 | Samsung Electronics Co., Ltd. | Method and device for evaluating subjective quality of video |
KR102312338B1 (ko) * | 2018-10-19 | 2021-10-14 | 삼성전자주식회사 | Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법 |
WO2020080827A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same |
US11720997B2 (en) | 2018-10-19 | 2023-08-08 | Samsung Electronics Co.. Ltd. | Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof |
WO2020080873A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming data |
KR102525578B1 (ko) | 2018-10-19 | 2023-04-26 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
CN111144560B (zh) * | 2018-11-05 | 2024-02-02 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络运算方法及装置 |
US11995532B2 (en) * | 2018-12-05 | 2024-05-28 | Arm Limited | Systems and devices for configuring neural network circuitry |
CN111353517B (zh) * | 2018-12-24 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 一种车牌识别方法、装置及电子设备 |
US10325352B1 (en) * | 2019-01-23 | 2019-06-18 | StradVision, Inc. | Method and device for transforming CNN layers to optimize CNN parameter quantization to be used for mobile devices or compact networks with high precision via hardware optimization |
CN109800877B (zh) * | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN111723901B (zh) * | 2019-03-19 | 2024-01-12 | 百度在线网络技术(北京)有限公司 | 神经网络模型的训练方法及装置 |
CN110110852B (zh) * | 2019-05-15 | 2023-04-07 | 电科瑞达(成都)科技有限公司 | 一种深度学习网络移植到fpag平台的方法 |
EP3772022A1 (en) * | 2019-06-12 | 2021-02-03 | Shanghai Cambricon Information Technology Co., Ltd | Method for determining quantization parameters in neural network and related products |
CN110378470B (zh) * | 2019-07-19 | 2023-08-18 | Oppo广东移动通信有限公司 | 神经网络模型的优化方法、装置以及计算机存储介质 |
CN112561028A (zh) * | 2019-09-25 | 2021-03-26 | 华为技术有限公司 | 训练神经网络模型的方法、数据处理的方法及装置 |
US11922316B2 (en) * | 2019-10-15 | 2024-03-05 | Lg Electronics Inc. | Training a neural network using periodic sampling over model weights |
KR20210056179A (ko) | 2019-11-08 | 2021-05-18 | 삼성전자주식회사 | Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법 |
CN111144564A (zh) * | 2019-12-25 | 2020-05-12 | 上海寒武纪信息科技有限公司 | 对神经网络执行训练的设备及其集成电路板卡 |
CN111368978B (zh) * | 2020-03-02 | 2023-03-24 | 开放智能机器(上海)有限公司 | 一种离线量化工具的精度提升方法 |
CN113468935B (zh) * | 2020-05-08 | 2024-04-02 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN113673664B (zh) * | 2020-05-14 | 2023-09-12 | 杭州海康威视数字技术股份有限公司 | 数据溢出检测方法、装置、设备及存储介质 |
WO2022009433A1 (ja) * | 2020-07-10 | 2022-01-13 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
CN113780523B (zh) * | 2021-08-27 | 2024-03-29 | 深圳云天励飞技术股份有限公司 | 图像处理方法、装置、终端设备及存储介质 |
CN113963241B (zh) * | 2021-12-22 | 2022-03-08 | 苏州浪潮智能科技有限公司 | Fpga硬件架构及其数据处理方法、存储介质 |
CN114492779A (zh) * | 2022-02-16 | 2022-05-13 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200787A (zh) * | 2011-04-18 | 2011-09-28 | 重庆大学 | 机器人行为多层次集成学习方法及系统 |
WO2015148189A2 (en) * | 2014-03-24 | 2015-10-01 | Qualcomm Incorporated | Differential encoding in neural networks |
CN105488563A (zh) * | 2015-12-16 | 2016-04-13 | 重庆大学 | 面向深度学习的稀疏自适应神经网络、算法及实现装置 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
US20160328647A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
-
2017
- 2017-01-25 CN CN201710061333.9A patent/CN108345939B/zh active Active
-
2018
- 2018-01-19 WO PCT/US2018/014303 patent/WO2018140294A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200787A (zh) * | 2011-04-18 | 2011-09-28 | 重庆大学 | 机器人行为多层次集成学习方法及系统 |
WO2015148189A2 (en) * | 2014-03-24 | 2015-10-01 | Qualcomm Incorporated | Differential encoding in neural networks |
US20160328647A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN105488563A (zh) * | 2015-12-16 | 2016-04-13 | 重庆大学 | 面向深度学习的稀疏自适应神经网络、算法及实现装置 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
Non-Patent Citations (2)
Title |
---|
SRIRAM V ET AL: "《FPGA Supercomputing Platforms,Architectures,and Techniques for Accelerating Computationally Complex Algorithms》", 《SPRINGLINK》 * |
包健等: "《一种定点数权值神经网络的优化方法及其应用》", 《计算机应用》 * |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020026160A3 (zh) * | 2018-08-01 | 2021-10-07 | 南京天数智芯科技有限公司 | 一种用于人工智能设备的核心计算单元处理器及加速处理方法 |
CN110874628A (zh) * | 2018-09-03 | 2020-03-10 | 三星电子株式会社 | 人工神经网络及其中控制定点的方法 |
CN110059815A (zh) * | 2018-09-11 | 2019-07-26 | 海青智盈技术公司 | 人工智能推理计算设备 |
CN110059815B (zh) * | 2018-09-11 | 2020-03-24 | 海青智盈技术公司 | 人工智能推理计算设备 |
CN110929838B (zh) * | 2018-09-19 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
CN110929838A (zh) * | 2018-09-19 | 2020-03-27 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
CN112930543A (zh) * | 2018-10-10 | 2021-06-08 | 利普麦德股份有限公司 | 神经网络处理装置、神经网络处理方法和神经网络处理程序 |
CN112673383A (zh) * | 2018-10-11 | 2021-04-16 | 国际商业机器公司 | 神经网络核中动态精度的数据表示 |
US12026611B2 (en) | 2018-10-17 | 2024-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for quantizing parameters of neural network |
CN111062475A (zh) * | 2018-10-17 | 2020-04-24 | 三星电子株式会社 | 用于对神经网络的参数进行量化的方法和装置 |
CN110414599A (zh) * | 2018-10-22 | 2019-11-05 | 海青智盈技术公司 | 基于集成学习的图像分类系统 |
CN111126558B (zh) * | 2018-10-31 | 2024-04-02 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111126558A (zh) * | 2018-10-31 | 2020-05-08 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111191783A (zh) * | 2018-11-15 | 2020-05-22 | 北京嘉楠捷思信息技术有限公司 | 一种自适应量化方法及装置、设备、介质 |
CN111191783B (zh) * | 2018-11-15 | 2024-04-05 | 嘉楠明芯(北京)科技有限公司 | 一种自适应量化方法及装置、设备、介质 |
CN111242274B (zh) * | 2018-11-29 | 2024-02-06 | 意法半导体(鲁塞)公司 | 用于分析神经网络参数集合的方法 |
CN111242274A (zh) * | 2018-11-29 | 2020-06-05 | 意法半导体(鲁塞)公司 | 用于分析神经网络参数集合的方法 |
CN109800859A (zh) * | 2018-12-25 | 2019-05-24 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN109800859B (zh) * | 2018-12-25 | 2021-01-12 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN109740733A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 深度学习网络模型优化方法、装置及相关设备 |
CN109697083A (zh) * | 2018-12-27 | 2019-04-30 | 深圳云天励飞技术有限公司 | 数据的定点化加速方法、装置、电子设备及存储介质 |
CN109740733B (zh) * | 2018-12-27 | 2021-07-06 | 深圳云天励飞技术有限公司 | 深度学习网络模型优化方法、装置及相关设备 |
CN109508784A (zh) * | 2018-12-28 | 2019-03-22 | 四川那智科技有限公司 | 一种神经网络激活函数的设计方法 |
CN109508784B (zh) * | 2018-12-28 | 2021-07-27 | 四川那智科技有限公司 | 一种神经网络激活函数的设计方法 |
CN109670582A (zh) * | 2018-12-28 | 2019-04-23 | 四川那智科技有限公司 | 一种全定点化神经网络的设计方法 |
CN110222821B (zh) * | 2019-05-30 | 2022-03-25 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN112085187A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112308216A (zh) * | 2019-07-26 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 数据块的处理方法、装置及存储介质 |
CN112508167A (zh) * | 2019-09-13 | 2021-03-16 | 富士通株式会社 | 信息处理装置和方法以及记录介质 |
WO2021068469A1 (zh) * | 2019-10-11 | 2021-04-15 | 百度在线网络技术(北京)有限公司 | 神经网络的量化与定点化融合方法及装置 |
CN110705696B (zh) * | 2019-10-11 | 2022-06-28 | 阿波罗智能技术(北京)有限公司 | 神经网络的量化与定点化融合方法及装置 |
CN110705696A (zh) * | 2019-10-11 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 神经网络的量化与定点化融合方法及装置 |
CN111027691B (zh) * | 2019-12-25 | 2023-01-17 | 上海寒武纪信息科技有限公司 | 用于神经网络运算、训练的装置、设备及板卡 |
CN111027691A (zh) * | 2019-12-25 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 用于神经网络运算的计算装置及其集成电路板卡 |
CN113111998A (zh) * | 2020-01-09 | 2021-07-13 | 富士通株式会社 | 信息处理设备、计算机可读存储介质和神经网络计算方法 |
CN113469354B (zh) * | 2020-03-31 | 2024-05-21 | 亚马逊技术股份有限公司 | 受存储器限制的神经网络训练 |
CN113554159A (zh) * | 2020-04-23 | 2021-10-26 | 意法半导体(鲁塞)公司 | 用于在集成电路中实现人工神经网络的方法和装置 |
CN111831355A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
US11797850B2 (en) | 2020-07-09 | 2023-10-24 | Lynxi Technologies Co., Ltd. | Weight precision configuration method and apparatus, computer device and storage medium |
CN111831356A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
CN111831354A (zh) * | 2020-07-09 | 2020-10-27 | 北京灵汐科技有限公司 | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 |
CN113255901A (zh) * | 2021-07-06 | 2021-08-13 | 上海齐感电子信息科技有限公司 | 实时量化方法及实时量化系统 |
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018140294A1 (en) | 2018-08-02 |
CN108345939B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345939A (zh) | 基于定点运算的神经网络 | |
US20210004663A1 (en) | Neural network device and method of quantizing parameters of neural network | |
KR102672004B1 (ko) | 저 정밀도 뉴럴 네트워크 학습을 위한 방법 및 장치 | |
CN108154228B (zh) | 一种人工神经网络计算装置和方法 | |
US11295208B2 (en) | Robust gradient weight compression schemes for deep learning applications | |
CN111353579A (zh) | 利用反向传播为深度神经网络选择量化参数的方法和系统 | |
CN108351881A (zh) | 分布式最优化的系统和方法 | |
US20200117981A1 (en) | Data representation for dynamic precision in neural network cores | |
WO2019238029A1 (zh) | 卷积神经网络系统和卷积神经网络量化的方法 | |
US20210264279A1 (en) | Learned step size quantization | |
US20220237262A1 (en) | Power efficient multiply-accumulate circuitry | |
CN109344893A (zh) | 一种基于移动终端的图像分类方法及系统 | |
WO2019001323A1 (zh) | 信号处理的系统和方法 | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
CN113994347A (zh) | 用于负值和正值的非对称缩放因子支持的系统和方法 | |
US20240104342A1 (en) | Methods, systems, and media for low-bit neural networks using bit shift operations | |
CN116882469B (zh) | 用于情感识别的脉冲神经网络部署方法、装置及设备 | |
CN111937011A (zh) | 一种神经网络模型权重参数的确定方法及设备 | |
Yang et al. | BSRA: Block-based super resolution accelerator with hardware efficient pixel attention | |
CN115953651A (zh) | 一种基于跨域设备的模型训练方法、装置、设备及介质 | |
US20220414458A1 (en) | Deep learning network device, memory access method and non-volatile storage medium | |
KR20240025540A (ko) | 깊이별 콘볼루션을 위한 메모리 아키텍처에서의 컴퓨테이션 | |
CN117751346A (zh) | 用于存储器中数字计算的折叠列加法器架构 | |
CN111814368B (zh) | 基于张量的土地利用模拟方法、系统、设备及存储介质 | |
CN114580625A (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 |