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

文档序号:17589694发布日期:2019-05-03 21:40阅读:122来源:国知局
运算方法、装置及相关产品与流程

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



背景技术:

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



技术实现要素:

有鉴于此,本公开提出了一种运算方法,通过根据第一格式和第二格式,对caffe图像处理模型的模型定义文件中首层卷积层的卷积核进行处理,得到调整后的模型定义文件,以使根据调整后的模型定义文件生成的caffe图像处理模型所支持的输入数据格式为待处理任务的输入图像的数据格式,有效提高了caffe图像处理模型的匹配度和复用性。

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

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

在所述第一格式与所述第二格式不一致时,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,得到调整后的模型定义文件,以使根据所述调整后的模型定义文件生成的caffe图像处理模型所支持的输入图像数据为所述第一格式;

其中,所述卷积核为所述caffe图像处理模型的首层卷积层对应的卷积核。

在一种可能的实现方式中,所述第一格式为单通道数据格式,所述第二格式为多通道数据格式;

其中,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,包括:

按照第一运算逻辑对所述模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,所述合并后卷积核的通道与所述第一格式的通道相匹配。

在一种可能的实现方式中,所述第一格式包括灰度图像格式或明度图像格式,所述第二格式包括三基色图像格式;

所述第一运算逻辑为加权求和运算;

其中,按照第一运算逻辑对所述模型定义文件中的卷积核进行通道合并,包括:

根据所述第一格式和所述第二格式,将所述卷积核各个通道相同位置处的权重值乘以相应的系数后,再对乘以系数后的每个值进行求和运算,得到所述合并后的卷积核。

在一种可能的实现方式中,所述第一格式为多通道数据格式,所述第二格式为单通道数据格式;

其中,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,包括:

按照第二运算逻辑对所述模型定义文件中的卷积核进行通道拆分,得到拆分后的卷积核;

其中,所述拆分后的卷积核的通道与所述第一格式的通道相匹配。

在一种可能的实现方式中,所述第一格式包括三基色图像格式,所述第二格式包括灰度图像格式或明度图像格式,

所述第二运算逻辑为按比例拆分运算;

其中,按照第二运算逻辑对所述模型定义文件中的卷积核进行通道拆分,包括:

根据所述第一格式和所述第二格式,对所述卷积核各个通道相同位置处的权重值按照相应的拆分系数数组进行拆分,得到所述拆分后的卷积核。

在一种可能的实现方式中,所述第一格式包括亮度-色度图像格式,所述第二格式包括灰度图像格式;

其中,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,包括:

在所述模型定义文件的首层卷积层之前添加第一转换层,所述第一转换层,用于将所述第一格式转换为三基色图像格式;

根据所述转换后的三基色图像格式,对所述模型定义文件中的卷积核进行逻辑运算,以使经过逻辑运算后的卷积核的通道与所述第二格式的通道相匹配。

在一种可能的实现方式中,所述第一格式和所述第二格式均为三基色图像格式,且所述第二格式的通道数量大于所述第一格式的通道数量,

其中,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,包括:

按照第三运算逻辑对所述模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,所述合并后卷积核的通道与所述第一格式的通道相匹配;

所述第三运算逻辑为加权求和。

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

在接收到所述待处理任务的输入图像数据时,根据调整后的模型定义文件和权重文件,生成caffe图像处理模型;

将所述输入图像数据输入生成的caffe图像处理模型中处理,得到图像处理结果。

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

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

处理模块,用于在所述第一格式与所述第二格式不一致时,根据所述第一格式及所述第二格式,对所述caffe图像处理模型的模型定义文件中的卷积核进行处理,得到调整后的模型定义文件,以使根据所述调整后的模型定义文件生成的caffe图像处理模型所支持的输入图像数据为所述第一格式;

其中,所述卷积核为所述caffe图像处理模型的首层卷积层对应的卷积核。

在一种可能的实现方式中,所述第一格式为单通道数据格式,所述第二格式为多通道数据格式;

其中,所述处理模块,包括:

第一通道合并子模块,用于按照第一运算逻辑对所述模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,所述合并后卷积核的通道与所述第一格式的通道相匹配。

在一种可能的实现方式中,所述第一格式包括灰度图像格式或明度图像格式,所述第二格式包括三基色图像格式;

所述第一运算逻辑为加权求和运算;

其中,所述第一通道合并子模块,还用于:

根据所述第一格式和所述第二格式,将所述卷积核各个通道相同位置处的权重值乘以相应的系数后,再对乘以系数后的每个值进行求和运算,得到所述合并后的卷积核。

在一种可能的实现方式中,所述第一格式为多通道数据格式,所述第二格式为单通道数据格式;

其中,所述处理模块,包括:

通道拆分子模块,用于按照第二运算逻辑对所述模型定义文件中的卷积核进行通道拆分,得到拆分后的卷积核;

其中,所述拆分后的卷积核的通道与所述第一格式的通道相匹配。

在一种可能的实现方式中,所述第一格式包括三基色图像格式,所述第二格式包括灰度图像格式或明度图像格式,

所述第二运算逻辑为按比例拆分运算;

其中,所述通道拆分子模块,还用于:

根据所述第一格式和所述第二格式,对所述卷积核各个通道相同位置处的权重值按照相应的拆分系数数组进行拆分,得到所述拆分后的卷积核。

在一种可能的实现方式中,所述第一格式包括亮度-色度图像格式,所述第二格式包括灰度图像格式;

其中,所述处理模块,包括:

转换层添加子模块,用于在所述模型定义文件的首层卷积层之前添加第一转换层,所述第一转换层,用于将所述第一格式转换为三基色图像格式;

卷积核运算子模块,用于根据所述转换后的三基色图像格式,对所述模型定义文件中的卷积核进行逻辑运算,以使经过逻辑运算后的卷积核的通道与所述第二格式的通道相匹配。

在一种可能的实现方式中,所述第一格式和所述第二格式均为三基色图像格式,且所述第二格式的通道数量大于所述第一格式的通道数量,

其中,所述处理模块,包括:

第二通道合并子模块,用于按照第三运算逻辑对所述模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,所述合并后卷积核的通道与所述第一格式的通道相匹配;

所述第三运算逻辑为加权求和。

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

模型生成模块,用于在接收到所述待处理任务的输入图像数据时,根据调整后的模型定义文件和权重文件,生成caffe图像处理模型;

输入处理模块,用于将所述输入图像数据输入生成的caffe图像处理模型中处理,得到图像处理结果。

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

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

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

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

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

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

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

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

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

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

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

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

根据本公开的一方面,提供了一种神经网络芯片,所述芯片包括如上任意所述的运算装置。

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

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

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

所述存储期间,用于存储数据;

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

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

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

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

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

上述运算方法,在判断出待处理任务的输入图像数据的第一格式与caffe图像处理模型所支持的输入数据的第二格式不一致时,通过根据第一格式和第二格式,对caffe图像处理模型的模型定义文件中首层卷积层的卷积核进行处理,得到调整后的模型定义文件,以使根据调整后的模型定义文件生成的caffe图像处理模型所支持的输入数据格式为第一格式。由此,当进行待处理任务的处理时,即使待处理任务的输入图像的数据格式与caffe图像处理模型所支持的输入数据格式不一致,其仍能够顺利写入根据调整后的模型定义文件生成的caffe图像处理模型中,这就有效提高了caffe图像处理模型的匹配度和复用性。

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

附图说明

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

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

图2a和图2b示出根据本公开一实施例的bgr模型的首层卷积层的示意图;

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

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

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

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

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

具体实施方式

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

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

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

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

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

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

步骤s200,在第一格式与第二格式不一致时,根据第一格式与第二格式,对caffe图像处理模型的模型定义文件中的卷积核进行处理,得到调整后的模型定义文件,以使根据调整后的模型定义文件生成的caffe图像处理模型所支持的输入图像数据为第一格式。其中,需要指出的是,卷积核为caffe图像处理模型的首层卷积层对应的卷积核。

上述运算方法,在接收到的待处理任务的输入图像数据的第一格式与caffe图像处理模型所能够支持的输入数据的第二格式不一致时,在caffe图像处理模型端,可以根据第一格式与第二格式对caffe图像处理模型的模型定义文件中的首层卷积层的卷积核进行调整,以代替在cpu端进行输入图像数据的格式转换和预处理的操作。本公开实施例不需要进行复杂的运算,也不需要占用大量的运算资源,有效提高了数据处理效率,节省了网络预处理时间。

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

同时,还需要指出的是,上述运算方法可以是在训练得到的卷积神经网络(即caffe图像处理模型)上进行的。其中,本领域技术人员可以理解的是,用于生成caffe图像处理模型的文件包括两个:一个为结构文件(prototxt,简称pt),也就是前面所述的模型定义文件;另一个则为权重文件(caffemodel)。上述运算方法中所调整的对象可以是存储在磁盘中的模型定义文件(pt)。

其通过对caffe图像处理模型的模型定义文件中的卷积核进行处理,可以使得不论输入图像数据为何种格式,模型定义文件中的卷积核可以对应输入图像数据的具体数据格式进行相应的处理,得到相应的调整后的模型定义文件,进而根据调整后的模型定义文件生成相应的caffe图像处理模型。本公开实施例中生成的caffe图像处理模型能够顺序读取不同格式类型的输入图像数据,并对读取到的输入图像数据进行处理,有效提高了caffe图像处理模型的复用性和匹配度。

并且,本公开实施例提供的方法可以只对caffe图像处理模型的模型定义文件中首层卷积层的卷积核进行处理,其相较于传统的在cpu端对输入图像进行数据转换和预处理的方式,不需要进行复杂的运算,也不需要占用大量的运算资源。并且相较于传统的在神经网络中使用数据拆分再合并的方式,本公开实施例提供的方法不需要加入额外计算的神经网络结构,不需要对网络结构进行手工调整,避免了较多的额外操作,最终有效提高了图像处理效率,节省了图像处理时间,降低了资源消耗。

进一步的,图像数据的表征通常包含有以下几种。一种为:采用三基色(红red,绿green,蓝blue)加光系统原理描述图像颜色。即,采用记录像素的三基色的数据格式(如:bgr格式)进行图像颜色的表征(三基色图像格式)。其中,在采用记录像素的三基色的数据格式进行图像颜色的表征时,三基色图像格式可以为三通道数据格式,也可以为四通道数据格式。三通道数据格式指的是r通道、g通道和b通道三个通道进行排列组合后的数据格式。四通道数据格式则指的是,在r通道、g通道和b通道三个通道的基础上再增加一个额外的透明度通道(a通道)进行排列组合后的数据格式。

另一种为:灰度图像格式。即,每个像素只有一个采样颜色的图像。本领域技术人员可以理解的是,灰度图像格式只有一个通道,即,单通道数据格式。

第三种为:按照亮度和色差的原理描述图像颜色。即,采用记录像素的亮度及色度的数据格式(如:yuv格式)进行图像颜色的表征(亮度-色度图像数据格式)。yuv格式中的部分分量也可以作为单通道数据格式使用。

基于常规数据集训练生成的卷积神经网络通常为三通道(opencv下默认为bgr)输入,即caffe图像处理模型通常支持的输入数据格式为bgr格式。本文以下描述的实施方式分别以caffe图像处理模型所支持的数据格式为bgr格式和灰度图像格式为例进行说明。可以理解的是,以下所描述的caffe图像处理模型所支持的数据格式为bgr格式和灰度图像格式仅作为举例说明,其不具有限定作用。本领域技术人员根据本公开提供的实施方式,还可以基于输入数据格式为四通道输入的caffe图像处理模型进行处理,此处不进行赘述。

图2a和图2b示出根据本公开一实施例的bgr模型的首层卷积层的示意图。参阅图2b,在上述bgr三通道输入的caffe图像处理模型中,首层卷积层所对应的卷积核权重规模为3*kh*kw,分别对应bgr三通道下的卷积窗口(kh*kw)。

在一种可能的实现方式中,第一格式为单通道数据格式,第二格式为多通道数据格式。即,输入图像数据的通道个数为一个。caffe图像处理模型的首层卷积层对应的卷积核的通道个数为多个。这种情况下,卷积核的通道个数大于输入图像数据的通道个数。因此,在根据第一格式和第二格式,对caffe图像处理模型的模型定义文件中的卷积核进行处理时,可以通过按照第一运算逻辑对模型定义文件中的卷积核进行通道合并,将卷积核的通道合并为单通道,得到合并后的卷积核。其中,合并后的卷积核的通道与第一格式的通道相匹配,以使得处理后的卷积核能够接收并读取单通道数据格式的输入图像数据。

在本公开实施例中,通过按照第一运算逻辑对卷积核的通道进行合并,将卷积核的多个通道合并为单通道,使得输入图像数据格式(第一格式)为单通道数据格式时,能够顺序写入caffe图像处理模型中进行相应的处理。操作简单,易于实现。

根据前面所述,单通道数据格式的输入图像既可以为灰度图像,还可以为明度图像(如:yuv图像中的y分量),多通道数据格式的图像可以为三基色图像格式(bgr图像、argb图像或rgb图像等)。因此,按照第一运算逻辑对模型定义文件中的卷积核进行通道合并处理时,第一运算逻辑可以为加权求和运算。

其中,在一种可能的实现方式中,按照加权求和运算(第一运算逻辑)对模型定义文件中的卷积核进行通道合并处理时,可以包括:

根据第一格式和第二格式,将卷积核各个通道相同位置处的权重值均乘以相应的系数后,再对乘以系数后的每个值进行求和运算,从而得到合并后的卷积核。

在本公开实施例中,通过采用加权求和的运算逻辑进行卷积核的通道合并,运算简单,易于实现。

为更清楚的说明上述按照加权求和运算对卷积核进行通道合并的处理过程,以下以第一格式为灰度图像格式,第二格式为三通道的bgr图像格式为例,进行更加详细的说明。可以理解的是,本实施例中第一格式为灰度图像格式,第二格式为bgr图像格式仅仅作为一个具体的实施例对上述卷积核通道合并的处理进行更加详细的说明,第一格式还可以为yuv图像中的y分量,第二格式还可以为四通道的abgr格式、argb格式等。此处,不进行一一赘述。

在第一格式为灰度图像格式,第二格式为bgr格式时,按照加权求和运算对模型定义文件中的卷积核进行通道合并的处理过程可以为:

(wgray)=(wbwgwr)·d

其中,wgray为转换后的第一格式对应权重(即,对卷积核进行通道合并后对应的权重),wbwgwr为转换前第二格式对应的权重(即,对卷积核进行通道合并之前对应的权重),系数矩阵d为对应的转换系数。

在本公开实施例中,第一格式为灰度图像,系数矩阵具体值如下:

在第一格式为明度图像的情况下,系数矩阵的值为:

需要说明的是,此处给出的系数矩阵的具体值为示例数值,使用在常用场景下。对于特殊环境或定制的应用程序中,该矩阵可以为特殊设计的数值。

在一种可能的实现方式中,第一格式为多通道数据格式,第二格式为单通道数据格式。即,输入图像数据的通道个数为多个,caffe图像处理模型的首层卷积层对应的卷积核的通道个数为一个。这种情况下,卷积核的通道个数少于输入图像数据的通道个数。因此,在根据第一格式和第二格式,对caffe图像处理模型的模型定义文件中的卷积核进行处理时,可以通过按照第二运算逻辑对模型定义文件中的卷积核进行通道拆分,将卷积核的通道拆分为多通道形式,得到拆分后的卷积核。其中,拆分后的卷积核的通道与第一格式的通道相匹配,以使得处理后的卷积核能够接收并读取多通道数据格式的输入图像数据。

在本公开实施例中,通过按照第二运算逻辑对卷积核的通道进行拆分,将卷积核的单通道拆分为多个通道,使得输入图像数据格式(第一格式)为多通道数据格式时,能够顺序写入caffe图像处理模型中进行相应的处理。操作简单,易于实现。

根据前面所述,多通道数据格式的输入图像既可以为三通道格式的三基色图像格式(如:bgr图像、rgb图像格式或brg图像格式等),还可以为四通道格式的三基色图像(如:argb图像格式或rgb图像等),多通道数据格式的图像既可以为灰度图像,还可以为明度图像(yuv图像中的y分量)。因此,按照第二运算逻辑对模型定义文件中的卷积核进行通道拆分处理时,第二运算逻辑可以为按比例拆分运算。

其中,在一种可能的实现方式中,按照按比例拆分运算(第一运算逻辑)对模型定义文件中的卷积核进行通道拆分处理时,可以包括:

根据第一格式和第二格式,对卷积核各个通道相同位置处的权重值按照相应的拆分系数数组进行拆分,得到拆分后的卷积核。

在本公开实施例中,通过采用按比例拆分的运算逻辑进行卷积核的通道合并,运算简单,易于实现。

为更清楚的说明上述按照加权求和运算对卷积核进行通道拆分的处理过程,以下以第一格式为三通道的bgr图像格式,第二格式为灰度图像格式为例,进行更加详细的说明。可以理解的是,本实施例中第一格式为三通道的bgr图像格式,第二格式为灰度图像格式仅仅作为一个具体的实施例对上述卷积核通道拆分的处理进行更加详细的说明,第一格式还可以为四通道的abgr格式、argb格式等,第二格式还可以为yuv图像中的y分量。此处,不再进行一一赘述。

在第一格式为bgr格式,第二格式为灰度图像格式时,按照按比例拆分运算对模型定义文件中的卷积核进行通道拆分的处理过程可以为:

(wbwgwr)=(wgray)·d

其中,wbwgwr为转换后第一格式对应的权重(即,对卷积核进行通道拆分后对应的权重),wgray为转换前的第二格式对应权重(即,对卷积核进行通道拆分之前所对应的权重),系数矩阵d为对应的转换系数(拆分系数数组)。

在本公开实施例中,第二格式为灰度图像,系数矩阵具体值如下:

(0.330.330.33)

在第二格式为明度图像的情况下,系数矩阵的值为:

(0.1140.5870.299)

需要说明的是,此处给出的系数矩阵的具体值为示例数值,使用在常用场景下。对于特殊环境或定制的应用程序中,该矩阵可以为特殊设计的数值。

作为一种可能的实现方式,第一格式还可以为亮度-色度图像格式(yuv格式),第二格式可以为灰度图像格式。即,输入图像格式为yuv格式,caffe图像处理模型中的模型定义文件的卷积核所支持的数据格式为灰度图像格式。在这种情况下,根据第一格式及第二格式,对caffe图像处理模型的模型定义文件中的卷积核进行处理,可以包括:

在模型定义文件的首层卷积层之前添加第一转换层,第一转换层,用于将第一格式转换为三基色图像格式。

根据转换后的三基色图像格式,对模型定义文件中的卷积核进行逻辑运算,以使经过逻辑运算后的卷积核的通道与第二格式的通道相匹配。

即,在上述情况下,由于yuv格式不是采用三基色进行像素表征的方式,灰度图像格式则是采用单一颜色进行每个像素的表征,两者表征原理不同。因此,不能简单的采用拆分通道或合并通道的方式进行卷积核的处理。因此,在该种情况下,可以先在首层卷积层添加一转换层(第一转换层),由添加的第一转换层对yuv格式进行格式转换,转换为三基色图像格式,进而再根据转换后的三基色图像格式的具体通道顺序进行卷积核的通道合并处理即可。

如:第一格式为yuv格式,第二格式为灰度图像格式。此时,添加的第一转换层将第一格式由yuv格式转换为bgr格式,然后再根据第一格式为bgr格式,第二格式为灰度图像格式的情况,进行卷积核的通道拆分。其中,进行通道拆分的原理与前面所述的通道拆分的原理相同或相似,因此,此处不再赘述。

需要指出的是,第一转换层还可以将yuv格式转换为rgb格式,或者是四通道的abgr格式、agrb格式等。转换后的格式的不同,仅仅影响后续进行通道合并时采用的系数不同,具体的运算过程相同或相似,因此,此处也不再进行赘述。

作为一种可能的实现方式,第一格式和第二格式可以都为三基色图像格式,只不过第二格式的通道数量大于第一格式的通道数量。即,第一格式可以为三通道的三基色图像格式,如:bgr格式、rgb格式、brg格式等。第二格式可以为四通道的三基色图像格式,如:abgr格式、argb格式、agrb格式等。其中,对于四通道的三基色图像格式中,a通道的权重值可以不为零。

对于上述情况,对卷积核的处理可以采用通道合并的处理方式。即,按照第三运算逻辑对模型定义文件中的卷积核进行通道合并,得到合并后的卷积核。其中,合并后卷积核的通道与第一格式的通道相匹配。此处,需要说明的是,第三运算逻辑同样可以为加权求和运算。

如:第一格式为bgr格式,第二格式为argb格式,此时按照加权求和运算对卷积核进行通道合并,可以包括:

(wbwgwr)=(wawrwgwb)·d

其中,wbwgwr为转换后第一格式对应的权重(即,对卷积核进行通道合并后对应的权重),(wawrwgwb)为转换前的第二格式对应权重(即,对卷积核进行通道合并后对应的权重),系数矩阵d为对应的转换系数。

在本公开实施例中,系数矩阵具体值如下:

需要说明的是,此处给出的系数矩阵的具体值为示例数值,使用在常用场景下。对于特殊环境或定制的应用程序中,该矩阵可以为特殊设计的数值。

图5示出根据本公开一实施例的运算方法的流程图。在一种可能的实施方式中,参阅图5,所述运算方法还可包括:

步骤s300,在接收到待处理任务的输入图像数据时,根据调整后的模型定义文件和权重文件,生成caffe图像处理模型。

步骤s400,将输入图像数据输入生成的caffe图像处理模型中处理,得到图像处理结果。

即,通过上述任意一种方式对caffe图像处理模型的模型定义文件进行修改之后,即可根据修改后的模型定义文件和之前训练得到的权重文件生成相应的caffe图像处理模型。可以将接收到的待处理任务的输入图像数据(如:argb格式的输入图像数据或yuv格式的输入图像数据)输入至生成的caffe图像处理模型中进行处理。caffe图像处理模型可以读取输入图像数据并进行相应的处理,得到图像处理结果,实现caffe图像处理模型支持多类型的图像输入的目的,有效提高生成的caffe图像处理模型的复用性。

综述,上述任意一种运算方法,在输入图像数据的数据格式(第一格式)与caffe图像处理模型所能够支持的数据格式(第二格式)不一致时,采用在caffe图像处理模型端,根据第一格式及第二格式对caffe图像处理模型的模型定义文件中首层卷积层对应的卷积核进行处理,得到调整后的模型定义文件。相较于传统的使用cpu进行数据格式转换和预处理的方式,避免了每张输入图像均需要在cpu上完成图像通道重排列的过程以及复杂的运算的过程,避免了大量cpu的运算资源的消耗。并且,相较于传统的在神经网络中使用数据拆分再合并的方式处理argb等四通道输入图像的方式,上述任意一种运算方法不需要用户较多的额外操作,克服了传统的修改神经网络方式所导致的较大改动、处理复杂、难以调试的缺陷。

图4示出了本公开一实施例的运算装置100的框图。参阅图4,本公开的运算装置100可以应用于异构计算架构中,异构计算架构包括通用处理器和人工智能处理器。运算装置100包括:

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

处理模块120,用于在第一格式与第二格式不一致时,根据第一格式及第二格式,对caffe图像处理模型的模型定义文件中的卷积核进行处理,得到调整后的模型定义文件,以使根据调整后的模型定义文件生成的caffe图像处理模型所支持的输入图像数据为第一格式;

其中,卷积核为caffe图像处理模型的首层卷积层对应的卷积核。

在一种可能的实现方式中,第一格式为单通道数据格式,第二格式为多通道数据格式;

其中,处理模块120,包括:

第一通道合并子模块,用于按照第一运算逻辑对模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,合并后卷积核的通道与第一格式的通道相匹配。

在一种可能的实现方式中,第一格式包括灰度图像格式或明度图像格式,第二格式包括三基色图像格式;

第一运算逻辑为加权求和运算;

其中,第一通道合并子模块,还用于:

根据第一格式和第二格式,将卷积核各个通道相同位置处的权重值乘以相应的系数后,再对乘以系数后的每个值进行求和运算,得到合并后的卷积核。

在一种可能的实现方式中,第一格式为多通道数据格式,第二格式为单通道数据格式;

其中,处理模块120,包括:

通道拆分子模块,用于按照第二运算逻辑对模型定义文件中的卷积核进行通道拆分,得到拆分后的卷积核;

其中,拆分后的卷积核的通道与第一格式的通道相匹配。

在一种可能的实现方式中,第一格式包括三基色图像格式,第二格式包括灰度图像格式或明度图像格式,

第二运算逻辑为按比例拆分运算;

其中,通道拆分子模块,还用于:

根据第一格式和第二格式,对卷积核各个通道相同位置处的权重值按照相应的拆分系数数组进行拆分,得到拆分后的卷积核。

在一种可能的实现方式中,第一格式包括亮度-色度图像格式,第二格式包括灰度图像格式;

其中,处理模块120,包括:

转换层添加子模块,用于在模型定义文件的首层卷积层之前添加第一转换层,第一转换层,用于将第一格式转换为三基色图像格式;

卷积核运算子模块,用于根据转换后的三基色图像格式,对模型定义文件中的卷积核进行逻辑运算,以使经过逻辑运算后的卷积核的通道与第二格式的通道相匹配。

在一种可能的实现方式中,第一格式和第二格式均为三基色图像格式,且第二格式的通道数量大于第一格式的通道数量,

其中,处理模块120,包括:

第二通道合并子模块,用于按照第三运算逻辑对模型定义文件中的卷积核进行通道合并,得到合并后的卷积核;

其中,合并后卷积核的通道与第一格式的通道相匹配;

第三运算逻辑为加权求和。

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

模型生成模块,用于在接收到待处理任务的输入图像数据时,根据调整后的模型定义文件和权重文件,生成caffe图像处理模型;

输入处理模块,用于将输入图像数据输入生成的caffe图像处理模型中处理,得到图像处理结果。

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

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

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

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

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

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

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

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

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

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

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

在一些实施例里,公开了一种板卡,其包括了上述芯片封装结构。参阅图7,图7提供了一种板卡,上述板卡除了包括上述芯片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