一种用于深度学习的加速装置及计算装置
文献发布时间:2023-06-19 09:57:26
技术领域
本申请涉及电路设计领域,具体涉及一种用于深度学习的加速装置及计算装置。
背景技术
在人工智能应用领域,语音应用占据了相当大的比例。文本至语音转换(TTS,Textto speech)技术作为一种语音应用,在人机交互中经常使用。通常,TTS算法进一步可以分为三个部分:用于将文本预处理为语素等语言学特征的前端,用于将语言学特征变换为声谱、音素等声学特征的后端,以及使用声学特征生成最终语音的声码器。在这三个部分中,由于声码器的输出频率等于音频信号的采样频率,即16~22kHz,因此声码器的计算量、访存量大,一直是TTS计算流程中制约计算速度的瓶颈。
当前生成语音质量最好的TTS算法均基于神经网络模型,相对于传统的基于隐马尔科夫模型(HMM,Hidden Markov Model)等现有技术方案,基于神经网络方法的语音合成效果更接近与人类的实际语音效果。WaveNet是当前语音生成质量最好的声码器,被广泛用在多种基于神经网络的TTS算法中。
Wavenet是完全基于迭代的,即生成下一帧语音的运算需要等待上一帧的语音输出结果后才能开始。人类语音的频率范围大约在20kHz,这就意味着生成1秒语音需要将整个神经网络循环迭代几万轮。常见的硬件加速结构基于单指令多数据流(SIMD,SingleInstruction Multiple Data),因而对这种迭代式网络的加速效果十分有限,需要处理几十至上百秒才能生成长度1秒的语音,完全不能满足实时性的语音生成产品的实际需要。
如何以简单的硬件结构完成Wavenet等声码器神经网络的所有算子,避免声码器神经网络每秒数万次的片外交互,降低计算延迟,从而提高声码器神经网络的处理效率成为亟待解决的问题。
发明内容
本申请提供一种用于深度学习的加速装置,以提高声码器神经网络的处理效率。
所述加速装置,包括:数据缓冲器,与所述数据缓冲器连接的运算模块;
所述数据缓存器用于,缓存声码器神经网络的网络层的中间计算结果;
所述运算模块用于,根据接收到的控制指令,从所述数据缓存器获得声码器神经网络的第一网络层的中间计算结果,,将所述第一网络层的中间计算结果发送给所述数据缓存器。
可选的,所述应用于声码器神经网络的加速装置,还包括控制器;
所述控制器用于向所述运算单元发送所述控制指令。
可选的,所述根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果,将所述第一网络层的中间计算结果发送给所述数据缓存器,包括:根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果;
根据所述第一网络层的中间计算结果,获得与所述第一网络层级联的第二网络层的中间计算结果;
将所述第二网络层的中间计算结果发送给所述数据缓存器。
可选的,所述运算模块包括:矩阵运算单元,与所述矩阵运算单元连接的加法单元,与所述加法单元连接的激活单元,与激活单元连接的乘法单元,与所述乘法单元连接的偏差单元;
所述矩阵运算单元用于,针对所述第一网络层的中间计算结果执行乘累加运算,获得乘累加数据;
所述加法单元用于,针对所述乘累加数据执行加法运算,获得加法和数据;
所述激活单元用于,针对所述加法和数据执行激活运算,获得第一激活数据:
所述乘法运算单元用于,将所述第一激活数据执行乘法运算,获得乘积数据;
所述偏差单元用于,针对所述乘积数据执行偏差运算,获得所述第二网络层的中间计算结果。
可选的,所述运算模块还包括:与所述加法单元连接的修正线性激活单元;
所述修正线性激活单元用于,针对所述加法和数据执行修正线性激活运算,获得第三激活数据;
将所述第三激活数据作为所述声码器神经网络的尾部网络层的中间数据。
可选的,所述运算模块还包括:与所述矩阵运算单元连接的归一化及随机选取单元;
所述归一化及随机选取单元用于,针对所述第三激活数据执行归一化处理,获得分类数据;根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络的输出音频数据。
可选的,其特征在于,所述归一化及随机选取单元,还用于:
在所述分类数据中进行随机选取操作,获得随机数据;
将所述随机数据作为所述声码器神经网络的输入数据。
可选的,所述针对所述加法和数据执行逻辑回归激活运算,获得第一激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的激活函数值查找表中进行检索,获得第一激活数据。
可选的,所述应用于声码器神经网络的加速装置,还包括:跳接单元;
所述跳接单元用于所述矩阵运算单元和所述第一网络层之间数据的流水线化执行。
可选的,所述用于深度学习的加速装置使用现场可编程门阵列或者专用集成电路实现。
本申请提供一种用于深度学习的计算装置,包括:矩阵运算单元,与所述矩阵运算单元连接的加法单元,与所述加法单元连接的激活单元,与所述激活单元连接的乘法单元,与所述乘法单元连接的偏差单元;
所述矩阵运算单元用于,针对所述第一网络层的中间计算结果执行乘累加运算,获得乘累加数据;
所述加法单元用于,针对所述乘累加数据执行加法运算,获得加法和数据;
所述逻辑回归激活单元用于,针对所述加法和数据执行激活运算,获得第一激活数据;
所述乘法运算单元用于,将所述第一激活数据执行乘法运算,获得乘积数据;
所述偏差单元用于,针对所述乘积数据执行偏差运算,获得所述第二网络层的中间计算结果。
可选的,所述运算模块还包括:与所述加法单元连接的修正线性激活单元;
所述修正线性激活单元用于,针对所述加法和数据执行修正线性激活运算,获得第三激活数据;
将所述第三激活数据作为所述声码器神经网络的尾部网络层的中间数据。
可选的,所述运算模块还包括:与所述矩阵运算单元连接的归一化及随机选取单元;
所述归一化及随机选取单元用于,针对所述第三激活数据执行归一化处理,获得分类数据;根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络输出的语音数据。
可选的,所述归一化及随机选取单元,还用于:
在所述分类数据中进行随机选取操作,获得随机数据;
将所述随机数据作为所述声码器神经网络的输入数据。
可选的,所述针对所述加法和数据执行逻辑回归激活运算,获得第一激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的激活函数值查找表中进行检索,获得第一激活数据。
可选的,所述用于深度学习的计算装置使用现场可编程门阵列或者专用集成电路实现。
本申请提供一种电子设备,所述电子设备包括上述用于深度学习的加速装置或者上述用于深度学习的计算装置。
本申请提供一种音箱,所述音箱包括上述用于深度学习的加速装置或者上述用于深度学习的计算装置。
本申请提供一种文本信息处理方法,包括:
获得待处理的文本信息;
针对所述文本信息进行序列转换,获得声谱数据;
根据所述声谱数据,利用上述用于深度学习的计算装置,获得所述文本信息对应的语音数据。
与现有技术相比,本申请具有如下优点:
本申请提供的用于深度学习的加速装置,包括数据缓冲器,与所述数据缓冲器连接的运算模块;所述数据缓存器用于,缓存声码器神经网络的网络层的中间计算结果;所述运算模块用于,根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果,将所述声码器神经网络的第一网络层的中间计算结果发送给所述数据缓存器。
采用本申请提供的用于深度学习的加速装置,根据接收到的控制指令,通过数据缓存器,使声码器神经网络在每秒数万次的迭代计算过程中不需要片外交互,降低了计算延迟,从而提高了声码器神经网络的数据处理效率。
本申请提供的用于深度学习的计算装置,包括:矩阵运算单元,与所述矩阵运算单元连接的加法单元,与所述加法单元连接的激活单元,与所述激活单元连接的乘法单元,与所述乘法单元连接的偏差单元;所述矩阵运算单元用于,针对所述第一网络层的中间计算结果执行乘累加运算,获得乘累加数据;所述加法单元用于,针对所述乘累加数据执行加法运算,获得加法和数据;所述激活单元用于,针对所述加法和数据执行激活运算,获得第一激活数据;所述乘法运算单元用于,将所述第一激活数据执行乘法运算,获得乘积数据;所述偏差单元用于,针对所述乘积数据执行偏差运算,获得所述第二网络层的中间计算结果。
采用本申请提供的用于深度学习的计算装置,以简化的方式实现了声码器神经网络中包括矩阵运算在内的各种运算,减少了算子切换之间的数据缓存代价和指令切换代价,从而提高了声码器神经网络的运算效率。
附图说明
图1是本申请提供的一种用于深度学习的加速装置的应用场景的实施例示意图;
图2是本申请第一实施例提供的一种用于深度学习的加速装置的结构示意图;
图3a是本申请第一实施例涉及的一个应用系统的示意图第;
图3b是本申请第一实施例涉及的声码器神经网络的工作流程图;
图3c是本申请第一实施例涉及的声码器神经网络的残差网络层的工作流程图;
图4是本申请第一实施例涉及的面向卷积神经网络的典型结构示意图
图5是本申请第一实施例涉及的运算模块的结构示意图;
图6是本申请第四实施例提供的一种文本信息处理方法的流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
为了使本领域的技术人员更好的理解本申请方案,首先对本申请的一个具体应用场景实施例进行详细描述。如图1所示,其为本申请提供的一种用于深度学习的加速装置的应用场景的实施例示意图。图1中的服务端可以部署在云端。所述服务端采用了本申请提供的用于深度学习的加速装置。在具体实施过程中,可以由客户端向服务端发送用于处理文本数据的请求信息;服务端在收到该请求信息后,首先将所述文本数据转换为声谱数据;然后将所述声谱数据输入用于深度学习的加速装置,获得所述文本数据对应的语音数据。其中,所述用于深度学习的加速装置,包括:数据缓冲器,与所述数据缓冲器连接的运算模块;所述数据缓存器用于,缓存声码器神经网络的网络层的中间计算结果;所述运算模块用于,根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果,,将所述第一网络层的中间计算结果发送给所述数据缓存器。最后,服务端将所述处理后的语音数据返回给所述客户端。
本申请第一实施例提供一种用于深度学习的加速装置。请参看图2,该图为本申请第一实施例提供的一种用于深度学习的加速装置的结构示意图。以下结合图2对本申请第一实施例提供一种用于深度学习的加速装置进行详细说明。
本实施例中,声码器是指,将声谱数据转换为语音数据的计算方法、模块或者装置。本实施例中的声码器神经网络模型可以为WaveNet。为了使本领域技术人员更快地理解WaveNet这种声码器神经网络,下面结合图3a-图3c对于现有技术中声码器神经网络的工作流程进行说明。
图3a提供了利用声码器神经网络将文本数据转换为音频数据的一个应用系统的示意图。从图3a中可以看出,首先,该应用系统接收文本数据作为输入数据;然后,将文本数据进行序列转换,得到对应的声谱数据;进而,将声谱数据作为WaveNet的输入,经过WaveNet处理后,最终获得音频数据。
图3b提供了声码器神经网络的工作流程图。从图3b中可以看出,声码器神经网络构成一个迭代循环结构,在每一次迭代中,声码器神经网络输出一帧语音信号,并将其作为产生下一帧语音的计算输入返回到声码器神经网络的输入端口。这个迭代式循环结构正是该神经网络无法大规模并行的原因。所述声码器神经网络的工作流程具体如下:首先将当前输入与历史输入整合成一个统一的张量,传输到多个级联的残差网络层(residualblock)中。一个残差网络层的工作流程如图3c所示。一个残差网络层的输出将作为下一个残差层的输入,此外会将中间结果,直接输出到残差网络层外作为用于跳接(skipconnection)。所有跳接的结果经过数层变换后,产生语音输出,并经过数层转换后作为下一次声码器神经网络迭代的输入。
虽然现有技术已经提供了很多种基于现场可编程门阵列(FPGA,FieldProgrammable Gate Array)和专用集成电路(ASIC,Application Specific IntegratedCircuit)的神经网络加速方案,包括硬件结构设计和性能优化方法,这些方案验证了硬件计算的巨大应用前景。然而,目前声码器神经网络的硬件设计上还处于空白阶段,没有相关的对比方案。下边分析两类面向整体人工智能(AI,Artificial Intelligence)领域的硬件加速器:
第一类为针对特定算法的加速器,例如,针对卷积神经网络的加速器,针对长短期记忆网络(LSTM,Long Short-Term Memory)的加速器等。这类加速器考虑了特定算法的特点,在执行与之匹配的算法时效率很高。然而,声码器神经网络本身并不具有上述算法特点,无法使用该类加速器加速。
第二类为针对全体神经网络运算的通用加速器,以张量处理单元(TPU,TensorProcessing Unit)为代表,其实现方式是定义了一个新的指令结构,能够覆盖大多数神经网络的全部计算。在执行计算时,将神经网络算法编译为硬件指令,通过不断发放指令完成神经网络的硬件计算。由于这些指令集确实具备在神经网络计算领域的完备性,这类方案可以用于执行声码器神经网络的计算。然而其加速效果不好,这主要由于两个原因:第一,该类方法与图形处理器(GPU,Graphics Processing Unit)类似,基于在芯片上部署大量并行的计算单元来实现加速。对于声码器神经网络这种小规模算子的迭代式结构,由于神经网络的可并行容量低,无法实现大规模并行加速。第二,在语音生成应用中,声码器网络需要被反复调用数万次来生成1秒语音,因而基于指令分发的软硬件交互方式会浪费大量延时在指令通信上,最终性能无法满足实时性要求。
本实施例提供的一种用于深度学习的加速装置,包括:数据缓冲器201,与所述数据缓冲器连接的运算模块202;
所述数据缓存器用于,缓存声码器神经网络的网络层的中间计算结果;
所述运算模块用于,根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果,,将所述第一网络层的中间计算结果发送给所述数据缓存器。
所述根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果,将所述第一网络层的中间计算结果发送给所述数据缓存器,包括:根据接收到的控制指令,从所述数据缓存器获得所述声码器神经网络的第一网络层的中间计算结果;
根据所述第一网络层的中间计算结果,获得与所述第一网络层级联的第二网络层的中间计算结果;
将所述第二网络层的中间计算结果发送给所述数据缓存器。
图2中,用于片外指令和数据通信的I/O接口206和用于存储神经网络参数的片上存储205是硬件加速器的典型模块。
图2提供了一种基于数据缓冲器的自迭代结构。声码器神经网络由多个级联的神经网络层组成,且每层神经网络的输入数据尺寸、权重尺寸、计算量均远小于卷积神经网络等计算密集型算法。基于此,本实施例使用数据缓冲器,将上一个神经网络层的计算结果直接缓存在寄存器等高速存储介质中,并直接用于下一个神经网络层的计算。如图2所示,这种自迭代结构相比于传统需要访问片上RAM乃至片外DDR等低速存储的层间数据交互方式(如图4为面向卷积神经网络的典型架构图,注意图4同样为架构示意图,图4中的处理模块(Processing Element)与本实施例的处理模块的内部具体设计不同),能够有效减少层间数据访存造成的延时代价,适用于声码器神经网络这种对延时极度敏感的应用中。
本实施例中,所述声码器神经网络的网络层,可以是图3b中的残差网络层。所述网络层的中间计算结果,可以是图3b中的残差网络层的数据计算结果。
所述应用于声码器神经网络的加速装置,还包括控制器;
所述控制器用于向所述运算单元发送所述控制指令。
本实施例提供的应用于声码器神经网络的加速装置,以图2中极简的硬件结构实现了声码器神经网络的加速功能。所述控制器用于控制运算模块的功能切换与数据读取操作。
下面对所述应用于声码器神经网络的加速装置的运算模块进行说明。请参考图5,其为所述运算模块的结构示意图。所述运算模块可以包括:矩阵运算单元501,与所述矩阵运算单元连接的加法单元502,与所述加法单元均连接的乙状函数激活单元(sigmoid)503和双曲正切激活单元504,与所述乙状函数激活单元和所述双曲正切激活单元(tanh)分别连接的乘法单元505,与所述乘法单元连接的偏差单元506;所述乙状函数激活单元503和双曲正切激活单元504可以构成激活单元。
所述矩阵运算单元用于,针对所述第一网络层的中间计算结果执行乘累加运算,获得乘累加数据;
所述加法单元用于,针对所述乘累加数据执行加法运算,获得加法和数据;
所述乙状函数激活单元用于,针对所述加法和数据执行激活运算,获得第一激活数据;
所述双曲正切激活单元用于,针对所述加法和数据执行双曲正切激活运算,获得第二激活数据;
所述乘法运算单元用于,将所述第一激活数据和所述第二激活数据执行乘法运算,获得乘积数据;
所述偏差单元用于,针对所述乘积数据执行偏差运算,获得所述第二网络层的中间计算结果。
本实施例中,矩阵运算单元,以声码器神经网络中占主要运算量的矩阵运算算子为主体,提取了声码器神经网络中两个矩阵运算算子之间的公共计算模式,得到了能够覆盖声码器神经网络中全部计算模式的运算单元。矩阵运算单元以乘累加(MAC,MultiplyAccumulate)阵列实现;图5中的tanh、sigmoid、元素-元素乘法Mul和bias加法部分模块用于支持图3c中的残差网络层中的主体运算;归一化指数和随机选取(SoftMax+RandomChoice)单元,用于支持图3b中一次声码器神经网络迭代的输出端尾部运算(在图3b中,所述声码器神经网络迭代的输出端尾部由修正线性单元、卷积运算单元,归一化指数单元,随机选择单元组成);ReLU用于支持图3b左上角的Residual Block外部变换运算;加法单元会被多个路径复用。所述运算模块的功能切换通过片上的控制器实现,在执行同一功能时,各个模块的数据无需经过任何形式的缓存,相比于传统方式减少了数据缓存代价和算子之间的指令切换代价。
所述运算模块还包括:与所述加法单元连接的修正线性激活单元507;
所述修正线性单元用于,针对所述加法和数据执行修正线性激活运算,获得第三激活数据;
将所述第三激活数据作为所述声码器神经网络的尾部网络层的中间数据。
在图3b中,所述声码器神经网络的尾部网络层,由修正线性激活单元、卷积运算单元,归一化指数单元,随机选择单元组成。
所述运算模块还包括:与所述矩阵运算单元连接的归一化及随机选取单元;
所述归一化及随机选取单元用于,针对所述第三激活数据执行归一化处理,获得分类数据;根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络的输出音频数据。
请参见图3b,本实施例使用softmax分类器,针对所述第三激活数据执行归一化处理,获得分类数据。根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络的输出音频数据。
所述归一化及随机选取单元,还用于:
在所述分类数据中进行随机选取操作,获得随机数据;
将所述随机数据作为所述声码器神经网络的输入数据。
请参见图3b,本实施例在所述分类数据中进行随机选取操作,获得随机数据;将所述随机数据作为所述声码器神经网络的输入数据。
所述针对所述加法和数据执行逻辑回归激活运算,获得第一激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的逻辑回归查找表中进行检索,获得第一激活数据。
本实施例中,为了生成1秒钟的音频数据,sigmoid和tanh激活函数需要大约运行320000次。为了提高sigmoid和tanh的计算效率,本实施例首先准备好预先设置的逻辑回归查找表,然后根据所述加法和数据,在预先设置的乙状函数值查找表中进行检索,获得第一激活数据。采用这种实施方法,减小了该激活函数的运行时间。
所述针对所述加法和数据执行双曲正切激活运算,获得第二激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的双曲正切查找表中进行检索,获得第二激活数据。
本实施例中,为了生成1秒钟的音频数据,tanh激活函数需要大约运行320000次。为了提高tanh的计算效率,本实施例首先准备好预先设置的逻辑回归查找表,然后根据所述加法和数据,在预先设置的双曲正切查找表中进行检索,获得第二激活数据。采用这种实施方法,减小了该激活函数的运行时间。
所述用于深度学习的加速装置,还包括:跳接单元;
所述跳接单元用于所述矩阵运算单元和所述第一网络层之间数据的流水线化执行。
所述用于深度学习的加速装置使用现场可编程门阵列或者专用集成电路实现。
本实施例提供的用于深度学习的加速装置使用现场可编程门阵列或者专用集成电路实现。
本实施例提供的用于深度学习的加速装置,可以部署在云端,直接产品为深度学习语音生成计算服务,间接产品为基于语音生成服务的产品,如文本生成语音,语音翻译等。
本实施例提供的用于深度学习的加速装置,也可以部署在嵌入式设备端,产品为各类包含语音生成功能的设备,例如各种智能语音交互设备。
本申请第二实施例提供一种用于深度学习的计算装置。该计算装置即本申请第一实施例中的运算模块。
请参考图5,其为所述计算装置的结构示意图。所述计算装置包括:矩阵运算单元501,与所述矩阵运算单元连接的加法单元502,与所述加法单元均连接的乙状函数激活单元503和双曲正切激活单元504,与所述乙状函数激活单元和所述双曲正切激活单元分别连接的乘法单元505,与所述乘法单元连接的偏差单元506;所述乙状函数激活单元和所述双曲正切激活单元可以构成激活单元。
所述矩阵运算单元用于,针对所述第一网络层的中间计算结果执行乘累加运算,获得乘累加数据;
所述加法单元用于,针对所述乘累加数据执行加法运算,获得加法和数据;
所述乙状函数激活单元用于,针对所述加法和数据执行激活运算,获得第一激活数据;
所述双曲正切激活单元用于,针对所述加法和数据执行双曲正切激活运算,获得第二激活数据;
所述乘法运算单元用于,将所述第一激活数据和所述第二激活数据执行乘法运算,获得乘积数据;
所述偏差单元用于,针对所述乘积数据执行偏差运算,获得所述第二网络层的中间计算结果。
本实施例中,矩阵运算单元,以声码器神经网络中占主要运算量的矩阵运算算子为主体,提取了声码器神经网络中两个矩阵运算算子之间的公共计算模式,得到了能够覆盖声码器神经网络中全部计算模式的运算单元。矩阵运算单元以乘累加(MAC,MultiplyAccumulate)阵列实现;图5中的tanh、sigmoid、元素-元素乘法Mul和bias加法部分模块用于支持图3c中的残差网络层中的主体运算;归一化指数和随机选取(SoftMax+RandomChoice)单元,用于支持图3b中一次声码器神经网络迭代的输出端尾部运算(在图3b中,所述声码器神经网络迭代的输出端尾部由修正线性激活单元、卷积运算单元,归一化指数单元,随机选择单元组成);ReLU用于支持图3b左上角的Residual Block外部变换运算;加法单元会被多个路径复用。所述运算模块的功能切换通过片上的控制器实现,在执行同一功能时,各个模块的数据无需经过任何形式的缓存,相比于传统方式减少了数据缓存代价和算子之间的指令切换代价。
所述运算模块还包括:与所述加法单元连接的修正线性激活单元507;
所述修正线性单元用于,针对所述加法和数据执行修正线性激活运算,获得第三激活数据;
将所述第三激活数据作为所述声码器神经网络的尾部网络层的中间数据。
在图3b中,所述声码器神经网络的尾部网络层,由修正线性激活单元、卷积运算单元,归一化指数单元,随机选择单元组成。
所述运算模块还包括:与所述矩阵运算单元连接的归一化及随机选取单元;
所述归一化及随机选取单元用于,针对所述第三激活数据执行归一化处理,获得分类数据;根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络的输出音频数据。
请参见图3b,本实施例使用softmax分类器,针对所述第三激活数据执行归一化处理,获得分类数据。根据所述分类数据中概率最大的分类数据,获得所述声码器神经网络的输出音频数据。
所述归一化及随机选取单元,还用于:
在所述分类数据中进行随机选取操作,获得随机数据;
将所述随机数据作为所述声码器神经网络的输入数据。
请参见图3b,本实施例在所述分类数据中进行随机选取操作,获得随机数据;将所述随机数据作为所述声码器神经网络的输入数据。
所述针对所述加法和数据执行乙状函数激活运算,获得第一激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的乙状函数值查找表中进行检索,获得第一激活数据。
本实施例中,为了生成1秒钟的音频数据,sigmoid和tanh激活函数需要大约运行320000次。为了提高sigmoid和tanh的计算效率,本实施例首先准备好预先设置的逻辑回归查找表,然后根据所述加法和数据,在预先设置的乙状函数值查找表中进行检索,获得第一激活数据。采用这种实施方法,减小了该激活函数的运行时间。
所述针对所述加法和数据执行双曲正切激活运算,获得第二激活数据,包括:
获得所述加法和数据;
根据所述加法和数据,在预先设置的双曲正切查找表中进行检索,获得第二激活数据。
本实施例中,为了生成1秒钟的音频数据,tanh激活函数需要大约运行320000次。为了提高tanh的计算效率,本实施例首先准备好预先设置的逻辑回归查找表,然后根据所述加法和数据,在预先设置的双曲正切查找表中进行检索,获得第二激活数据。采用这种实施方法,减小了该激活函数的运行时间。
所述用于深度学习的加速装置,还包括:跳接单元;
所述跳接单元用于所述矩阵运算单元和所述第一网络层之间数据的流水线化执行。
所述用于深度学习的加速装置使用现场可编程门阵列或者专用集成电路实现。
本实施例提供的用于深度学习的加速装置使用现场可编程门阵列或者专用集成电路实现。
本申请第三实施例提供一种电子设备,所述电子设备包括本申请第一实施例提供的用于深度学习的加速装置或者本申请第二实施例提供的用于深度学习的计算装置。
本申请第四实施例提供一种文本信息处理方法,请参见图6,其为本申请第四实施例提供的一种文本信息处理方法的流程图。所述文本信息处理方法,包括:
步骤S601:获得待处理的文本信息。
本步骤用于获得待处理的文本信息。
例如,所述待处理的文本信息待转化为语音数据的一段文字。
步骤S602:针对所述文本信息进行序列转换,获得声谱数据。
本步骤用于针对所述文本信息进行序列转换,获得声谱数据。
由于本步骤为现有技术,这里就不再详细进行举例说明了。
步骤S603:根据所述声谱数据,利用本申请第一实施例提供的用于深度学习的加速装置或者本申请第二实施例提供的用于深度学习的计算装置,获得所述文本信息对应的语音数据。
本步骤用于根据所述声谱数据,利用本申请第一实施例提供的用于深度学习的加速装置或者本申请第二实施例提供的用于深度学习的计算装置,获得所述文本信息对应的语音数据。
本申请第五实施例提供一种音箱,所述音箱包括本申请第一实施例提供的用于深度学习的加速装置或者本申请第二实施例提供的用于深度学习的计算装置。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个操作器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
- 一种用于深度学习的加速装置及计算装置
- 一种基于深度学习加速器实现稀疏计算的方法及装置