数据输出方法、获取方法、装置和电子设备制造方法及图纸

技术编号:24208823 阅读:29 留言:0更新日期:2020-05-20 15:53
本申请提供一种数据输出方法、获取方法、装置和电子设备,涉及神经网络技术领域,具体技术方案为:读取第一数据子分块,并将所述第一数据子分块拼接成连续数据流,其中,所述第一数据子分块为神经网络搬运数据中的数据子分块;对所述连续数据流进行压缩,以得到第二数据子分块;依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益;若对所述连续数据流进行的压缩存在收益,则输出所述第二数据子分块。本申请可以提高神经网络的性能的技术效果。

Data output method, acquisition method, device and electronic equipment

【技术实现步骤摘要】
数据输出方法、获取方法、装置和电子设备
本申请涉及计算机技术中的神经网络
,尤其涉及一种数据输出方法、获取方法、装置和电子设备。
技术介绍
目前神经网络被广泛应用,例如:深度卷积神经网络(ConvolutionalDeepNueralNetworks,CDNN)被广泛应用于互联网应用,如语音识别,图像识别,自然语言处理等应用。然而,神经网络计算往往在神经网络处理器(NeuralProcessingUnit,NPU)内完成,而在执行神经网络计算后,需要将计算结果搬回片外存储器;由于片外存储器的带宽有限,在许多实际业务场景中,片内外数据搬运时间会超过实际计算时间,从而导致神经网络的性能比较差。
技术实现思路
本申请提供一种数据输出方法、获取方法、装置和电子设备,以解决神经网络的性能比较差的问题。第一方面,本申请提供一种数据输出方法,包括:读取第一数据子分块,并将所述第一数据子分块拼接成连续数据流,其中,所述第一数据子分块为神经网络搬运数据中的数据子分块;对所述连续数据流进行压缩,以得到第二数据子分块;依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益;若对所述连续数据流进行的压缩存在收益,则输出所述第二数据子分块。由于对神经网络搬运数据的数据子分块进行压缩,且在压缩存在收益输出压缩得到的数据,从而可以提高数据搬运的效率,进而提高神经网络的性能。可选的,所述依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益,包括:依据所述第一数据子分块的长度、目的地址和存储器总线位宽,计算所述第一数据子分块传输的所需拍(beat)数,以及依据所述第二数据子分块的长度、所述目的地址和所述存储器总线位宽,计算所述第二数据子分块传输的所需拍数,若所述第二数据子分块传输的所需拍数小于所述第一数据子分块传输的所需拍数,则确定对所述连续数据流进行的压缩存在收益,反之,则确定对所述连续数据流进行的压缩不存在收益,其中,所述目的地址为所述第一数据子分块的目的地址。该实施方式中,通过上述传输的所需拍数可以准确地确定是否存在压缩收益。可选的,所述方法还包括:存储长度字段,其中,所述长度字段用于表示所述第一数据子分块的长度和所述第二数据子分块的长度中的较小值,且所述长度字段用于:在读取数据时读取所述长度字段对应的数据子分块。该实施方式中,由于存储长度字段这样有在读取数据时可以准确地读取到数据子分块。可选的,所述方法还包括:若输出所述第二数据子分块,则存储所述第二数据子分块的标志位,所述存储的标志位用于指示所述第二数据子分块被压缩时是否存在压缩收益。由于将标志位存储,这样在读取第二数据子分块时可以准确地判断是否需要进行解压缩,以避免错误解压缩,进一步提高数据处理性能。可选的,所述神经网络搬运数据包括多个第一类型数据子分块,,其中,每个第一类型数据子分块的大小相同;所述对所述连续数据流进行压缩,以得到第二数据子分块,包括:判断所述第一数据子分块是否为第一类型数据子分块,若所述第一数据子分块为第一类型数据子分块,对所述连续数据流进行压缩,以得到第二数据子分块。该实施方式中,可以实现只对第一类型数据子分块进行压缩,这样可以提高被压缩的数据子分块存在压缩收益的概率,以提高数据压缩的性能。可选的,所述神经网络搬运数据还包括第二类型数据子分块和/或第三类型数据子分块,其中,所述第二类型数据子分块和/或第三类型数据子分块为所述神经网络搬运数据分割成所述多个第一类型数据子分块后所剩下的数据构成的数据子分块。该实施方式中,可以实现不对第二类型数据子分块和第三类型数据子分块进行压缩,这样可以提高被压缩的数据子分块存在压缩收益的概率,以提高数据压缩的性能。可选的,所述方法还包括:若对所述连续数据流进行的压缩不存在收益,则输出所述第一数据子分块。该实施方式中,由于若对所述连续数据流进行的压缩不存在收益,则输出所述第一数据子分块,这样可以避免不存在收益时,输出第二数据子分块反而导致的数据搬运的效率降低的问题。第二方面,本申请提供一种数据获取方法,包括:读取第二数据子分块的长度;读取第二数据子分块;判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块;若所述第二数据子分块为经过压缩且存在压缩收益的数据子分块,则对所述第二数据子分块进行解压缩,并将所述解压缩后的数据存储。可选的,所述判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,包括:依据所述第二数据子分块的长度,判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块;或者读取所述第二数据子分块的标志位,依据所述标志位判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,所述标志位用于指示所述第二数据子分块被压缩时是否存在压缩收益。可选的,所述依据所述第二数据子分块的长度,判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,包括:依据所述第二数据子分块对应的原始长度、存储地址和存储器总线位宽,计算所述第二数据子分块的原始数据传输的所需拍数,以及依据所述第二数据子分块的长度、所述存储地址和所述存储器总线位宽,计算所述第二数据子分块传输的所需拍数,若所述第二数据子分块传输的所需拍数小于所述第二数据子分块的原始数据传输的所需拍数,则确定所述第二数据子分块为经过压缩且存在压缩收益的数据子分块,反之,则确定所述第二数据子分块不为经过压缩且存在压缩收益的数据子分块,其中,所述存储地址为所述第二数据子分块的存储地址。可选的,所述第二数据子分块为神经网络搬运数据中的数据子分块,所述神经网络搬运数据包括多个第一类型数据子分块,其中,每个第一类型数据子分块的大小相同;所述判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,包括:判断所述第二数据子分块是否为第一类型数据子分块,若所述第二数据子分块为第一类型数据子分块,则判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块。可选的,所述神经网络搬运数据还包括至第二类型数据子分块和/或第三类型数据子分块,其中,所述第二类型数据子分块和/或第三类型数据子分块为所述神经网络搬运数据分割成所述多个第一类型数据子分块后所剩下的数据构成的数据子分块。可选的,所述方法还包括:若所述第二数据子分块不为经过压缩且存在压缩收益的数据子分块,则将所述第二数据子分块存储。第三方面,本申请提供一种数据输出装置,包括:读取模块,用于读取第一数据子分块,并将所述第一数据子分块拼接成连续数据流,其中,所述第一数据子分块为神经网络搬运数据中的数据子分块;压缩模块,用于对所述连续数据流进行压缩,以得到第二数据子分块;判断模块,用于依据所述本文档来自技高网...

【技术保护点】
1.一种数据输出方法,其特征在于,包括:/n读取第一数据子分块,并将所述第一数据子分块拼接成连续数据流,其中,所述第一数据子分块为神经网络搬运数据中的数据子分块;/n对所述连续数据流进行压缩,以得到第二数据子分块;/n依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益;/n若对所述连续数据流进行的压缩存在收益,则输出所述第二数据子分块。/n

【技术特征摘要】
1.一种数据输出方法,其特征在于,包括:
读取第一数据子分块,并将所述第一数据子分块拼接成连续数据流,其中,所述第一数据子分块为神经网络搬运数据中的数据子分块;
对所述连续数据流进行压缩,以得到第二数据子分块;
依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益;
若对所述连续数据流进行的压缩存在收益,则输出所述第二数据子分块。


2.如权利要求1所述的方法,其特征在于,所述依据所述第一数据子分块的长度和所述第二数据子分块的长度,判断对所述连续数据流进行的压缩是否存在收益,包括:
依据所述第一数据子分块的长度、目的地址和存储器总线位宽,计算所述第一数据子分块传输的所需拍数,以及依据所述第二数据子分块的长度、所述目的地址和所述存储器总线位宽,计算所述第二数据子分块传输的所需拍数,若所述第二数据子分块传输的所需拍数小于所述第一数据子分块传输的所需拍数,则确定对所述连续数据流进行的压缩存在收益,反之,则确定对所述连续数据流进行的压缩不存在收益,其中,所述目的地址为所述第一数据子分块的目的地址。


3.如权利要求1所述的方法,其特征在于,所述方法还包括:
存储长度字段,其中,所述长度字段用于表示所述第一数据子分块的长度和所述第二数据子分块的长度中的较小值,且所述长度字段用于:在读取数据时读取所述长度字段对应的数据子分块。


4.如权利要求1所述的方法,其特征在于,所述方法还包括:
若输出所述第二数据子分块,则存储所述第二数据子分块的标志位,所述存储的标志位用于指示所述第二数据子分块被压缩时是否存在压缩收益。


5.如权利要求1所述的方法,其特征在于,所述神经网络搬运数据包括多个第一类型数据子分块,其中,每个第一类型数据子分块的大小相同;
所述对所述连续数据流进行压缩,以得到第二数据子分块,包括:
判断所述第一数据子分块是否为第一类型数据子分块,若所述第一数据子分块为第一类型数据子分块,对所述连续数据流进行压缩,以得到第二数据子分块。


6.如权利要求5所述的方法,其特征在于,所述神经网络搬运数据还包括第二类型数据子分块和/或第三类型数据子分块,其中,所述第二类型数据子分块和/或第三类型数据子分块为所述神经网络搬运数据分割成所述多个第一类型数据子分块后所剩下的数据构成的数据子分块。


7.如权利要求1所述的方法,其特征在于,所述方法还包括:
若对所述连续数据流进行的压缩不存在收益,则输出所述第一数据子分块。


8.一种数据获取方法,其特征在于,包括:
读取第二数据子分块的长度;
读取第二数据子分块;
判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块;
若所述第二数据子分块为经过压缩且存在压缩收益的数据子分块,则对所述第二数据子分块进行解压缩,并将所述解压缩后的数据存储。


9.如权利要求8所述的方法,其特征在于,所述判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,包括:
依据所述第二数据子分块的长度,判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块;或者
读取所述第二数据子分块的标志位,依据所述标志位判断所述第二数据子分块是否为经过压缩且存在压缩收益的数据子分块,所述标志位用于指示所述第二数据子分块被压缩时是否存在压缩收益。

<...

【专利技术属性】
技术研发人员:李浩洋阮元
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1