运算方法、装置及相关产品与流程

文档序号:17625213发布日期:2019-05-10 23:35阅读:130来源:国知局
运算方法、装置及相关产品与流程

本公开涉及人工智能技术领域,尤其涉及一种运算方法、装置及相关产品。



背景技术:

在人工智能技术领域,深度学习技术目前在图像、视频处理领域已有较为广泛的应用,基于特定的数据集训练完成的神经网络,可以在分类和检测任务中达到较高的准确率。但是,由于受限于训练过程中使用的数据集和预处理工具,训练完成的神经网络通常仅能用在与训练集类型相同/数据格式一致的应用环境下,其可复用性不高。如果需要使用不同类型的输入数据,通常要进行重训练,或对输入数据进行预处理。

对于只支持单一固定格式输入数据的神经网络,为了实现多种不同格式的数据输入,通常需要在cpu上完成数据的格式转换和预处理。这就导致网络预处理时间较长,使得数据处理效率较低。



技术实现要素:

有鉴于此,本公开提出了一种运算方法、装置及相关产品,通过在进行网络层的调整过程中,根据第一格式来逐层获取各个网络层的输出数据的数据格式,并根据每个网络层的输出数据的数据格式对其对应的下一网络层进行调整,实现了caffe图像处理模型中各个网络层的自动调整的目的,有效提高了网络调整效率。

根据本公开的一方面,提供了一种运算方法,所述方法应用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,包括:

在接收到待处理任务时,判断所述待处理任务的输入数据的第一格式与预设的caffe图像处理模型所支持的输入数据的第二格式是否一致;

在所述第一格式与所述第二格式不一致时,根据所述第一格式,逐层获取所述caffe图像处理模型中各个网络层的输出数据的数据格式;

根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以使调整后的所述下一网络层支持所接收到的输入数据;

根据调整后的各个网络层生成调整后的caffe图像处理模型。

在一种可能的实现方式中,根据所述第一格式,逐层获取所述caffe图像处理模型中各个网络层的输出数据的数据格式,包括:

根据所述第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将所述第三格式传递至第一网络层,其中,所述第一网络层为所述转换网络层对应的下一网络层;

根据所述第三格式,按照所述预设规则得到所述第一网络层的输出数据的第四格式,并将所述第四格式传递至第二网络层,其中,所述第二网络层为所述第一网络层对应的下一网络层。

在一种可能的实现方式中,所述根据所述第一格式,按照预设规则得到转换网络层的输出数据的第三格式,包括:

根据所述转换网络层的第一类型,确定对应的第一转换逻辑;

根据确定后的所述第一转换逻辑及所述第一格式,得到所述转换网络层的输出数据的所述第三格式。

在一种可能的实现方式中,所述第一类型包括单输入网络层;

其中,根据所述转换网络层的第一类型,确定对应的第一转换逻辑,包括:

在所述转换网络层为单输入网络层时,确定所述第一转换逻辑为所述单输入网络层对应的转换逻辑;

所述单输入网络层对应的转换逻辑包括:输出格式与输入格式相一致。

在一种可能的实现方式中,所述第一类型包括多输入网络层;

其中,根据所述转换网络层的第一类型,确定对应的第一转换逻辑,包括:

在所述转换网络层为多输入网络层时,确定所述第一转换逻辑为所述多输入网络层对应的转换逻辑;

所述多输入网络层对应的转换逻辑包括:在多个输入格式相同时,输出格式与输入格式相一致;在多个输入格式不同时,输出格式与所述caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,所述根据所述第一格式,按照预设规则得到转换网络层的输出数据的第三格式,还包括:

根据所述转换网络层的第二类型,确定对应的第二转换逻辑;

根据确定后的所述第二转换逻辑及所述第一格式,得到所述转换网络层的输出数据的第五格式;

将所述第五格式设置为所述转换网络层的输出数据的第三格式。

在一种可能的实现方式中,所述第二类型包括数据输入层;

其中,根据所述转换网络层的第二类型,确定对应的第二转换逻辑,包括:

在所述转换网络层为所述数据输入层时,确定所述第二转换逻辑为所述数据输入层对应的转换逻辑;

所述数据输入层对应的转换逻辑为:在所述数据输入层设置有预设输入格式时,输出格式与所述预设输入格式相一致,在所述数据输入层未设置所述预设输入格式时,输出格式与所述caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,所述第二类型包括数据运算层;

其中,根据所述转换网络层的第二类型,确定对应的第二转换逻辑,包括:

在所述转换网络层为所述数据运算层时,确定所述第二转换逻辑为所述数据运算层对应的转换逻辑;

其中,所述数据运算层对应的转换逻辑为:输出格式与输入格式经过所述数据运算层逻辑运算后的数据格式相一致。

在一种可能的实现方式中,所述数据运算层包括:卷积层和数据转换层中的任意一种;

所述卷积层对应的转换逻辑为:输出格式与所述caffe图像处理模型的默认格式相一致;

所述数据转换层对应的转换逻辑为:在所述数据转换层设置有预设转换格式时,输出格式与所述预设转换格式相一致;在所述数据转换层未设置所述预设转化格式时,输出格式与具有rgb通道,且带有透明度通道的格式中的任意一种相一致。

在一种可能的实现方式中,所述根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,包括:

按照网络前向传播顺序,逐层对每个网络层所对应的下一网络层进行调整。

在一种可能的实现方式中,所述根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,包括:

根据前一网络层的输出数据的数据格式,以及当前网络层的权重顺序,判断所述当前网络层是否需要调整;

在判断出所述当前网络层需要调整时,按照所述前一网络层的输出数据的数据格式,对所述当前网络层的权重顺序进行调整,以使调整后的当前网络层的权重顺序与所述前一层网络层的输出数据的数据格式相匹配。

在一种可能的实现方式中,还包括:

在接收到所述待处理任务的输入数据时,将所述输入数据输入调整后的caffe图像处理模型中处理,得到数据处理结果。

根据本公开的一方面,提供了一种运算装置,所述运算装置用于异构计算架构中,所述异构计算架构包括通用处理器和人工智能处理器,包括:

判断模块,用于在接收到待处理任务时,判断所述待处理任务的输入数据的第一格式与预设的caffe图像处理模型所支持的输入数据的第二格式是否一致;

获取模块,用于在所述第一格式与所述第二格式不一致时,根据所述第一格式,逐层获取所述caffe图像处理模型中各个网络层的输出数据的数据格式;

调整模块,用于根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以使调整后的所述下一网络层支持所接收到的输入数据;

生成模块,用于根据调整后的各个网络层生成调整后的caffe图像处理模型。

在一种可能的实现方式中,所述获取模块,包括:

第一获取子模块,用于根据所述第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将所述第三格式传递至第一网络层,其中,所述第一网络层为所述转换网络层对应的下一网络层;

第二获取子模块,用于根据所述第三格式,按照所述预设规则得到所述第一网络层的输出数据的第四格式,并将所述第四格式传递至第二网络层,其中,所述第二网络层为所述第一网络层对应的下一网络层。

在一种可能的实现方式中,所述第一获取子模块,包括:

第一确定单元,用于根据所述转换网络层的第一类型,确定对应的第一转换逻辑;

第一获取单元,用于根据确定后的所述第一转换逻辑及所述第一格式,得到所述转换网络层的输出数据的所述第三格式。

在一种可能的实现方式中,所述第一类型包括单输入网络层;

其中,所述第一确定单元,还用于在所述转换网络层为单输入网络层时,确定所述第一转换逻辑为所述单输入网络层对应的转换逻辑;

所述单输入网络层对应的转换逻辑包括:输出格式与输入格式相一致。

在一种可能的实现方式中,第一类型包括多输入网络层;

其中,所述第一确定单元,还用于在所述转换网络层为多输入网络层时,确定所述第一转换逻辑为所述多输入网络层对应的转换逻辑;

所述多输入网络层对应的转换逻辑包括:在多个输入格式相同时,输出格式与输入格式相一致;在多个输入格式不同时,输出格式与所述caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,所述第一获取子模块,还包括:

第二确定单元,用于根据所述转换网络层的第二类型,确定对应的第二转换逻辑;

第二获取单元,用于根据确定后的所述第二转换逻辑及所述第一格式,得到所述转换网络层的输出数据的第五格式;

第一设置单元,用于将所述第五格式设置为所述转换网络层的输出数据的第三格式。

在一种可能的实现方式中,所述第二类型包括数据输入层;

其中,所述第二确定单元,还用于在所述转换网络层为所述数据输入层时,确定所述第二转换逻辑为所述数据输入层对应的转换逻辑;

所述数据输入层对应的转换逻辑为:在所述数据输入层设置有预设输入格式时,输出格式与所述预设输入格式相一致,在所述数据输入层未设置所述预设输入格式时,输出格式与所述caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,所述第二类型包括数据运算层;

其中,所述第二确定单元,还用于在所述转换网络层为所述数据运算层时,确定所述第二转换逻辑为所述数据运算层对应的转换逻辑;

其中,所述数据运算层对应的转换逻辑为:输出格式与输入格式经过所述数据运算层逻辑运算后的数据格式相一致。

在一种可能的实现方式中,所述调整模块,还用于按照网络前向传播顺序,逐层对每个网络层所对应的下一网络层进行调整。

在一种可能的实现方式中,所述调整模块,包括:

第一判断子模块,用于根据前一网络层的输出数据的数据格式,以及当前网络层的权重顺序,判断所述当前网络层是否需要调整;

第一调整子模块,用于在判断出所述当前网络层需要调整时,按照所述前一网络层的输出数据的数据格式,对所述当前网络层的权重顺序进行调整,以使调整后的当前网络层的权重顺序与所述前一层网络层的输出数据的数据格式相匹配。

在一种可能的实现方式中,还包括:

处理模块,用于在接收到所述待处理任务的输入数据时,将所述输入数据输入调整后的caffe图像处理模型中处理,得到数据处理结果。

根据本公开的另一方面,提供了一种计算机设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述任意一种运算方法的步骤。

根据本公开的另一方面,还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述任意一种运算方法的步骤。

根据本公开的一方面,提供了一种机器学习运算装置,所述机器学习运算装置包括一个或多个如上所述的任一种运算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过i/o接口传递给其他处理装置;

当所述机器学习运算装置包含多个所述运算装置时,所述多个所述运算装置间可以通过特定的结构进行连接并传输数据;

其中,多个所述运算装置通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算;

多个所述运算装置共享同一控制系统或拥有各自的控制系统;

多个所述运算装置共享内存或者拥有各自的内存;

多个所述运算装置的互联方式是任意互联拓扑。

根据本公开的一方面,提供了一种组合处理装置,所述组合处理装置包括如上所述的机器学习运算装置,通用互联接口和其他处理装置;

所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。

在一种可能的实现方式中,还包括:存储装置;

所述存储装置分别与搜书机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置或前面所述的组合处理装置。

根据本公开的一方面,提供了一种神经网络芯片,所述芯片包括如上所述的机器学习运算装置,或如上所述的组合处理装置,或如上所述的组合处理装置。

根据本公开的一方面,提供了一种电子设备,,所述电子设备包括如上所述的神经网络芯片。

根据本公开的一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的神经网络芯片;

其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;

所述存储器件,用于存储数据;

所述接口装置,用于实现所述神经网络芯片与外部设备之间的数据传输;

所述控制器件,用于对所述神经网络芯片的状态进行监控。

在一种可能的实现方式中,所述存储器件包括:多组存储单元,每一组所述存储单元与所述神经网络芯片通过总线连接,所述存储单元为:ddrsdram;

所述芯片包括:ddr控制器,用于对每个所述存储单元的数据传输与数据存储的控制;

所述接口装置为:标准pcie接口。

上述运算方法,通过在接收到的待处理任务的输入数据的第一格式与预设的caffe图像处理模型所支持的输入数据的第二格式不一致时,根据第一格式,逐层获取caffe图像处理模型中各个网络层的输出数据的数据格式,并根据获取到的各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,来实现各个网络层分别对其接收到的输入数据的支持,从而使得根据调整后的各个网络层生成的caffe图像处理模型能够支持不同格式类型的输入数据,这也就有效提高了caffe图像处理模型的匹配度。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开一实施例的运算方法的流程图;

图2示出根据本公开一实施例的运算方法中逐层获取各个网络层的输出数据的数据格式的示意图;

图3示出根据本公开一实施例的运算装置的框图;

图4示出根据本公开一实施例的组合处理的框图;

图5示出根据本公开一实施例的另一组合处理装置的框图;

图6示出根据本公开一实施例的板卡的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

首先,需要说明的是,本公开一实施例的运算方法可应用于服务器或终端中。具体的,其可以应用于异构计算架构中。异构计算架构包括通用处理器(cpu)和人工智能处理器。人工智能处理器可以为用于执行人工智能运算的人工智能处理器(ipu),人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括gpu(graphicsprocessingunit,图形处理单元)、npu(neural-networkprocessingunit,神经网络处理单元)、dsp(digitalsignalprocess,数字信号处理单元)、现场可编程门阵列(field-programmablegatearray,fpga)芯片中的一种或组合。

参阅图1,图1示出了根据本公开一实施例的运算方法的流程图。其具体包括:

步骤s100,在接收到待处理任务时,判断待处理任务的输入数据的第一格式与预设的caffe图像处理模型所支持的输入数据的第二格式是否一致。

步骤s200,在第一格式与第二格式不一致时,根据第一格式,逐层获取caffe图像处理模型中各个网络层的输出数据的数据格式。

步骤s300,根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以使调整后的下一网络层支持所接收到的输入数据。

步骤s400,根据调整后的各个网络层生成调整后的caffe图像处理模型。

上述运算方法,在接收到的待处理任务输入数据的第一格式与预设的caffe图像处理模型输入数据的第二格式不一致时,本公开实施例可以根据第一格式,逐层获取caffe图像处理模型中各个网络层输出数据的数据格式,根据获取到的各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以实现各个网络层分别对其接收到的输入数据的支持,从而使得根据调整后的各个网络层生成的caffe图像处理模型,能够支持不同格式类型的输入数据,效提高caffe图像处理模型的匹配度。相较于传统的在cpu上进行数据格式的转换和预处理方式,本公开实施例的方法可以有效提高网络调整效率,节省网络调整时间。

在网络层的调整过程中,根据第一格式来逐层获取各个网络层的输出数据的数据格式,并根据每个网络层的输出数据的数据格式对其对应的下一网络层进行调整,实现了对网络层的自动调整,有效代替了用户手动调整的方式,减轻了用户负担。

应当指出的是,在上述公开一实施例中,caffe图像处理模型可以为基于深度学习的卷积神经网络框架(convolutionalarchitectureforfastfeatureembedding,简称caffe)。

同时,还需要指出的是,上述运算方法基于训练好的卷积神经网络(即,caffe图像处理模型),将得到的卷积神经网络的模型定义文件(prototxt)和权重文件(caffemodel)加载至内存后进行的。

作为一种可能的实施方式,步骤s200,根据第一格式,逐层获取caffe图像处理模型中各个网络层的输出数据的数据格式,具体可以包括:

根据第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将第三格式传递至第一网络层。其中,第一网络层为转换网络层对应的下一网络层。

根据第三格式,按照预设规则得到第一网络层的输出数据的第四格式,并将第四格式传递至第二网络层。其中,第二网络层为第一网络层对应的下一网络层。

此处,应当指出的是,本领域技术人员可以理解,caffe图像处理模型是基于caffe(卷积神经网络框架)设计的一种运算网络。具体的网络结构可以包括多个级联的网络层,每层网络层执行自身设置的运算逻辑。其中,在通过神经网络进行数据处理时,数据传播的方向具体包括:前向传播顺序和反向传播顺序。前向传播顺序,指的是数据由神经网络的输入层开始逐层进行传递和处理,最后再由输出层输出相应的处理结果。反向传播顺序,是与前向传播顺序反方向进行传输的过程,此处不进行赘述。

由此,在根据第一格式,逐层获取各个网络层的输出数据的数据格式时,是按照网络的前向传播顺序进行的。即根据第一格式获取得到caffe图像处理模型中首层网络层的输出数据的数据格式,将得到的首层网络层输出数据的数据格式按照网络的前向传播顺序传递至其对应的下一层网络层。进而获取下一层网络层的输出数据的数据格式。再将获取的下一层网络层输出数据的数据格式继续向下传递,传递至下一层网络层所对应的下一个网络层,进行相应的输出数据的数据格式的获取。依此类推,直至传递至caffe图像处理模型的最末层网络层为止。

作为一种可能的实施方式,为了便于每一层网络层输出数据的数据格式向其对应的下一层网络层的传递,可以通过在caffe图像处理模型中增加数据参数dateformat(格式信息参数,用于指示数据的具体格式)来实现。该参数用于指示caffe中每个blob(基本数据结构)的数据格式特征。也就是说,每一层网络层的输出数据的数据格式信息均封装在其对应的dataformat中,再将封装有格式信息的dataformat直接传递至其对应的下一层网络层。

进一步的,根据第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将第三格式传递至其对应的下一层网络层(第一网络层)时,所述的预设规则可以包括:根据网络层的网络层类型,确定其相应的转换逻辑,再根据确定的转换逻辑进行推理,得到其对应的下一层网络层的输出数据的数据格式。

作为一种可能的实施方式,根据第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将第三格式传递至第一网络层,可包括:根据转换网络层的第一类型,确定对应的第一转换逻辑。根据确定的第一转换逻辑及第一格式,得到转换网络层的输出数据的第三格式。

其中,第一类型指的是未对网络层进行特殊声明的类型(即,常规类型)。第一类型可以包括单输入网络层和多输入网络层。单输入网络层,指的是输入通道为一个的网络层,一次可以接收一组输入数据。多输入网络层,则指的是输入通道为多个的网络层,能够同时接收多组输入数据。

由此,根据转换网络层的第一类型,确定对应的第一转换逻辑,具体包括:在转换网络层为单输入网络层时,确定第一转换逻辑为单输入网络层对应的转换逻辑。其中,参见表1,单输入网络层对应的转换逻辑为:输出格式(输出数据的数据格式,如:第三格式)与输入格式(输入数据的数据格式,如:第一格式)相一致。

进一步的,在转换网络层为多输入网络层时,确定第一转换逻辑为多输入网络层的转换逻辑。参见表1,多输入网络层对应的转换逻辑包括:在多个输入格式相同时,输出格式与输入格式相一致。在多个输入格式不同时,输出格式与caffe图像处理模型的默认格式(df_data)相一致。

表1

此处,需要指出的是,目前基于caffe设置的caffe图像处理模型使用四种数据格式:

df_data:该格式即为默认格式,用于指示网络中经计算得出的数据格式,也可用于指示默认图像格式(bgr格式)。

df_argb、df_bgr0、df_rgb0:三种格式为特定图像数据格式,用于指示输入图像的格式,用户可显示指定输入为三种格式之一。除用户指定(即,预先设置)外,一些特定的网络层也可能会产生这三种格式的数据,此时数据格式由网络层自动生成。

通过根据网络层的第一类型,确定相应的第一转换逻辑,再根据确定的第一转换逻辑及第一格式进行逻辑推理,得到转换网络层的输出数据的第三格式,可以实现各个网络层输出数据的数据格式的自动获取。

为进一步提高最终得到的输出数据的数据格式的准确性,根据第一格式,按照预设规则得到转换网络层的输出数据的第三格式,还包括:

根据转换网络层的第二类型,确定对应的第二转换逻辑。

根据确定后的第二转换逻辑及第一格式,得到转换网络层的输出数据的第五格式。

将第五格式设置为转换网络层的输出数据的第三格式。

第二类型指的是设置了特殊声明的网络层类型。此处所述的特殊声明可以为对网络层的功能进行的说明限定。如:用于接收输入数据的数据输入层,用于进行卷积运算的卷积层,以及用于进行数据个数转换的网络转换层等。

基于上述所描述的第二类型,在对转换网络层根据第一类型确定第一转换逻辑,并根据第一转换逻辑及第一格式进行转换网络层输出数据的第三格式进行推理之后,在对转换网络层,按照第二类型确定第二转换逻辑,并根据确定的第二转换逻辑进行再一次的推理。

在一种可能的实现方式中,在第二类型包括数据输入层时,根据转换网络层的第二类型,确定对应的第二转换逻辑,包括:在转换网络层为数据输入层时,确定第二转换逻辑为数据输入层对应的转换逻辑。其中,参见表1,数据输入层对应的转换逻辑为:在数据输入层设置有预设输入格式(即,用户指定)时,输出格式与预设输入格式相一致;在数据输入层未设置预设输入格式(即,用于未指定)时,输出格式与caffe图像处理模型的默认格式(df_data)相一致。

在第二类型包括数据运算层时,根据转换网络层的第二类型,确定对应的第二转换逻辑,包括:在转换网络层为数据运算层时,确定第二转换逻辑为数据运算层对应的转换逻辑。其中,数据运算层对应的转换逻辑为:输出格式与输入格式经过数据运算层逻辑运算后的数据格式相一致。

此处,需要说明的是,数据运算层可以包括卷积层和数据转换层中的任意一种。参见表1,卷积层对应的转换逻辑为:输出格式与caffe图像处理模型的默认格式相一致。数据转换层(mluyuvtorgb层)对应的转换逻辑为:在数据转换层设置有预设转换格式时,输出格式与预设转换格式相一致;在数据转换层未设置预设转化格式时,输出格式与具有rgb三通道,且带有一个透明度通道的格式中的任意一种相一致。此处,需要说明的是,具有rgb三通道,且带有一个透明度通道的格式指的是,对a通道(透明度通道)、b通道、g通道和r通道这四个通道进行排列组合后得到的所有格式。如:argb格式、bgra格式、rgba格式、ragb格式等。由于对a通道(透明度通道)、b通道、g通道和r通道这四个通道进行排列组合得到的格式个数较多,此处不再进行一一例举。相应的,mluyuvtorgb层的预设转换格式可以为:df_argb、df_bgra、df_rgba等。

在通过上述确定的第二转换逻辑对转换网络层进行输出数据的数据格式的推理后,此时可得到相应的第五格式。其中,第五格式与之前第一次进行推理所得到的第三格式可能相同,也可能不同。为了保证对转换网络层最终推理得到的输出数据的数据格式的准确性,可以将第二次推理得到的推理结果(第五格式)设置为第三格式。也就是,将通过第一转换逻辑推理得到的第三格式覆盖掉,最终以通过第二转换逻辑推理得到的第五格式为准。

对转换网络层按照第一类型(常规类型)确定的第一转换逻辑进行一次输出数据的数据格式(第三格式)的推理,再按照第二类型(特殊类型)确定的第二转换逻辑,对转换网络层输出数据的数据格式进行再一次的推理,得到相应的第五格式,将第三格式替换为第五格式,可提高最终推理得到的转换网络层的输出数据格式的准确性,并可以提高后续调整的可靠性。

当通过前面所述的任意一种可能的实施方式得到转换网络层输出数据的第三格式后,此可将转换网络层所对应的dataformat中的格式信息修改为第三格式,再将修改为第三格式的dataformat传递至其对应的下一层网络层(第一网络层)。

本公开实施例,通过采用blob_data_format进行各个网络层输出数据的数据格式的逐层传递,有效简化了各个网络层输出数据的数据格式的逐层获取过程,只需要进行一个blob_data_format的传递及解读即可实现,进一步提高了图像处理效率,节省了图像处理时间,简化了图像处理操作。

进一步,根据第三格式,按照预设规则得到第一网络层输出数据的第四格式,并将第四格式传递至第二网络层的获取推理原理与根据第一格式,按照预设规则得到转换网络层输出数据的第三格式,并将第三格式传递至第一网络层的获取推理原理相同或相似,因此,对于根据第三格式,按照预设规则得到第一网络层的输出数据的第四格式,并将第四格式传递至第二网络层的具体过程不再进行赘述。

另外,还需要说明的是,当通过上述步骤得到各个网络层输出数据的数据格式之后,即可执行步骤s300,根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以使调整后的每个网络层能够支持其所接收到的输入数据。

作为一种可能的实施方式,在步骤s300中,进行每个网络层所对应的下一网络层的调整时,可以在执行步骤s200过程中,逐层的对各个网络层进行调整(即,调整过程与网络层的输出数据的数据格式的获取过程同时进行)。

本公开实施例,通过采用调整过程与网络层输出数据的数据格式的获取过程同时进行,使得在进行caffe图像处理网络的生成过程中,各个网络层输出数据的数据格式的确定和各个网络层的调整能够同步完成,整个处理过程只需在caffe图像处理网络生成阶段执行一遍即可。

需要指出的是,步骤s300中,进行每个网络层所对应的下一网络层的调整也可以在执行完步骤s200,获取到每个网络层的输出数据的数据格式后,整体的对caffe图像处理网络中的各个网络层进行调整。此处不再进行赘述。

进一步的,步骤s300,根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,可包括:

根据前一网络层的输出数据的数据格式,以及当前网络层的权重顺序,判断当前网络层是否需要调整。在判断出当前网络层需要调整时,则按照前一网络层的输出数据的数据格式,对当前网络层的权重顺序进行调整,以使调整后的当前网络层的权重顺序与前一层网络层的输出数据的数据格式相匹配。在判断出当前网络层不需要调整时,则直接进行当前网络层所对应的下一网络层的输出数据的数据格式的获取过程。

其中,应当说明的是,在对每个网络层所对应的下一网络层进行调整时,其只需要对记载入内存中的caffe图像处理模型中的网络层进行调整即可,不需要对磁盘中的原始文件进行调整。

更进一步的,参阅图2,为了更加清楚的说明上述任意一种运算方法,以下以图2所示的一个简单的caffe图像处理模型为例,对上述运算方法进行更进一步的详细说明。应当明白的是,图2所示的caffe图像处理模型仅仅作为一个简单的模型来对运算方法进行更加清楚明白的说明,其对运算方法不具有任何限定作用。

参阅图2,其所示出的caffe图像处理模型的网络结构为:input层(转换网络层)、第一网络层(可为卷积层)和output层(数据输出层)。

其中,在使用图2所示的caffe图像处理网络的网络结构文件(即,prototxt)及相应的权重(caffemodel)文件生成网络之前,用户可在input层中设置blob_data_format为用户所需的格式。该格式即为前面所提及的待处理任务的输入图像数据的第一格式。

进而,在网络生成过程中,在reshape阶段,即可执行按照网络前向传播的顺序,逐层推理出各个网络层输出blob的数据格式,并逐层向下传递。同时,对于需要进行调整权重的网络层,再根据其前一网络层的输出数据的数据格式,对自身权重进行调整。具体的:

对于input层:首先,先按照第一类型(即常规类型,也就是未进行特殊声明的网络层类型)确定的第一转换逻辑进行第三格式的推理。

具体的:如果input层为单输入网络层,那么则根据单输入网络层对应的转换逻辑:输出格式与输入格式相一致,对input层的输出数据的第三格式进行推理,得到第三格式与第一格式相一致。因此,此时将input层对应的blob_data_format中格式信息(为第一格式)可不做修改。

如果input层为多输入网络层,那么则根据多输入网络层对应的转换逻辑:多个输入格式相同时,输出格式与输入格式相一致;多个输入格式不同时,输出格式为caffe图像处理模型的默认格式(df_data),对第三格式进行推理。在本实施例中,可以认为多个输入格式不同,因此此时推理得到的第三格式为df_data。由此,将input层对应的blob_data_format中的格式信息由第一格式修改为df_data。

当按照第一类型对应的第一转换逻辑对input层的输出数据的数据格式进行推理后,再对input层按照第二类型对应的第二转换逻辑进行再次推理。即:由于input层作为caffe图像处理模型的数据输入层,其功能是用于进行数据接收和传输的。因此,按照数据输入层对应的转换逻辑:在设置有预设输入格式(用户指定格式)时,输出格式与预设输入格式相一致,在数据输入层未设置预设输入格式时,输出格式与caffe图像处理模型的默认格式相一致。由于在本实施例中,设置有预设输入格式。因此,此时可推理得到第三格式为用户指定格式(即,第一格式)。因此,此时将第一次推理得到的第三格式修改为第一格式,并将最终修改为第一格式的blob_data_format传递至卷积层。

判断input层的权重顺序与第一格式的通道顺序是否一致,如果一致则不进行input层的调整。如果不一致,则按照第一格式的通道顺序,将input层的权重顺序调整为与第一格式相一致的通道顺序。

接着,对于卷积层(第一网络层):卷积层接收到input层传递过来的blob_data_format后,根据blob_data_format中的格式信息(第一格式)进行自身输出数据的数据格式(第四格式)的推理。具体的:

首先,先按照第一类型(即常规类型,也就是未进行特殊声明的网络层类型)确定的第一转换逻辑对卷积层进行推理。

如果卷积层为单输入网络层,那么则根据单输入网络层对应的转换逻辑:输出格式与输入格式相一致,对卷积层的输出数据的第四格式进行推理,得到第四格式与第一格式相一致。因此,此时将卷积层对应的blob_data_format中格式信息(为第一格式)可不做修改。

如果卷积层为多输入网络层,那么则根据多输入网络层对应的转换逻辑:多个输入格式相同时,输出格式与输入格式相一致;多个输入格式不同时,输出格式为caffe图像处理模型的默认格式(df_data),对第四格式进行推理。在本实施例中,可以认为多个输入格式不同,因此此时推理得到的第四格式为df_data。由此,将卷积层对应的blob_data_format中的格式信息由第一格式修改为df_data。

当按照第一类型对应的第一转换逻辑对卷积层的输出数据的数据格式进行推理后,再对卷积层按照第二类型对应的第二转换逻辑进行再次推理。即:由于卷积层在caffe图像处理模型中是用于进行卷积运算的,因此按照卷积层对应的转换逻辑:输出格式与默认格式相一致,推理出第四格式为默认格式。因此,此时将卷积层对应的blob_data_format中的格式信息修改为默认格式df_data,并将最终修改后格式信息为df_data的blob_data_format传递至output层。

与此同时,判断卷积层的权重顺序与其接收到的blob_data_format中的格式信息(第一格式)的通道顺序是否一致。如果一致,则不进行卷积层的调整。如果不一致,则按照第一格式的通道顺序,将卷积层的权重顺序调整为与第一格式相一致的通道顺序。

依此类推,其他各个网络层均按照上述步骤进行输出数据的数据格式的确定以及自身权重顺序的调整。由于其处理原理相同或相似,因此此处不再赘述。

当网络中每个网络层均进行完上述操作后,此时即可执行步骤s400,根据调整后的各个网络层生成相应的caffe图像处理网络。其中,网络生成后,dataformat和权重都不再改变,整个处理过程仅在生成阶段进行一次。

进一步的,在通过上述步骤生成相应的caffe图像处理网络后,即可执行在接收到待处理任务的输入数据时,将输入数据输入调整后的caffe图像处理模型中处理,得到相应的数据处理结果的步骤,以实现采用生成的caffe图像处理网络对输入数据进行处理的目的。

综述,上述任意一种运算方法,通过在进行网络层的调整过程中,根据第一格式来逐层获取各个网络层的输出数据的数据格式,并根据每个网络层的输出数据的数据格式对其对应的下一网络层进行调整,实现了caffe图像处理模型中各个网络层的自动调整的目的,其相较于传统的在cpu上进行数据格式的转换和预处理方式,有效提高了网络调整效率,节省了网络调整时间。并且,其通过根据逐层获取的各个网络层的输出数据的数据格式来进行其对应的下一网络层的自动调整,有效代替了用户手动调整的方式,因此其还进一步的减轻了用户负担。

参阅图3,本公开还提供了一种运算装置100,运算装置100用于异构计算架构中,异构计算架构包括通用处理器和人工智能处理器,包括:判断模块110,用于在接收到待处理任务时,判断待处理任务的输入数据的第一格式与预设的caffe图像处理模型所支持的输入数据的第二格式是否一致;获取模块120,用于在第一格式与第二格式不一致时,根据第一格式,逐层获取caffe图像处理模型中各个网络层的输出数据的数据格式;调整模块130,用于根据各个网络层的输出数据的数据格式,进行每个网络层所对应的下一网络层的调整,以使调整后的下一网络层支持所接收到的输入数据;生成模块140,用于根据调整后的各个网络层生成调整后的caffe图像处理模型。

在一种可能的实现方式中,获取模块120,包括:第一获取子模块,用于根据第一格式,按照预设规则得到转换网络层的输出数据的第三格式,并将第三格式传递至第一网络层,其中,第一网络层为转换网络层对应的下一网络层;第二获取子模块,用于根据第三格式,按照预设规则得到第一网络层的输出数据的第四格式,并将第四格式传递至第二网络层,其中,第二网络层为第一网络层对应的下一网络层。

在一种可能的实现方式中,第一获取子模块,包括:第一确定单元,用于根据转换网络层的第一类型,确定对应的第一转换逻辑;第一获取单元,用于根据确定后的第一转换逻辑及第一格式,得到转换网络层的输出数据的第三格式。

在一种可能的实现方式中,第一类型包括单输入网络层;其中,第一确定单元,还用于在转换网络层为单输入网络层时,确定第一转换逻辑为单输入网络层对应的转换逻辑;单输入网络层对应的转换逻辑包括:输出格式与输入格式相一致。

在一种可能的实现方式中,第一类型包括多输入网络层;其中,第一确定单元,还用于在转换网络层为多输入网络层时,确定第一转换逻辑为多输入网络层对应的转换逻辑;多输入网络层对应的转换逻辑包括:在多个输入格式相同时,输出格式与输入格式相一致;在多个输入格式不同时,输出格式与caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,第一获取子模块,还包括:第二确定单元,用于根据转换网络层的第二类型,确定对应的第二转换逻辑;第二获取单元,用于根据确定后的第二转换逻辑及第一格式,得到转换网络层的输出数据的第五格式;第一设置单元,用于将第五格式设置为转换网络层的输出数据的第三格式。

在一种可能的实现方式中,第二类型包括数据输入层;其中,第二确定单元,还用于在转换网络层为数据输入层时,确定第二转换逻辑为数据输入层对应的转换逻辑;数据输入层对应的转换逻辑为:在数据输入层设置有预设输入格式时,输出格式与预设输入格式相一致,在数据输入层未设置预设输入格式时,输出格式与caffe图像处理模型的默认格式相一致。

在一种可能的实现方式中,第二类型包括数据运算层;其中,第二确定单元,还用于在转换网络层为数据运算层时,确定第二转换逻辑为数据运算层对应的转换逻辑;其中,数据运算层对应的转换逻辑为:输出格式与输入格式经过数据运算层逻辑运算后的数据格式相一致。

在一种可能的实现方式中,调整模块130,还用于按照网络前向传播顺序,逐层对每个网络层所对应的下一网络层进行调整。

在一种可能的实现方式中,调整模块130,包括第一判断子模块,用于根据前一网络层的输出数据的数据格式,以及当前网络层的权重顺序,判断当前网络层是否需要调整;第一调整子模块,用于在判断出当前网络层需要调整时,按照前一网络层的输出数据的数据格式,对当前网络层的权重顺序进行调整,以使调整后的当前网络层的权重顺序与前一层网络层的输出数据的数据格式相匹配。

在一种可能的实现方式中,还包括:处理模块,用于在接收到待处理任务的输入数据时,将输入数据输入调整后的caffe图像处理模型中处理,得到数据处理结果。

根据本公开的另一方面,提供了一种计算机设备,包括存储器、处理器,存储器上存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任意一种运算方法的步骤。

根据本公开的另一方面,还提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上任意一种运算方法的步骤。

根据本公开的一方面,提供了一种机器学习运算装置,机器学习运算装置包括一个或多个如上的任一种运算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过i/o接口传递给其他处理装置。其他处理装置譬如:摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上运算装置时,运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过pcie总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。

该机器学习运算装置具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。

图4示出了根据本公开一实施例的组合处理装置200a的框图。参阅图4,本公开还提供了一种组合处理装置200a,组合处理装置包括如上的机器学习运算装置(神经网络运算装置210),通用互联接口220和其他处理装置230。机器学习运算装置210与其他处理装置230进行交互,共同完成用户指定的操作。

其他处理装置230,包括中央处理器cpu、图形处理器gpu、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置230所包括的处理器数量不做限制。其他处理装置230作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。

通用互联接口220,用于在所述机器学习运算装置210与其他处理装置230间传输数据和控制指令。该机器学习运算装置210从其他处理装置230中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置230中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。

图5示出了根据本公开另一实施例的组合处理装置200b的框图。参阅图5,本公开的组合处理装置200b还可以包括存储装置240,存储装置240分别与所述机器学习运算装置210和所述其他处理装置230连接。存储装置240用于保存在所述机器学习运算装置210和所述其他处理装置230的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。

该组合处理装置200b可以作为手机、机器人、无人机、视频监控设备等设备的soc片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。

在一些实施例里,还公开了一种芯片,其包括了上述机器学习运算装置或组合处理装置。

在一些实施例里,公开了一种芯片封装结构,其包括了上述芯片。

在一些实施例里,公开了一种板卡,其包括了上述芯片封装结构。参阅图6,图6提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392。

所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是ddrsdram(英文:doubledataratesdram,双倍速率同步动态随机存储器)。

ddr不需要提高时钟频率就能加倍提高sdram的速度。ddr允许在时钟脉冲的上升沿和下降沿读出数据。ddr的速度是标准sdram的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个ddr4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位ddr4控制器,上述72位ddr4控制器中64bit用于传输数据,8bit用于ecc校验。可以理解,当每一组所述存储单元中采用ddr4-3200颗粒时,数据传输的理论带宽可达到25600mb/s。

在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在所述芯片中设置控制ddr的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。

所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准pcie接口。比如,待处理的数据由服务器通过标准pcie接口传递至所述芯片,实现数据转移。优选的,当采用pcie3.0x16接口传输时,理论带宽可达到16000mb/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。

所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过spi接口电连接。所述控制器件可以包括单片机(microcontrollerunit,mcu)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。

在一些实施例里,申请了一种电子设备,其包括了上述板卡。

电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。

所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1