CN111047020B - 支持压缩及解压缩的神经网络运算装置及方法 - Google Patents
支持压缩及解压缩的神经网络运算装置及方法 Download PDFInfo
- Publication number
- CN111047020B CN111047020B CN201811188905.0A CN201811188905A CN111047020B CN 111047020 B CN111047020 B CN 111047020B CN 201811188905 A CN201811188905 A CN 201811188905A CN 111047020 B CN111047020 B CN 111047020B
- Authority
- CN
- China
- Prior art keywords
- unit
- parameter
- neural network
- decompression
- network model
- 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/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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3062—Compressive sampling or sensing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开涉及一种支持压缩及解压缩的神经网络运算装置及方法,所述装置包括:参数压缩单元,确定神经网络模型的待压缩参数,并利用编码器对待压缩参数进行压缩处理,获得与神经网络模型对应的语义向量;参数存储单元,存储与神经网络模型对应的语义向量,向参数解压缩单元或运算单元发送所述语义向量;参数解压缩单元,对语义向量进行解压缩处理,获得神经网络模型的解压缩参数,并向运算单元发送解压缩参数;及运算单元,用于进行与神经网络模型相关联的运算。本公开可以对待压缩参数进行压缩,从而有效减少神经网络的模型大小、降低了对内存的需求,从而有效提高了神经网络的数据处理速度。
Description
技术领域
本公开涉及计算机领域,尤其涉及一种与支持压缩及解压缩的神经网络运算装置及方法。
背景技术
近些年来,多层人工神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域。多层人工神经网络技术由于其较高的识别准确度和较好的可合并性,受到学界和工业界的广泛关注,然而在被运用到实际项目中时,由于多层人工神经网络技术所需要的计算量较大、模型对内存要求高,因此很难把其运用到嵌入式系统当中。
现有技术中,通常采用通用处理器来对多层人工神经网络运算、训练算法及其压缩编码进行处理,通过使用通用寄存器和通用寄存器部件执行通用指令来支持上述算法。然而,通用处理器运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。除此之外,还可以使用图形处理器(GPU)来支持多层人工神经网络运算、训练算法及压缩其编码。但由于GPU是专门用来执行图形图像运算以及科学计算的设备,因此没有对多层人工神经网络的支持,因此需要大量的前端编码工作才能执行多层人工神经网络运算的支持,带来了额外开销。更何况,GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,而GPU无法对人工神经网络的模型数据进行压缩,因此带来了巨大的功耗开销。
发明内容
根据本公开的一方面,提供了一种支持压缩及解压缩的神经网络运算装置,所述装置包括:
内存访问单元,用于在内存中读写数据;
指令缓存单元,连接于所述内存访问单元,用于通过所述内存访问单元读入神经网络的指令,并存储所述指令;
控制器单元,连接于所述指令缓存单元,用于从所述指令缓存单元获取所述指令,并将所述指令译码为所述运算单元的微指令;
参数压缩单元,连接于所述内存访问单元,用于根据所述内存访问单元发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值;
参数存储单元,连接到所述参数压缩单元,用于存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量;
参数解压缩单元,连接到所述参数存储单元,用于在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数;及
运算单元,连接于参数存储单元、参数解压缩单元及控制器单元,用于根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果。
在一种可能的实现方式中,
所述参数压缩单元还用于判断所述待压缩参数是否稀疏,并在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记;
所述参数存储单元,还用于存储所述稀疏化标记,
其中,所述参数存储单元在接收到所述数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,包括:
在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
在一种可能的实现方式中,所述参数存储单元在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,还包括:
在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
在一种可能的实现方式中,所述编码器和/或所述解码器包括CNN、RNN、BiRNN、GRU、LSTM中的一种或多种。
在一种可能的实现方式中,所述装置还包括:
结果缓存单元,连接于所述运算单元及所述内存访问单元,用于存储所述输出结果。
根据本公开的另一方面,提供了一种神经网络芯片,所述芯片包括所述的支持压缩及解压缩的神经网络运算装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括所述的神经网络芯片。
根据本公开的另一方面,提供了一种支持压缩及解压缩的神经网络运算方法,所述方法运用于支持压缩及解压缩的神经网络运算装置,所述支持压缩及解压缩的神经网络运算装置包括内存访问单元、指令缓存单元、控制器单元、参数压缩单元、参数存储单元、参数解压缩单元及运算单元,所述方法包括:
通过所述指令缓存单元存储通过所述内存访问单元读入人工神经网络的指令;
通过所述控制器单元从所述指令缓存单元获取所述指令,并将所述指令译码为所述运算单元的微指令;
通过所述参数压缩单元根据所述内存访问单元发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值;
通过所述参数存储单元存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量;
通过所述参数解压缩单元在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数;及
通过所述运算单元根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果。
在一种可能的实现方式中,所述方法还包括:
通过所述参数压缩单元在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记;
通过所述参数存储单元存储所述稀疏化标记;
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
在一种可能的实现方式中,所述方法还包括:
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
在一种可能的实现方式中,所述支持压缩及解压缩的神经网络运算装置还包括结果缓存单元,所述方法还包括:
通过所述结果缓存单元存储所述输出结果。
本公开根据接收到的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值,存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,本公开可以对待压缩参数进行压缩,从而有效减少神经网络的模型大小、降低了对内存的需求,从而有效提高了神经网络的数据处理速度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施方式的支持压缩及解压缩的神经网络运算装置的框图。
图2示出了根据本公开一实施方式的参数压缩单元压缩待压缩参数及参数解压缩单元解压缩语义向量的模型示意图。
图3示出了根据本公开一实施方式的支持压缩及解压缩的神经网络运算方法的流程图。
图4示出了根据本公开一实施方式的基于支持压缩及解压缩的神经网络运算装置的流程示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
请参阅图1,图1示出了根据本公开一实施方式的支持压缩及解压缩的神经网络运算装置的框图。
如图1所示,所述装置包括:
内存访问单元50,用于在内存中读写数据。
在一种可能的实施方式中,内存访问单元50可包括连接于支持压缩及解压缩的神经网络运算装置的内存接口的直接内存访问通道,可在内存中读写数据,例如,可以读取内存中的输入神经元数据(输入向量)、权值、指令、输出神经元数据(输出结果)等。
指令缓存单元60,连接于所述内存访问单元,用于通过所述内存访问单元50读入神经网络的指令,并存储所述指令。
在一种可能的实施方式中,所述指令包括执行神经网络算法的指令和/或执行神经网络运算的通用向量/矩阵指令。
在本实施方式中,所述神经网络算法的指令可以包括多层感知机(MLP)指令、卷积指令、池化(POOLing)指令等,所述神经网络运算的通用向量/矩阵指令可以包括矩阵乘指令、向量加指令、向量激活函数指令等指令。
控制器单元70,连接于所述指令缓存单元60,用于从所述指令缓存单元60获取所述指令,并将所述指令译码为所述运算单元40执行的微指令。
参数压缩单元10,连接于所述内存访问单元50,用于根据所述内存访问单元50发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值。
在一种可能的实施方式中,神经网络模型的模型数据可以包括神经网络模型的输入向量、权值、学习率及其他参数。
参数压缩单元10可以对神经网络模型的模型数据进行压缩,将其中的多维数据压缩成为低维数据,减小数据的向量长度,从而减小了存储参数的内存压力。
例如,可以将神经网络模型的权值进行压缩,将多维的权值压缩成一个定长的语义向量,所述的语义向量包括压缩前的权值的信息,应该明白的是,在选择权值进行压缩时,可以选择任意数量的权值进行压缩。
在一种可能的实施方式中,所述编码器可以包括CNN(卷积神经网络,Convolutional Neural Network)、RNN(循环神经网络,Recurrent Neural Network)、BiRNN(双向RNN,Bidirectional RNN)、GRU(门控循环单元,Gated Recurrent Unit)、LSTM(长短期记忆网络,Long Short-Term Memory)等神经网络中的一种或多种。
例如,可以选择RNN作为编码器对权值进行编码压缩,下面以编码器为RNN为例进行说明。
请参阅图2,图2示出了根据本公开一实施方式的参数压缩单元10压缩待压缩参数及参数解压缩单元30解压缩语义向量的模型示意图。
当采用RNN对所述待压缩参数进行编码压缩时,可以采用逐层贪婪算法来训练深度网络。
如图2所示,RNN包括输入层和多个隐藏层(两层为举例),在通过逐层贪婪算法对所述待压缩参数进行压缩时,首先,通过多个向量(神经网络模型的输入向量以及权值)来训练RNN的第一层,RNN的第一层将多个向量转化为由第一层的隐藏单元激活值组成的第一中间向量;然后,通过将所述中间向量作为RNN的第二层的输入,RNN的第二层将第一层传来的中间向量转化为第二层的隐藏单元激活值组成的第二中间向量;然后,对后面的隐藏层采用相同的策略,将前一层的输出作为下一层的输入,依次对RNN模型进行训练;最后,可以将当前时刻隐藏层的最后一层作为隐藏层的语义向量。
在RNN中,当前时刻隐藏层状态是由上一时刻的隐藏层状态和当前时刻的输入决定的,例如,可用公式:ht=f(ht-1,xt)来表示,其中,ht为当前时刻(t时刻)的隐藏层状态,ht-1为上一时刻(t-1时刻)的隐藏层状态,xt为当前时刻隐藏层的输入。
获得了各个时刻的隐藏层状态以后,再将各个时刻(T1~Tx时刻,x为大于1的整数)的隐藏层状态(hT1~hTx)汇总,以生成最后的语义向量c,c=q({hT1,...,hTx}),q表示某种非线性函数。
然而,在RNN网络中,当前时刻计算完后无法看见前面时刻的隐藏层状态,所以可用最后一个时刻(Tx时刻)的隐藏层状态作为语义向量c,即c=hTx。
在一种可能的实施方式中,还可以使用反向传播算法调整各层的参数。
在一种可能的实施方式中,所述稀疏化标记例如可用bool变量进行标记。
在一种可能的实施方式中,所述参数压缩单元10还用于判断所述待压缩参数是否稀疏,并在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记。
参数存储单元20,连接到所述参数压缩单元10,用于存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量。
在一种可能的实施方式中,参数存储单元20还可以存储神经网络的输入向量及稀疏化标记。
在一种可能的实施方式中,所述数据读取指令可以由支持压缩及解压缩的神经网络运算装置以外的控制器发出,也可以由支持压缩及解压缩的神经网络运算装置中的运算单元及参数解压缩单元发出。
在一种可能的实施方式中,所述参数存储单元10在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,还包括:
在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
在一种可能的实施方式中,所述参数存储单元20在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
在一种可能的实施方式中,所述参数存储单元20在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
参数解压缩单元30,连接到所述参数存储单元20,用于在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数。
参数解压缩单元30可将语义向量进行解码解压缩,从而可以获得与所述待压缩参数数目相同的解压缩参数,所述解压缩参数包括所述待压缩参数的信息。
例如,当待压缩参数为N个权值时,参数解压缩单元30可以将语义向量解码解压缩为N个解压缩参数,所述N个解压缩参数与N个权值基本等同。
在一种可能的实施方式中,所述解码器可以包括CNN(卷及神经网络,Convolutional Neural Network)、RNN(循环神经网络,Recurrent neural networks)、BiRNN(双向RNN,Bidirectional RNN)、GRU(门控循环单元,Gated Recurrent Unit)、LSTM(长短期记忆网络,Long Short-Term Memory)等神经网络中的一种或多种。
解码器的选择可以与编码器对应,例如,当编码器选择CNN时,解码器可以为CNN。但是,解码器及编码器的选择也可以是任意的,例如,当编码器选择CNN时,解码器可以选择CNN、RNN等任意一种或者多种。
下面以解码器为RNN为例对解码过程进行说明。
请参阅图2。如图2所示,参数解压缩单元30对语义向量进行解压缩的RNN模型包括多个隐藏层(图中1层作为示例)及输出层,输出层用于输出解压缩参数。
参数解压缩单元30对语义向量解压缩的过程可以视为参数压缩单元10压缩所述待压缩参数过程的逆过程,在解压缩的阶段,可以根据已经生成的输出序列来预测下一个输出,从而将所述隐藏层的语义向量解压缩为所述解压缩参数。
在RNN中,解码过程可以根据给定的前述的语义向量c和已经生成的输出序列y1,y2,…yt-1来预测下一个输出yt。
运算单元40,分别连接到所述参数存储单元和所述参数解压缩单元,用于对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算。
当待压缩参数为神经网络模型的权值时,若权值稀疏,则对其进行压缩后的语义向量可以直接被运算单元40用于进行计算或者对神经网络模型进行训练;若权值非稀疏,则其对应的语义向量需要进行解压缩后生成解压缩参数,所述解压缩参数可以直接被运算单元40用于进行计算或者对神经网络模型进行训练。
在一种可能的实施方式中,与所述神经网络模型相关联的运算可以包括对神经网络模型的训练及执行相关计算。
在一种可能的实施方式中,运算单元40可以根据带稀疏化标记的语义向量及所述解压缩参数进行乘法运算、加法树运算及激活函数运算。
在本实施方式中,运算单元40可以根据多个操作码进行运算操作。
当运算单元40获取第一阶段的第一操作码时,根据第一操作码判断是否进行乘法运算,若进行乘法运算,则进行乘法运算并将乘法运算的结果输出到第二阶段;若不需进行乘法运算,则直接进入第二阶段。
当运算单元40获取第二阶段的第二操作码时,根据第二操作码判断是否进行加法树运算,若进行加法树运算,则进行加法树运算并将加法树运算的结果输出到第三阶段;若不需进行加法树运算,则直接进入第三阶段。
当运算单元40获取第三阶段的第三操作码时,根据第三操作码判断是否进行激活函数的运算,若进行激活函数运算,则进行激活函数的运算并将运算的结果输出。运算单元40,连接于参数存储单元20、参数解压缩单元30及控制器单元70,用于根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果。
在一种可能的实施方式中,所述支持压缩及解压缩的神经网络运算装置还包括:
结果缓存单元80,连接于所述运算单元40及所述内存访问单元50,用于存储所述输出结果。
本公开所述的支持压缩及解压缩的神经网络运算装置可以通过硬件电路(例如但不限于专用集成电路ASIC)实现,并且可将内存访问单元50、指令缓存单元60、控制器单元70、参数压缩单元10、参数存储单元20、参数解压缩单元30、运算单元40及结果缓存单元80整合在一个独立的芯片(例如神经网络芯片)内。
本公开所述的支持压缩及解压缩的神经网络运算装置可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
本公开可以对待压缩参数进行压缩,从而有效减少神经网络的模型大小、降低了对内存的需求,从而有效提高了神经网络的数据处理速度。
请参阅图3,图3示出了根据本公开一实施方式的支持压缩及解压缩的神经网络运算方法的流程图。
所述方法运用于支持压缩及解压缩的神经网络运算装置,所述支持压缩及解压缩的神经网络运算装置包括内存访问单元、指令缓存单元、控制器单元、参数压缩单元、参数存储单元、参数解压缩单元及运算单元。
如图3所示,所述方法包括:
步骤S210,通过所述指令缓存单元存储通过所述内存访问单元读入人工神经网络的指令。
步骤S220,通过所述控制器单元从所述指令缓存单元获取所述指令,并将所述指令译码为所述运算单元的微指令。
步骤S230,通过所述参数压缩单元根据所述内存访问单元发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值。
步骤S240,通过所述参数存储单元存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量。
步骤S250,通过所述参数解压缩单元在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数。
步骤S260,通过所述运算单元根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果。
在一种可能的实施方式中,所述方法还包括:
通过所述参数压缩单元判断所述待压缩参数是否稀疏,并在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记;
通过所述参数存储单元存储所述稀疏化标记;
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
在一种可能的实施方式中,所述方法还包括:
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
应该说明的是,支持压缩及解压缩的神经网络运算方法为前述支持压缩及解压缩的神经网络运算装置对应的方法项,其具体介绍请参照之前对支持压缩及解压缩的神经网络运算装置的介绍,此处不再赘述。
本公开可以对待压缩参数进行压缩,从而有效减少神经网络的模型大小、降低了对内存的需求,从而有效提高了神经网络的数据处理速度。
请参阅图4,图4示出了根据本公开一实施方式的基于支持压缩及解压缩的神经网络运算装置的流程示意图。
如图4所示,参数压缩单元10可以包括参数提取子单元11及参数压缩子单元12。
参数提取子单元11用于获取神经网络模型的多种参数,例如可以获取神经网络模型的输入向量、权值等。
参数提取子单元11接收神经网络模型,并可以从中提取N-INPUT个待压缩参数(例如权值),在提取这些待压缩参数的同时,还可以对其进行是否稀疏化的判断,如果待压缩参数时稀疏的,则可以在参数存储单元20中存储一个与该参数对应的稀疏化标记,所述稀疏化标记可以是Bool变量。
参数压缩子单元12可以采用Auto-encoder压缩网络模型对参数进行压缩,例如,可以选择CNN、RNN、BiRNN、GRU、LSTM等编码器对N-INPUT个待压缩参数进行编码压缩,以得到N-COMPRESS个定长的语义向量。应该说明的是,编码器可以选择上述列示的任意一个或者他们的组合,也可以选择其他未列示的编码器,但是编码器的数量选择可以根据需要进行确定。若N-COMPRESS个定长的语义向量是稀疏化参数压缩得到的,则其与参数存储单元20中的稀疏化标记对应。
参数存储单元20接收参数压缩单元10传来的语义向量,当需要利用网络模型的待压缩参数进行训练或计算时,例如,当接收到数据读取指令时,参数存储单元20可以首先进行稀疏化判断,若所述语义向量对应的待压缩参数为具有稀疏化标记,则所述语义向量对应的待压缩参数为稀疏参数,则将所述语义向量直接发送到运算单元40进行运算;若所述语义向量对应的待压缩参数不具有稀疏化标记,则所述语义向量对应的待压缩参数为非稀疏参数,则将压缩后参数(N-COMPRESS个参数的定长语义向量)送入解压缩单元30的decoder网络进行解码解压缩。参数存储单元20还用于存储神经网络模型的网络结构及压缩后的网络模型等。
参数解压缩单元30接收到N-COMPRESS参数的定长语义向量后,将N-COMPRESS参数的定长语义向量作为输入送入解码器-Decoder网络,解码器的类型由auto-encoder编码器所决定,例如可以选择CNN、RNN、BiRNN、GRU、LSTM等对N-COMPRESS参数的定长语义向量进行解码解压缩,以获取解压后的IN-INPUT个代表待压缩参数(权值)的解压缩参数并输出到运算单元40进行运算。所述的解压缩参数与压缩前的待压缩参数的大小近似相等。
运算单元40获取参数存储单元传来的定长语义向量或参数解压缩单元传来的解压缩参数,并对其进行运算。
应该说明的是,支持压缩及解压缩的神经网络运算方法为前述支持压缩及解压缩的神经网络运算装置对应的方法项,其具体介绍请参照之前对支持压缩及解压缩的神经网络运算装置的介绍,此处不再赘述。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种支持压缩及解压缩的神经网络运算装置,其特征在于,所述装置包括:
内存访问单元,用于在内存中读写数据;
指令缓存单元,连接于所述内存访问单元,用于通过所述内存访问单元读入神经网络的指令,并存储所述指令;
控制器单元,连接于所述指令缓存单元,用于从所述指令缓存单元获取所述指令,并将所述指令译码为运算单元的微指令;
参数压缩单元,连接于所述内存访问单元,用于根据所述内存访问单元发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值;
参数存储单元,连接到所述参数压缩单元,用于存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向参数解压缩单元或运算单元发送所述语义向量;
参数解压缩单元,连接到所述参数存储单元,用于在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向运算单元发送所述解压缩参数;及
运算单元,连接于参数存储单元、参数解压缩单元及控制器单元,用于根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果;
所述参数压缩单元还用于判断所述待压缩参数是否稀疏,并在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记;
所述参数存储单元,还用于存储所述稀疏化标记,
其中,所述参数存储单元在接收到所述数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,包括:
在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
2.如权利要求1所述的支持压缩及解压缩的神经网络运算装置,其特征在于,所述参数存储单元在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量,还包括:
在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
3.根据权利要求1所述的支持压缩及解压缩的神经网络运算装置,其特征在于,所述编码器和/或所述解码器包括CNN、RNN、BiRNN、GRU、LSTM中的一种或多种。
4.如权利要求1所述的支持压缩及解压缩的神经网络运算装置,其特征在于,所述装置还包括:
结果缓存单元,连接于所述运算单元及所述内存访问单元,用于存储所述输出结果。
5.一种神经网络芯片,其特征在于,所述芯片包括如权利要求1-4任一项所述的支持压缩及解压缩的神经网络运算装置。
6.一种电子设备,其特征在于,所述电子设备包括如权利要求5所述的神经网络芯片。
7.一种支持压缩及解压缩的神经网络运算方法,其特征在于,所述方法运用于支持压缩及解压缩的神经网络运算装置,所述支持压缩及解压缩的神经网络运算装置包括内存访问单元、指令缓存单元、控制器单元、参数压缩单元、参数存储单元、参数解压缩单元及运算单元,所述方法包括:
通过所述指令缓存单元存储通过所述内存访问单元读入人工神经网络的指令;
通过所述控制器单元从所述指令缓存单元获取所述指令,并将所述指令译码为所述运算单元的微指令;
通过所述参数压缩单元根据所述内存访问单元发送的神经网络模型的模型数据,确定所述神经网络模型的待压缩参数,并利用编码器对所述待压缩参数进行压缩处理,获得与所述神经网络模型对应的语义向量,其中,所述待压缩参数包括所述神经网络模型的权值;
通过所述参数存储单元存储与所述神经网络模型对应的语义向量,并在接收到数据读取指令时,向所述参数解压缩单元或运算单元发送所述语义向量;
通过所述参数解压缩单元在接收到语义向量时,利用解码器对所述语义向量进行解压缩处理,获得所述神经网络模型的解压缩参数,并向所述运算单元发送所述解压缩参数;及
通过所述运算单元根据所述微指令,对接收到的所述语义向量或所述解压缩参数进行与所述神经网络模型相关联的运算,以获取输出结果;
通过所述参数压缩单元在所述待压缩参数稀疏时,向所述参数存储单元发送与所述语义向量对应的稀疏化标记;
通过所述参数存储单元存储所述稀疏化标记;
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中存储有与所述语义向量对应的稀疏化标记时,向所述运算单元发送所述语义向量。
8.如权利要求7所述的支持压缩及解压缩的神经网络运算方法,其特征在于,所述方法还包括:
通过所述参数存储单元在接收到所述数据读取指令,且所述参数存储单元中未存储与所述语义向量对应的稀疏化标记时,向所述参数解压缩单元发送所述语义向量。
9.如权利要求7所述的支持压缩及解压缩的神经网络运算方法,其特征在于,所述支持压缩及解压缩的神经网络运算装置还包括结果缓存单元,所述方法还包括:
通过所述结果缓存单元存储所述输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811188905.0A CN111047020B (zh) | 2018-10-12 | 2018-10-12 | 支持压缩及解压缩的神经网络运算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811188905.0A CN111047020B (zh) | 2018-10-12 | 2018-10-12 | 支持压缩及解压缩的神经网络运算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111047020A CN111047020A (zh) | 2020-04-21 |
CN111047020B true CN111047020B (zh) | 2022-11-29 |
Family
ID=70229805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811188905.0A Active CN111047020B (zh) | 2018-10-12 | 2018-10-12 | 支持压缩及解压缩的神经网络运算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111047020B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832692A (zh) * | 2020-07-14 | 2020-10-27 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
CN112036554B (zh) * | 2020-11-04 | 2021-04-06 | 深圳追一科技有限公司 | 神经网络模型的处理方法、装置、计算机设备和存储介质 |
WO2022134873A1 (zh) * | 2020-12-25 | 2022-06-30 | 中科寒武纪科技股份有限公司 | 数据处理装置、数据处理方法及相关产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229644A (zh) * | 2016-12-15 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
CN108271026A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599935B2 (en) * | 2017-02-22 | 2020-03-24 | Arm Limited | Processing artificial neural network weights |
US10346944B2 (en) * | 2017-04-09 | 2019-07-09 | Intel Corporation | Machine learning sparse computation mechanism |
-
2018
- 2018-10-12 CN CN201811188905.0A patent/CN111047020B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229644A (zh) * | 2016-12-15 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
CN108271026A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置 |
Non-Patent Citations (2)
Title |
---|
基于神经网络的分形图像压缩与解压缩;李明亮等;《河南科技大学学报(自然科学版)》;20061030(第05期);全文 * |
深度神经网络压缩与加速综述;纪荣嵘等;《计算机研究与发展》;20180915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111047020A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3579152B1 (en) | Computing apparatus and related product | |
US11531540B2 (en) | Processing apparatus and processing method with dynamically configurable operation bit width | |
CN110825434B (zh) | 计算装置及计算方法 | |
CN108009126B (zh) | 一种计算方法及相关产品 | |
CN111260025B (zh) | 用于执行lstm神经网络运算的装置和运算方法 | |
CN108008948B (zh) | 一种指令生成过程的复用装置及方法、处理装置 | |
CN107957976B (zh) | 一种计算方法及相关产品 | |
CN111047020B (zh) | 支持压缩及解压缩的神经网络运算装置及方法 | |
CN107992486A (zh) | 一种信息处理方法及相关产品 | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN108121688B (zh) | 一种计算方法及相关产品 | |
KR20190107766A (ko) | 계산 장치 및 방법 | |
CN111045726B (zh) | 支持编码、解码的深度学习处理装置及方法 | |
US11544543B2 (en) | Apparatus and method for sparse training acceleration in neural networks | |
CN109903350B (zh) | 图像压缩方法及相关装置 | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
CN110909870B (zh) | 训练装置及方法 | |
CN107943756B (zh) | 一种计算方法及相关产品 | |
CN107957975B (zh) | 一种计算方法及相关产品 | |
CN107977231B (zh) | 一种计算方法及相关产品 | |
CN109389210B (zh) | 处理方法和处理装置 | |
CN110196735A (zh) | 一种计算装置及相关产品 | |
US20210303992A1 (en) | Executing neural networks on electronic devices | |
CN112230994A (zh) | 一种计算方法及相关产品 | |
CN108021393B (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 |