CN111783974A - 模型构建及图像处理方法、装置、硬件平台及存储介质 - Google Patents
模型构建及图像处理方法、装置、硬件平台及存储介质 Download PDFInfo
- Publication number
- CN111783974A CN111783974A CN202010809593.1A CN202010809593A CN111783974A CN 111783974 A CN111783974 A CN 111783974A CN 202010809593 A CN202010809593 A CN 202010809593A CN 111783974 A CN111783974 A CN 111783974A
- Authority
- CN
- China
- Prior art keywords
- model
- neural network
- network model
- layer
- image processing
- 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.)
- Pending
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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及深度学***台及存储介质。其中,模型构建方法包括:训练用于图像处理的神经网络模型,该神经网络模型包括至少一个深度可分离卷积模块,深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;对训练好的神经网络模型进行量化,获得量化后的神经网络模型。该方法首先是对模型参数进行了量化,有效减少了参数的数据量,使得模型适合在NPU设备中部署。其次,该方法中的深度可分离卷积模块和现有技术中不同,在逐层卷积层和逐点卷积层之间未设置批归一化层和激活层,使得模型参数的取值分布在一个合理的范围内,从而可以对模型参数进行高精度的量化。
Description
技术领域
本发明涉及深度学***台及存储介质。
背景技术
图像处理技术在很多领域应用广泛,包括安防领域的人脸识别和智能视频分析、交通领域的交通场景识别、互联网领域的基于内容的图像检索和相册自动归类,医学领域的图像识别等。近年来,业界普遍采用神经网络模型执行特定领域的图像处理任务,并取得了较好的效果。
由于神经网络模型涉及大量运算,因此在现有技术中一般利用图形处理器(Graphics Processing Unit,简称GPU)进行运算加速,但GPU的体积较大,功耗也比较高,因此在边缘设备上通常无法进行安装。目前,针对边缘计算中面临的实际问题,已经开发出以低功耗、高性能为特征的神经网络处理器(Neural Processing Unit)。然而,现有的神经网络仍然是针对GPU环境设计的,直接迁移到NPU环境中使用,效果不佳。
发明内容
本申请实施例的目的在于提供一种模型构建及图像处理方法、装置、硬件平台及存储介质,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种模型构建方法,包括:训练用于图像处理的神经网络模型,所述神经网络模型包括至少一个深度可分离卷积模块,所述深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型。
在上述方法中,首先是对模型参数进行了量化,有效减少了参数的数据量,使得模型适合在NPU设备中部署。
其次,上述方法中的深度可分离卷积模块和现有技术中不同,现有技术中,在逐层卷积层和逐点卷积层之间会设置批归一化层以及激活层,发明人经研究发现,设置这两层后会导致模型中出现一些较大的参数,从而使得模型参数的分布范围过大,进而使得参数量化的精度下降。而本申请的方案在删除这两层后,使得模型参数的取值分布在一个合理的范围内,从而可以对模型参数进行高精度的量化,有利于降低量化操作对模型性能的影响,使得部署在NPU设备中的模型在执行图像处理任务时可以取到较好的效果。并且由于减少了模型层数,所以模型在执行图像处理任务时的推理速度也加快了。
在第一方面的一种实现方式中,在所述训练用于图像处理的神经网络模型之后,以及在所述对训练好的所述神经网络模型进行量化之前,所述方法还包括:对训练好的所述神经网络模型进行参数裁剪。
在上述实现方式中,通过对神经网络模型进行参数裁剪,有利于保持网络参数的稀疏性,减小网络规模、提升推理速度,使得量化后的神经网络模型适于部署到NPU设备中。
在第一方面的一种实现方式中,在所述训练用于图像处理的神经网络模型之后,以及在所述对训练好的所述神经网络模型进行量化之前,所述方法还包括:将训练好的所述神经网络模型中的所述激活层采用的第一激活函数替换为目标平台支持的第二激活函数,所述目标平台为搭载有神经网络处理器的硬件平台。
例如,在模型训练过程中,采ReLU6作为激活函数使得激活值的范围更集中(不超过6),有利于加速模型收敛,但在模型训练完成后,则可以用ReLU代替ReLU6,因为在有的NPU平台上并不支持ReLU6。
在第一方面的一种实现方式中,在所述训练用于图像处理的神经网络模型之后,以及在所述获得量化后的所述神经网络模型之前,所述方法还包括:将训练好的所述神经网络模型中相邻的卷积层和批归一化层进行融合。
在上述实现方式中,对部分卷积层进行融合,有利于减少在模型使用过程中对设备内存的访问,提升设备性能。
在第一方面的一种实现方式中,所述训练用于图像处理的神经网络模型,包括:在第一深度学***台下的平台文件,并在转化过程中对所述第一模型文件中保存的模型参数进行量化;其中,所述第一深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台;或者,将所述第一模型文件转化第二深度学***台下的平台文件,并在转化过程中对所述第二模型文件中保存的模型参数进行量化;其中,所述第二深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台。
一些NPU只支持某些深度学***台中,很可能不会直接使用模型文件,而要使用自定义的平台文件,因此还需要先将模型文件转换为平台文件后,才能实现模型在目标平台上的部署。
第二方面,本申请实施例提供一种图像处理方法,包括:获取待处理的目标图像;利用第一方面或第一方面的任意一种可能的实现方式提供的模型构建方法得到的神经网络模型对所述目标图像进行处理,并输出处理结果。
由于第一方面或第一方面的任意一种可能的实现方式提供的模型构建方法得到的神经网络模型经过了参数量化,并且具有较高的量化精度,因此将该模型用于执行图像处理任务不仅效率较高而且性能也较好。上述图像处理方法可以但不限于由NPU执行。
第三方面,本申请实施例提供一种模型构建装置,包括:训练单元,用于训练用于图像处理的神经网络模型,所述神经网络模型包括至少一个深度可分离卷积模块,所述深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;量化单元,用于对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型。
第四方面,本申请实施例提供一种图像处理装置,包括:图像获取单元,用于获取待处理的目标图像;图像处理单元,用于利用第一方面或第一方面的任意一种可能的实现方式提供的模型构建方法得到的神经网络模型对所述目标图像进行处理,并输出处理结果。
第五方面,本申请实施例提供一种硬件平台,包括:中央处理器、神经网络处理器以及存储器;其中,所述神经网络处理器用于:在所述中央处理器的控制下从所述存储器中读取待处理的目标图像以及第一方面的最后一种可能的实现方式提供的平台文件,利用所述平台文件中保存的神经网络模型对所述目标图像进行处理,并将获得的处理结果写入所述存储器。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有利用第一方面或第一方面的任意一种可能的实现方式提供的模型构建方法得到的神经网络模型。
第五方面,本申请实施例提供一种硬件平台,包括:中央处理器、神经网络处理器以及存储器;其中,所述神经网络处理器用于:在所述中央处理器的控制下从所述存储器中读取待处理的目标图像以及第一方面的最后一种可能的实现方式提供的平台文件,利用所述平台文件中保存的神经网络模型对所述目标图像进行处理,并将获得的处理结果写入所述存储器。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有利用第一方面或第一方面的任意一种可能的实现方式提供的模型构建方法得到的神经网络模型。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的模型构建方法的一种可能的流程;
图2(A)至图2(C)示出了普通卷积的卷积核、逐层卷积的卷积核以及逐点卷积的卷积核的结构;
图3示出了本申请实施例中深度可分离卷积模块的结构;
图4示出了本申请实施例中网络融合过程的原理;
图5示出了本申请实施例提供的图像处理方法的一种可能的流程;
图6示出了本申请实施例提供的硬件平台的一种可能的结构;
图7示出了一种可能的总体业务流程;
图8示出了总体业务流程中的模型构建阶段的具体流程;
图9示出了总体业务流程中的业务开发阶段的具体流程;
图10示出了本申请实施例提供的模型构建装置的一种可能的结构;
图11示出了本申请实施例提供的图像处理装置的一种可能的结构。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
图1示出了本申请实施例提供的模型构建方法的一种可能的流程。该方法可以但不限于由一电子设备执行,如PC机、服务器、服务器集群、虚拟机等。参照图1,该方法包括:
步骤S110:训练用于图像处理的神经网络模型。
步骤S110中所述的图像处理包括但不限于图像分类、目标检测、目标识别、图像分割等任务。
步骤S110中所述的神经网络模型中包括至少一个深度可分离卷积模块,其他结构不限定。下面先简单介绍深度可分离卷积的优势:
普通卷积的卷积核如图2(A)所示,图中DK是卷积核尺寸,M是输入通道数,N是输出通道数,并假设输入特征图的尺寸为DF。
标准卷积核做卷积操作需要的乘法次数是:
DK·DK·M·N·DF·DF
需要存储的参数(指权重参数)个数是:
DK·DK·M·N
深度可分离卷积(Depthwise Separable Convolution)包括连续执行的两种卷积操作,分别是逐层卷积(Depthwise Convolution)以及逐点卷积(PointwiseConvolution)。
逐层卷积的卷积核如图2(B)所示,图中DK是卷积核尺寸,M是输入通道数,并假设输入特征图的尺寸为DF。
逐层卷积的卷积核做卷积操作需要的乘法次数是:
DK·DK·M·DF·DF
需要存储的参数个数是:
DK·DK·M
逐点卷积的卷积核如图2(C)所示,图中M是输入通道数,N是输出通道数,并假设输入特征图的尺寸为DF。
逐点卷积的卷积核做卷积操作需要的乘法操作次数是:
M·N·DF·DF
需要存储的参数个数是:
M·N
从而,用深度可分离卷积代替普通卷积使得卷积操作所需的计算量下降:
所需参数的存储量下降:
例如,一般在卷积核为3x3时,深度可分离卷积的计算量和存储量下降为普通卷积的1/9至1/8。
考虑到深度可分离卷积的上述优势,在一些图像处理任务中采用了基于深度可分离卷积的模型,例如,在图像分类任务中可采用MobilenetV2网络,其中包含有深度可分离卷积结构。
然而,现有模型中一般按照图3左侧的方式实现深度可分离卷积,即每个深度可分离卷积模块中都包含逐层卷积层和逐点卷积层,同时在这两层之后都加入批归一化层(Batch Normalization,简称BN)和激活层(可以采用ReLU、ReLU6、ELU、SELU等激活函数)。其中,批归一化层的作用主要是加快训练速度、防止过拟合等,激活层的作用主要是在模型中引入非线性因素。
然而,发明人长期研究发现,在逐层卷积层和逐点卷积层之间设置批归一化层和激活层,会导致训练好的模型中出现一些取值较大的参数,从而导致模型参数的分布范围过大(即有的参数取值很小,有的参数取值很大),进而使得参数量化的精度下降(关于量化,见步骤S120)。
因此,在本申请的方案中,深度可分离卷积模块采用了图3右侧的结构:逐层卷积层、逐点卷积层、批归一化层以及激活层依次连接,即删除了逐层卷积层之后的批归一化层和激活层。删除这两层后,使得训练好的模型中参数的取值分布在一个合理的范围内,从而可以对模型参数进行高精度的量化。并且,由于逐层卷积层、逐点卷积层作为一个整体本来就是对普通卷积层的替代,因此在这两层之间设置批归一化层和激活层意义不大,只需在逐点卷积层之后设置批归一化层和激活层即可。为此发明人进行了大量实验,下面仅举其中一次实验的结果进行说明:
该实验采用MobilenetV2网络作为原始的神经网络模型,并将MobilenetV2网络中的深度可分离卷积模块改造后(按照上面提到的方式)得到新的神经网络模型。将两个神经网络模型都用于执行口罩佩戴情况检测任务(判断行人是否戴口罩),获得实验数据如下:
输入图像尺寸:128x128
测试样例:6674张
noBN:94%----BN:94%
noBN-0.5:94%----BN-0.5:94%
noBN-0.25:93%-----BN-0.25:93%
其中,noBN表示新的神经网络模型,BN表示原始的神经网络模型,0.5、0.25为MobilenetV2网络的参数。通过上述实验数据可以证实,删除逐层卷积层之后的批归一化层和激活层后,神经网络模型的性能并没有降低。
步骤S120:对训练好的神经网络模型进行量化,获得量化后的神经网络模型。
对模型的量化位数不限,例如可以量化为8位、16位、32位等,取决于实际需求。量化操作有效减少了参数的数据量,使得存储模型所需的存储空间更小,同时利用模型进行推理运算的运算量也更小,从而量化后的神经网络模型非常适合于在NPU设备中部署。这里所称的NPU设备,泛指采用了NPU的设备,例如,一些边缘设备、图6所示的硬件平台300,等等。并且,由于步骤S110中对深度可分离卷积模块的特殊设计有利于改善模型的量化精度,即在一定程度上抵消了量化对模型性能的影响,从而部署在NPU设备中的神经网络模型在执行图像处理任务时可以取到较好的效果。并且,由于本申请相对于现有技术简化了深度可分离卷积模块的结构,所以训练好的神经网络模型在执行图像处理任务时的推理速度也提高了。
应当指出,上述方法并未限定神经网络模型的用途,即量化后的模型并不一定要部署到NPU设备中,也可以部署到其他环境中,同样能够获得类似的有益效果。
在一些实现方式中,在步骤S110执行完成后(指模型训练好后),以及在步骤S120执行前,还可以对训练好的神经网络模型进行参数裁剪。其中,参数裁剪是指对模型中的参数(例如权重参数等)执行剪枝操作,删除一些贡献不大的卷积核通道,以保持权重的稀疏性。由于裁剪后神经网络模型在规模上显著下降,在推理速度上明显提高,从而适于部署到NPU设备中。可以理解的,在对模型进行裁剪后,还可以进一步微调模型参数,避免因裁剪导致模型性能明显下降。
在一些实现方式中,执行步骤S110时,神经网络模型的激活层采用第一激活函数,在步骤S110执行完成后(指模型训练好后),以及在步骤S120执行前,还可以将第一激活函数替换为第二激活函数。其中,第二激活函数为目标平台支持采用的激活函数,而目标平台为搭载有NPU的硬件平台,关于该硬件平台可能采用的结构,可以参考后文关于图6的阐述。
例如,假设目标平台采用的NPU为华为公司出品的昇腾310(Ascend310),昇腾310是一款高效、灵活、可编程的AI处理器。基于其典型配置,八位整数精度(INT8)下的性能达到16TOPS,16位浮点数(FP16)下的性能达到8TFLOPS,而其功耗仅为8W。则在模型训练过程中,可以采用ReLU6作为激活函数使得激活值的范围更集中(最大值不超过6),从而有利于加速模型收敛,但在模型训练完成后,则需要使用ReLU代替ReLU6,因为昇腾310并不支持在神经网络模型中采用ReLU6作为激活函数。其关键点在于,在模型的训练阶段,可以使用和推理阶段不同的激活函数。
在一些实现方式中,在步骤S110执行完成后(指模型训练好后),以及在步骤S120执行前,还可以将神经网络模型中相邻的卷积层和批归一化层进行融合,如图4所示,左侧为融合前的卷积层(记为卷积层1),右侧为融合后的卷积层(记为卷积层2)。卷积层融合后,有利于减少在模型推理过程中对设备内存的访问,提升设备性能。需要指出,此处进行融合的卷积层可以是模型中的普通卷积层,也可以是深度可分离模块中的逐点卷积层(因逐层卷积层后不包含批归一化层)。
图5示出了本申请实施例提供的图像处理方法的一种可能的流程。该方法可以但不限于由一NPU执行。参照图5,该方法包括:
步骤S210:获取待处理的目标图像。
目标图像指某种图像处理任务所需的图像,目标图像的来源不限,例如可以是实时采集,可以从网络下载,可以通过算法合成等等。
步骤S220:利用本申请实施例提供的模型构建方法(包括图1中的方法及其可能的实现方式)得到的神经网络模型对目标图像进行处理,并输出处理结果。
步骤S220中的神经网络模型是指量化后的神经网络模型,将目标图像输入至该模型,模型将输出处理结果。例如,若模型用于执行图像分类任务,则输出结果可以是模型预测的该目标图像属于每个类别的概率。由于本申请实施例提供的模型构建方法得到的神经网络模型实现了高精度的参数量化(还有可能进行了裁剪、卷积层融合),因此将该模型用于执行图像处理任务不仅效率较高而且性能也较好,并且还可以节约设备内存。
在介绍后续内容之前,先介绍本申请实施例提供的硬件平台300的一种可能的结构。参照图6,硬件平台300包括:中央处理器310(Central Processing Unit,简称CPU)、存储器320以及神经网络处理器330,这些组件通过通信总线340和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,存储器320包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。中央处理器310、神经网络处理器330以及其他可能的组件可对存储器320进行访问,读和/或写其中的数据,以及读取其中的计算机程序指令,以实现相应的功能,具体见后文阐述。
中央处理器310包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有数据的运算处理能力,但主要用于执行除模型推理之外的运算,此外,中央处理器310还可以对硬件平台300中的其他组件(如神经网络处理器330)进行控制。
神经网络处理器330包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有数据的运算处理能力,主要用于执行模型推理运算。例如,神经网络处理器330可以采用昇腾310处理器。
可以理解,图6所示的结构仅为示意,硬件平台300还可以包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。此外,硬件平台300可以作为独立的产品,也可以作为某个设备(如,边缘设备)的一部分。
图7示出了完成某个图像处理任务的总体业务流程,为简单起见,不妨以该任务是对行人是否佩戴口罩进行检测的情况为例。参照图7,总体业务流程包括两个阶段:
模型构建阶段40:构建模型并将模型部署到目标平台上,例如采用了昇腾310作为NPU的硬件平台300(在下面的阐述中均以这样的硬件平台300为例)。
业务开发阶段50:获取待检测的行人图像,在硬件平台300上完成检测并输出结果。
进一步的,继续参照图8,模型构建阶段40可以划分为3个子阶段,分别是:
模型训练410:实现神经网络模型的训练。
模型结果采用步骤S110中提到的结构,例如,可以由MobilenetV2网络改造而来(改造深度可分离卷积模块的结构)。训练数据集及训练参数根据实际需求确定,比如:
训练数据集:
输入图片尺寸为128x128,均值(RGB三通道):0.406,0.456,0.485,方差(RGB三通道):0.225,0.225,0.225,分类标签:0-背景(画面中没有行人),1-未戴口罩,2-戴口罩,3-未知。
训练参数:
batch_size=64//批大小
epoch=50//迭代轮次
lr=0.01*0.8//学习率
optimizer:SGD+Momentum(momentum=0.9,weight_decay=5e-4)//优化器
在一些实现方式中,可以利用现有的一些深度学习框架完成模型训练,不妨称为第一深度学习框架,这样的框架包括PyTorch、Caffe、TensorFlow等。训练完成后,得到一个保存有训练好的模型(包括模型的参数、结构等)的模型文件,称为第一模型文件,例如,若第一深度学习框架为PyTorch,则第一模型文件是.pth文件。在获得第一模型文件后,可以对模型进行参数裁剪,前文已述。
模型转换420:实现从第一模型文件到第二模型文件的转换。
神经网络模型将要部署的硬件平台300只支持第二深度学***台300只支持Caffe或TensorFlow框架下得到的模型文件,若第一深度学习框架为PyTorch,第二深度学习框架为Caffe,则需要将.pth文件转化为Caffe框架下的prototxt和caffemodel文件。当然,若第一深度学习框架也是Caffe,则无需进行转换。因此模型转换420这个子阶段是可选的。
在进行模型文件的转换时,还可以顺便对激活函数进行修改,前文已述。但注意,即使无需转换模型文件的格式,也可以修改模型文件中的激活函数,二者之间是相互独立的步骤。
模型部署430:实现从模型文件(可能是第一模型文件,也可能是第二模型文件,视是否执行了模型转换而定)到目标平台下的平台文件的转换。
目标平台中很可能不会直接使用模型文件,而要使用自定义格式的平台文件,因此还需要先将模型文件转换为平台文件后,才能实现模型在目标平台上的部署。例如,硬件平台300必须使用om文件,因此可以使用昇腾310提供的转换工具将Caffe框架下的第二模型文件转换为om文件。在转换平台文件的过程中,可以顺便完成模型参数的量化,而在进行量化前还可以先进行卷积层融合,前文已述。
所谓的模型部署就是将平台文件传输到硬件平台300的存储器320中保存,以便NPU能够在需要进行推理运算时能够从存储器320载入神经网络模型。传输数据的方式不限定,例如可以是通过数据线传输,可以是通过网络传输等,取决于硬件平台300的配置。
继续参照图9,业务开发阶段50可以划分为5个子阶段,分别是:
数据获取510:指从数据源采集待检测的目标图像,例如,利用摄像头拍摄路口经过的行人,其中,路口这一场景就是数据源。目标图像最终被传输并存储到硬件平台300的存储器320中。
数据预处理520:硬件平台300的中央处理器310从存储器320中读取目标图像并进行预处理,例如,进行尺寸变换、归一化、标准化、降噪处理等一项或多项处理,预处理完成后可再将处理后的数据写入存储器320。当然,如果目标图像本来就满足处理要求,也可以不进行数据预处理。
模型推理530:在中央处理器310的控制下,神经网络处理器330从存储器320中读取待处理的目标图像(可能经过了预处理)以及平台文件(在模型部署430中存入),利用平台文件中保存的神经网络模型对目标图像进行处理,并将获得的处理结果写入存储器320。处理结果为模型预测的该目标图像属于每个类别的概率。
根据前文所述,由于该神经网络模型是利用本申请实施例提供的模型构建方法得到的,所以其进行推理运算具有效率高、内存占用少、准确度高等优点。
结果后处理540:中央处理器310从存储器320中读取处理结果并根据业务需求进行适当的后处理,例如,从每个类别概率中选择一个最大的,作为神经网络模型最终预测出的类别,假设确定的最终类别标签是1。
最终结果输出550:在中央处理器310的控制下,最终结果被输出给用户,例如,将上一步中得到的最终类别的标签1转换为文字“未戴口罩”后呈现给用户。
可以理解的,图7至图9中虽然是以图像分类任务为例,但对于其他图像处理任务,其业务流程是类似的。
图10示出了本申请实施例提供的模型构建装置600的功能模块图。参照图10,模型构建装置600包括:
训练单元610,用于训练用于图像处理的神经网络模型,所述神经网络模型包括至少一个深度可分离卷积模块,所述深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;
量化单元620,用于对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型。
在模型构建装置600的一种实现方式中,所述装置还包括:模型裁剪单元,用于在训练单元610训练用于图像处理的神经网络模型之后,以及在量化单元620对训练好的所述神经网络模型进行量化之前,对训练好的所述神经网络模型进行参数裁剪。
在模型构建装置600的一种实现方式中,所述装置还包括:激活函数替换单元,用于在训练单元610训练用于图像处理的神经网络模型之后,以及在量化单元620对训练好的所述神经网络模型进行量化之前,将训练好的所述神经网络模型中的所述激活层采用的第一激活函数替换为目标平台支持的第二激活函数,所述目标平台为搭载有神经网络处理器的硬件平台。
在模型构建装置600的一种实现方式中,所述装置还包括:网络融合单元,用于在训练单元610训练用于图像处理的神经网络模型之后,以及在量化单元620获得量化后的所述神经网络模型之前,将训练好的所述神经网络模型中相邻的卷积层和批归一化层进行融合。
在模型构建装置600的一种实现方式中,训练单元610训练用于图像处理的神经网络模型,包括:在第一深度学习框架下训练用于图像处理的神经网络模型,获得保存有训练好的所述神经网络模型的第一模型文件;
量化单元620对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型,包括:将所述第一模型文件转化目标平台下的平台文件,并在转化过程中对所述第一模型文件中保存的模型参数进行量化;其中,所述第一深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台;或者,将所述第一模型文件转化第二深度学***台下的平台文件,并在转化过程中对所述第二模型文件中保存的模型参数进行量化;其中,所述第二深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台。
本申请实施例提供的模型构建装置600,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图11示出了本申请实施例提供的图像处理装置700的功能模块图。参照图11,图像处理装置700包括:
图像获取单元710,用于获取待处理的目标图像;
图像处理单元720,用于利用本申请实施例提供的模型构建方法得到的神经网络模型对所述目标图像进行处理,并输出处理结果。
本申请实施例提供的图像处理装置700,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有利用本申请实施例提供的模型构建方法得到的神经网络模型。例如,计算机可读存储介质可以实现为图6中硬件平台300中的存储器320,但也可以是一个独立的存储器。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种模型构建方法,其特征在于,包括:
训练用于图像处理的神经网络模型,所述神经网络模型包括至少一个深度可分离卷积模块,所述深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;
对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型。
2.根据权利要求1所述的模型构建方法,其特征在于,在所述训练用于图像处理的神经网络模型之后,以及在所述对训练好的所述神经网络模型进行量化之前,所述方法还包括:
对训练好的所述神经网络模型进行参数裁剪。
3.根据权利要求1所述的模型构建方法,其特征在于,在所述训练用于图像处理的神经网络模型之后,以及在所述对训练好的所述神经网络模型进行量化之前,所述方法还包括:
将训练好的所述神经网络模型中的所述激活层采用的第一激活函数替换为目标平台支持的第二激活函数,所述目标平台为搭载有神经网络处理器的硬件平台。
4.根据权利要求1所述的模型构建方法,其特征在于,在所述训练用于图像处理的神经网络模型之后,以及在所述获得量化后的所述神经网络模型之前,所述方法还包括:
将训练好的所述神经网络模型中相邻的卷积层和批归一化层进行融合。
5.根据权利要求1-4中任一项所述的模型构建方法,其特征在于,所述训练用于图像处理的神经网络模型,包括:
在第一深度学习框架下训练用于图像处理的神经网络模型,获得保存有训练好的所述神经网络模型的第一模型文件;
所述对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型,包括:
将所述第一模型文件转化目标平台下的平台文件,并在转化过程中对所述第一模型文件中保存的模型参数进行量化;其中,所述第一深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台;
或者,
将所述第一模型文件转化第二深度学***台下的平台文件,并在转化过程中对所述第二模型文件中保存的模型参数进行量化;其中,所述第二深度学***台支持的框架,所述目标平台为搭载有神经网络处理器的硬件平台。
6.一种图像处理方法,其特征在于,包括:
获取待处理的目标图像;
利用如权利要求1-5中任一项所述的模型构建方法得到的神经网络模型对所述目标图像进行处理,并输出处理结果。
7.一种模型构建装置,其特征在于,包括:
训练单元,用于训练用于图像处理的神经网络模型,所述神经网络模型包括至少一个深度可分离卷积模块,所述深度可分离卷积模块包括依次连接的逐层卷积层、逐点卷积层、批归一化层以及激活层;
量化单元,用于对训练好的所述神经网络模型进行量化,获得量化后的所述神经网络模型。
8.一种图像处理装置,其特征在于,包括:
图像获取单元,用于获取待处理的目标图像;
图像处理单元,用于利用如权利要求1-5中任一项所述的模型构建方法得到的神经网络模型对所述目标图像进行处理,并输出处理结果。
9.一种硬件平台,其特征在于,包括:中央处理器、神经网络处理器以及存储器;
其中,所述神经网络处理器用于:在所述中央处理器的控制下从所述存储器中读取待处理的目标图像以及如权利要求5所述的平台文件,利用所述平台文件中保存的神经网络模型对所述目标图像进行处理,并将获得的处理结果写入所述存储器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有利用如权利要求1-5中任一项所述的模型构建方法得到的神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809593.1A CN111783974A (zh) | 2020-08-12 | 2020-08-12 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010809593.1A CN111783974A (zh) | 2020-08-12 | 2020-08-12 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111783974A true CN111783974A (zh) | 2020-10-16 |
Family
ID=72762573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010809593.1A Pending CN111783974A (zh) | 2020-08-12 | 2020-08-12 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111783974A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329929A (zh) * | 2021-01-04 | 2021-02-05 | 北京智源人工智能研究院 | 基于代理模型的对抗样本生成方法和装置 |
CN112801266A (zh) * | 2020-12-24 | 2021-05-14 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112906523A (zh) * | 2021-02-04 | 2021-06-04 | 上海航天控制技术研究所 | 一种硬件加速的深度学习目标机型识别方法 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113159276A (zh) * | 2021-03-09 | 2021-07-23 | 北京大学 | 模型优化部署方法、***、设备及存储介质 |
CN113570030A (zh) * | 2021-01-18 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN113658210A (zh) * | 2021-09-02 | 2021-11-16 | 西安中科西光航天科技有限公司 | 基于Jetson NX平台的前端实时目标跟踪方法 |
CN113780551A (zh) * | 2021-09-03 | 2021-12-10 | 北京市商汤科技开发有限公司 | 模型量化方法、装置、设备、存储介质及计算机程序产品 |
WO2022111617A1 (zh) * | 2020-11-30 | 2022-06-02 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN116720563A (zh) * | 2022-09-19 | 2023-09-08 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
CN110110852A (zh) * | 2019-05-15 | 2019-08-09 | 电科瑞达(成都)科技有限公司 | 一种深度学***台的方法 |
CN110427990A (zh) * | 2019-07-22 | 2019-11-08 | 浙江理工大学 | 一种基于卷积神经网络的艺术图像分类方法 |
CN110532859A (zh) * | 2019-07-18 | 2019-12-03 | 西安电子科技大学 | 基于深度进化剪枝卷积网的遥感图像目标检测方法 |
CN110569730A (zh) * | 2019-08-06 | 2019-12-13 | 福建农林大学 | 一种基于U-net神经网络模型的路面裂缝自动识别方法 |
CN110599533A (zh) * | 2019-09-20 | 2019-12-20 | 湖南大学 | 适用于嵌入式平台的快速单目深度估计方法 |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
WO2020056718A1 (zh) * | 2018-09-21 | 2020-03-26 | 华为技术有限公司 | 在设备中的神经网络模型的量化方法和装置 |
CN111008924A (zh) * | 2019-12-02 | 2020-04-14 | 西安交通大学深圳研究院 | 一种图像处理方法、装置、电子设备及存储介质 |
CN111209013A (zh) * | 2020-01-15 | 2020-05-29 | 深圳市守行智能科技有限公司 | 一种高效的深度学习后端模型部署框架 |
-
2020
- 2020-08-12 CN CN202010809593.1A patent/CN111783974A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
WO2020056718A1 (zh) * | 2018-09-21 | 2020-03-26 | 华为技术有限公司 | 在设备中的神经网络模型的量化方法和装置 |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
CN110110852A (zh) * | 2019-05-15 | 2019-08-09 | 电科瑞达(成都)科技有限公司 | 一种深度学***台的方法 |
CN110532859A (zh) * | 2019-07-18 | 2019-12-03 | 西安电子科技大学 | 基于深度进化剪枝卷积网的遥感图像目标检测方法 |
CN110427990A (zh) * | 2019-07-22 | 2019-11-08 | 浙江理工大学 | 一种基于卷积神经网络的艺术图像分类方法 |
CN110569730A (zh) * | 2019-08-06 | 2019-12-13 | 福建农林大学 | 一种基于U-net神经网络模型的路面裂缝自动识别方法 |
CN110599533A (zh) * | 2019-09-20 | 2019-12-20 | 湖南大学 | 适用于嵌入式平台的快速单目深度估计方法 |
CN111008924A (zh) * | 2019-12-02 | 2020-04-14 | 西安交通大学深圳研究院 | 一种图像处理方法、装置、电子设备及存储介质 |
CN111209013A (zh) * | 2020-01-15 | 2020-05-29 | 深圳市守行智能科技有限公司 | 一种高效的深度学习后端模型部署框架 |
Non-Patent Citations (4)
Title |
---|
ANDREW G. HOWARD等: "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications", 《ARXIV》 * |
BENOIT JACOB等: "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference", 《ARXIV》 * |
TAO SHENG等: "A Quantization-Friendly Separable Convolution for MobileNets", 《ARXIV》 * |
李亚辉等: "基于轻量级深度网络的目标识别方法", 《计算机应用研究》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111617A1 (zh) * | 2020-11-30 | 2022-06-02 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN112801266B (zh) * | 2020-12-24 | 2023-10-31 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112801266A (zh) * | 2020-12-24 | 2021-05-14 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112329929A (zh) * | 2021-01-04 | 2021-02-05 | 北京智源人工智能研究院 | 基于代理模型的对抗样本生成方法和装置 |
CN113570030A (zh) * | 2021-01-18 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN113570030B (zh) * | 2021-01-18 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN112906523A (zh) * | 2021-02-04 | 2021-06-04 | 上海航天控制技术研究所 | 一种硬件加速的深度学习目标机型识别方法 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113159276A (zh) * | 2021-03-09 | 2021-07-23 | 北京大学 | 模型优化部署方法、***、设备及存储介质 |
CN113159276B (zh) * | 2021-03-09 | 2024-04-16 | 北京大学 | 模型优化部署方法、***、设备及存储介质 |
CN113658210A (zh) * | 2021-09-02 | 2021-11-16 | 西安中科西光航天科技有限公司 | 基于Jetson NX平台的前端实时目标跟踪方法 |
CN113780551A (zh) * | 2021-09-03 | 2021-12-10 | 北京市商汤科技开发有限公司 | 模型量化方法、装置、设备、存储介质及计算机程序产品 |
CN116720563B (zh) * | 2022-09-19 | 2024-03-29 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
CN116720563A (zh) * | 2022-09-19 | 2023-09-08 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783974A (zh) | 模型构建及图像处理方法、装置、硬件平台及存储介质 | |
US20230222353A1 (en) | Method and system for training a neural network model using adversarial learning and knowledge distillation | |
CN111382868B (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
CN110750965B (zh) | 英文文本序列标注方法、***及计算机设备 | |
CN111079532A (zh) | 一种基于文本自编码器的视频内容描述方法 | |
CN111275107A (zh) | 一种基于迁移学习的多标签场景图像分类方法及装置 | |
EP4336378A1 (en) | Data processing method and related device | |
CN109086265B (zh) | 一种语义训练方法、短文本中多语义词消歧方法 | |
CN110633594A (zh) | 一种目标检测方法和装置 | |
CN113869138A (zh) | 多尺度目标检测方法、装置及计算机可读存储介质 | |
CN110874634A (zh) | 神经网络的优化方法及装置、设备和存储介质 | |
CN110826706B (zh) | 用于神经网络的数据处理方法和装置 | |
CN115147598A (zh) | 目标检测分割方法、装置、智能终端及存储介质 | |
CN113887615A (zh) | 图像处理方法、装置、设备和介质 | |
CN114519613B (zh) | 价格数据的处理方法和装置、电子设备、存储介质 | |
CN116701574A (zh) | 文本语义相似度计算方法、装置、设备及存储介质 | |
Fuketa et al. | Image-classifier deep convolutional neural network training by 9-bit dedicated hardware to realize validation accuracy and energy efficiency superior to the half precision floating point format | |
US11935271B2 (en) | Neural network model compression with selective structured weight unification | |
US20210266607A1 (en) | Neural network model compression with selective structured weight unification | |
CN111967253A (zh) | 一种实体消歧方法、装置、计算机设备及存储介质 | |
CN116774973A (zh) | 数据渲染方法、装置、计算机设备及存储介质 | |
CN116306672A (zh) | 一种数据处理方法及其装置 | |
CN115983362A (zh) | 一种量化方法、推荐方法以及装置 | |
CN114819140A (zh) | 模型剪枝方法、装置和计算机设备 | |
CN113934842A (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 |