CN110659729A - 基于循环穿孔的加速cnn图像处理方法及系统 - Google Patents
基于循环穿孔的加速cnn图像处理方法及系统 Download PDFInfo
- Publication number
- CN110659729A CN110659729A CN201910910914.4A CN201910910914A CN110659729A CN 110659729 A CN110659729 A CN 110659729A CN 201910910914 A CN201910910914 A CN 201910910914A CN 110659729 A CN110659729 A CN 110659729A
- Authority
- CN
- China
- Prior art keywords
- program
- perforation
- accelerated
- image processing
- relative error
- 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.)
- Granted
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本公开公开了基于循环穿孔的加速CNN图像处理方法及系统,获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
Description
技术领域
本公开涉及图像处理技术领域,特别是涉及基于循环穿孔的加速CNN图像处理方法及系统。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
由于人工智能的快速发展,深度学习也进入了发展高潮。随着深度学习的不断发展,算法的复杂性也越来越强,一个简单的现代深度学习程序要训练几百亿次以上才会收敛。因此,如何提高深度学习程序的运行速度是一个亟待解决的问题。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
图像处理领域的深度学习,尤其是卷积神经网络在近几年成为研究的热点,为了适应科技的发展,各种网络模型也是层出不穷,从AlexNet到VGGNet,再到GoogLeNet,再到后来的ResNet,为了提高输出精度,网络的层数不断增加,卷积计算的随之增加,效果虽然提升,但是由于计算量的显著增加,使得收敛速度也越来越慢。因此,如何保证图像处理后输出的精度,同时又加快网络收敛速度,提升图像处理的速度是需要解决的技术问题。
目前,很多专家利用模型压缩、优化加速、异构计算来加快程序的运行速度降低参数的冗余,减少存储占用,从而提升深度学习程序的性能。除此之外,使用近似计算来提升程序性能的方法也越来越受人们关注,近似计算是以用户可以接受的损失精度来换取程序性能提升的一种方法,最近几年,近似计算在一些机器学习、数据挖掘、图像处理等领域得到广泛应用,主流的近似计算的软件技术主要有循环穿孔、任务跳过、早期终止等等。
之前的循环穿孔是随机跳过一部分迭代,这样会造成精度损失比较大;或者选择穿孔,动态穿孔,选择的过程很繁琐,占用太多执行时间,会抵消一部分近似收益。
但是近似计算的使用,会造成程序的崩溃或者精度的大量损失,因此,如何在现代深度学习网络中合理使用近似计算,并保证程序顺利执行,同时使损失精度尽可能小成为研究的重点。
发明内容
为了解决现有技术的不足,本公开提供了基于循环穿孔的加速CNN图像处理方法及系统;
第一方面,本公开提供了基于循环穿孔的加速CNN图像处理方法;
基于循环穿孔的加速CNN图像处理方法,包括:
获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
第二方面,本公开还提供了基于循环穿孔的加速CNN图像处理系统;
基于循环穿孔的加速CNN图像处理系统,包括:
目标循环程序识别模块,其被配置为:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
循环穿孔模块,其被配置为:基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
应用模块,其被配置为:获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述方法的步骤。
与现有技术相比,本公开的有益效果是:
第一,我们的选择工作,即选择要穿孔的指令和迭代工作,在程序执行之前完成,不占用程序的任何执行时间,保证近似收益的最大化;
第二,选择工作简单且易于理解,除此之外,选择与实现穿孔都是基于LLVM和clang编译器;
第三,穿孔之后,对近似程序采用动态质量管理,实时检测输出误差,最小化输出精度损失。
第四,本申请可以实现图像处理后图像输出的精确度提升,还可以满足图像处理过程中速度的提升,缩短图像处理的时间。
我们的方法是在程序执行之前对程序中的迭代和指令进行穿孔之后的精度分析,从而选出精度损失较低的指令或迭代称作目标指令或迭代,在程序执行时直接穿孔目标指令或迭代。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的执行循环穿孔的流程图;
图2为第一个实施例的动态质量管理流程图;
图3为第一个实施例的误差图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
缩写:待加速程序,即为:待加速的基于卷积神经网络CNN的图像处理程序。
实施例一,本实施例提供了基于循环穿孔的加速CNN图像处理方法;
基于循环穿孔的加速CNN图像处理方法,包括:
S1:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
S2:基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
S3:获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的图像。
本实施例是基于循环穿孔,有效提升深度学习程序性能的同时又能最小化损失精度的方法。
应理解的,待加速的基于卷积神经网络CNN的图像处理程序,例如,基于卷积神经网络CNN的人脸图像特征提取程序;或者,基于卷积神经网络CNN的人脸图像分类识别程序;或者,基于卷积神经网络CNN的图像分割程序。
作为一个或多个实施例,所述从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序,具体步骤包括:计算待加速的基于卷积神经网络CNN的图像处理程序中每个循环程序的执行时间,获取占用总执行时间最多的前M个循环程序;M为设定值,M为正整数;
应理解的,所述计算待加速的基于卷积神经网络CNN的图像处理程序中每个循环程序的执行时间,是使用Vtune性能分析工具分析得出。
应理解的,选取占总执行时间前N个的循环作为目标循环程序。如果循环不足N个,则所有循环作为目标循环。选N个的目的是有效扩大目标循环的范围,范围越大,越容易发现更多近似机会,更好实现穿孔。目标循环的数量不是一成不变的,实验中可根据具体的程序适当调整目标循环的数量,但一定要是占总执行时间较长的前几位循环。此过程离线操作,不会降低近似的收益。
应理解的,执行穿孔,由于不同的指令和迭代会对待加速的基于卷积神经网络CNN的图像处理程序产生不同的影响,通过对待加速的基于卷积神经网络CNN的图像处理程序进行精确和模拟穿孔执行,根据输出结果绘制误差图,选择对待加速的基于卷积神经网络CNN的图像处理程序影响较小的指令或迭代执行穿孔,同时穿孔一些指令或迭代会增大输出误差,一方面选择输出损失精度在5%以内的指令执行穿孔,另一方面执行穿孔时,我们根据损失精度从小到大的顺序执行折半穿孔,一旦损失精度超过预期,则停止穿孔。折半穿孔的思想来源于折半查找,折半查找可以大量缩短查找时间。
作为一个或多个实施例,如图1所示,所述执行循环穿孔的具体步骤包括:
S21:对待加速的基于卷积神经网络CNN的图像处理程序进行运行,记录待加速的基于卷积神经网络CNN的图像处理程序的第一输出精度,即精确精度;
步骤S22和步骤S23是并发进行的;
S22:对目标循环程序的指令进行模拟穿孔;记录每次模拟穿孔后待加速程序的第二输出精度;
S23:对目标循环程序的迭代进行模拟穿孔;记录每次模拟穿孔后待加速程序的第三输出精度;
S24:每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的指令为敏感指令;否则,当前被模拟穿孔的指令为弹性指令;
每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的迭代为敏感迭代;否则,当前被模拟穿孔的迭代为弹性迭代;
S25:根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第二输出精度,计算第一相对误差;
根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第三输出精度,计算第二相对误差;
S26:根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性指令;绘制每条弹性指令与第一相对误差和第二相对误差的关系图;
根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性迭代;绘制每条弹性迭代与第一相对误差和第二相对误差的关系图;
S27:根据每条弹性指令与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性指令,按照损失精度从小到大的顺序依次进行真实折半穿孔;
根据每条弹性迭代与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性迭代,按照损失精度从小到大的顺序依次进行真实折半穿孔;得到初始近似程序。
作为一个或多个实施例,所述S22:对目标循环程序的指令进行模拟穿孔;是采用注释技术对目标循环程序的指令进行模拟穿孔。
作为一个或多个实施例,所述S23:对目标循环程序的迭代进行模拟穿孔;是采用自定义算法对目标循环程序的迭代进行模拟穿孔。
作为一个或多个实施例,所述采用自定义算法对目标循环程序的迭代进行模拟穿孔,具体步骤包括:
对目标循环程序的每一次迭代进行模拟穿孔,记录每一次模拟穿孔待加速程序的输出精度。
进一步地,所述穿孔,是使用LLVM工具对待处理程序中目标循环的指令和迭代进行依次穿孔,穿孔就是,控制指定的指令或迭代在待加速程序运行的过程中不执行。
进一步地,所述采用注释技术对目标循环程序的指令进行模拟穿孔,是对待穿孔的指令进行注释处理,进行下一次穿孔操作时,确保上一次注释的指令取消注释,每次穿孔只注释一条指令。注释处理的目的是实现待处理程序中不执行被注释的指令,从而完成穿孔操作。
进一步地,所述折半穿孔,是对待穿孔的指令的前二分之一执行穿孔,例如:当前待穿孔的指令或迭代数为10,且当前待穿孔的指令或迭代是按照精度损失从小到大依次排列,则优先穿孔前5个指令或迭代,即前二分之一。
应理解的,所述记录每次模拟穿孔后待加速程序的第二输出精度,是指:记录实现一一对应,即一条指令对应一个穿孔输出,例如:指令1对应穿孔输出1,指令2对应穿孔输出2,指令1和指令2均是指目标循环内的指令。实现依次穿孔每条指令,采用注释技术,即对待穿孔的指令进行注释处理,进行下一次穿孔操作时,确保上一次注释的指令取消注释,每次穿孔只注释一条指令。
进一步地,每一次真实折半穿孔结束,均需要判断待加速程序当前的最终输出精度与第一输出精度之间的误差,
若误差在设定范围之内,则继续判断未穿孔的指令的个数是否大于0,如果大于0,则继续对下一个未穿孔的指令执行折半穿孔;
若误差不在设定范围之内,则判断本次穿孔的指令或迭代的总个数;每次循环执行相同的部分则称为一次迭代;若总个数大于1,进行重穿孔,即对本次穿孔指令或迭代的前1/2执行穿孔;若本次穿孔总个数≤1,则结束穿孔操作。
应理解的,所述步骤S22中的模拟指令穿孔和步骤S23中的模拟迭代穿孔,记录对应输出。确保步骤操作结束后,所有注释的指令均取消注释,然后再使用LLVM工具依次穿孔目标循环中每条迭代,在属性表内记录穿孔每条迭代后待加速程序的输出。
应理解的,所述步骤S23,不同于指令穿孔的是实现依次穿孔的方法,这里设计一个算法实现迭代的穿孔,来控制每次穿孔的迭代不执行。算法内容如下:执行该算法第一次循环时,目标循环程序的第一次迭代不执行;执行该算法第二次循环时,目标循环程序的第二次迭代不执行;以此类推,第n次运行该循环时,目标循环程序的第n次迭代不执行,每次有且仅有一个迭代不执行。
应理解的,所述步骤S24,识别敏感和弹性。根据穿孔之后循环的输出,可以把指令和迭代划分为敏感和弹性两部分,执行穿孔之后造成程序突然中止或崩溃的为敏感部分,反之则为弹性部分。
应理解的,所述步骤S25,计算相对误差。计算相对误差,即每条指令和迭代对应的穿孔输出y1与精确输出y2的差距,用百分比表示。公式如下:
相对误差也可以称为输出精度的损失,相对误差的大小即表示输出精度的损失大小。根据相对误差,可以将指令/迭代分为三部分:
输出损失精度较小(输出损失精度≤5%)、输出损失精度较大(输出精度>5%)、敏感指令/迭代。
得到指令和迭代的属性表,如表1和表2所示。
表1
表2
迭代号 | 精确输出 | 穿孔输出 | 相对误差 | 穿孔影响 |
1 | 输出内容 | 输出内容 | 空 | ×(敏感) |
2 | 输出内容 | 输出内容 | 0.01 | √(弹性) |
应理解的,所述步骤S26,绘制误差图。根据步骤S25计算得出的相对误差,筛选出弹性部分且相对误差在5%以内的指令和迭代,按照其在循环中出现的顺序,分别绘制每条指令和迭代与误差的关系图,即误差图,采用折线图表示。
选择相对误差在5%以内的原因:为了保证程序的精度,我们只穿孔损失精度5%以内的指令/迭代,这是我们质量管理工作的体现,同时也是为了简化工作。这一过程离线实现,误差图如图3所示。
执行穿孔,得到初始近似程序。
穿孔对象:在源程序中对输出损失精度较小的指令或者迭代;
穿孔策略:按照损失精度从小到大的顺序排列,对指令/迭代执行折半穿孔,折半穿孔就是每次仅对穿孔的指令或迭代的前1/2执行穿孔。
穿孔过程中如果损失精度过大,则恢复本次穿孔。
实现穿孔工具:LLVM;操作环境:linux系统。
本发明的动态质量管理是运行时质量管理。
质量管理主要是对近似程序执行检测和管理,不影响性能提升的情况下,尽可能增大输出精度。本发明的质量管理主要是只穿孔输出损失精度在我们接受范围内的指令或迭代,且按照折半穿孔的策略执行穿孔。
之前有关的质量管理大都是执行完近似,再对近似程序执行管理,而我们的管理工作是伴随着穿孔技术,是一种运行时的质量管理;折半穿孔与质量管理的实现是低负载;此方法不但增大穿孔速度,并且大大减少误差检测的次数,缩短质量管理,实现高效与运行时于一体的质量管理。
质量管理的实现。在选择近似目标的时候,复制一份源程序分别穿孔每条指令和迭代,通过构建的程序相对误差与指令迭代的关系图来确定穿孔哪些指令或迭代。实现主要分为以下两部分:
①表现于穿孔目标的选择,选择损失精度大的指令或迭代穿孔就会造成比较大的输出损失,反之则相反,由于选取损失精度一定范围之内且不是敏感的指令和迭代来穿孔,而损失精度的范围可人为调节,因此对损失精度范围的控制就是一种质量管理。
②表现于折半穿孔的过程中,穿孔策略是折半穿孔,折半穿孔就是总是对未穿孔指令或迭代的前1/2指令或迭代执行穿孔。详细的说就是,如图2所示,首先,对于所有可穿孔的指令或迭代,按照损失精度从小到大的顺序依次排列;
然后,判断未穿孔的指令和迭代的数量是否大于0;
之后,先对未穿孔的指令和迭代的执行折半穿孔;
然后,穿孔结束,判断程序当前的最终输出与精确最终输出的误差,
若误差在设定范围之内,则继续对未穿孔的指令或迭代的数量进行是否大于0的判断并执行折半穿孔;
若误差不在设定范围之内,则判断本次穿孔的指令或迭代的总个数;
若总个数大于1,进行重穿孔,即对本次穿孔指令或迭代的前1/2执行穿孔;
若本次穿孔总个数≤1,则结束穿孔操作。
穿孔质量管理的优点:执行一次穿孔就检查一次误差,会消耗一部分近似的收益,与之相比较,折半穿孔会增大穿孔速度,减少很多对误差检查的操作,因此获得最佳的近似收益。
实施例二,本实施例提供了基于循环穿孔的加速CNN图像处理系统;
基于循环穿孔的加速CNN图像处理系统,包括:
目标循环程序识别模块,其被配置为:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
循环穿孔模块,其被配置为:基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
应用模块,其被配置为:获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
实施例三,本实施例还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一所述方法的步骤。
实施例四,本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述方法的步骤。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.基于循环穿孔的加速CNN图像处理方法,其特征是,包括:
获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
2.如权利要求1所述的方法,其特征是,所述从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序,具体步骤包括:计算待加速的基于卷积神经网络CNN的图像处理程序中每个循环程序的执行时间,获取占用总执行时间最多的前M个循环程序;M为设定值,M为正整数;选取占总执行时间前N个的循环作为目标循环程序。
3.如权利要求1所述的方法,其特征是,所述执行循环穿孔的具体步骤包括:
S21:对待加速的基于卷积神经网络CNN的图像处理程序进行运行,记录待加速的基于卷积神经网络CNN的图像处理程序的第一输出精度,即精确精度;
步骤S22和步骤S23是并发进行的;
S22:对目标循环程序的指令进行模拟穿孔;记录每次模拟穿孔后待加速程序的第二输出精度;
S23:对目标循环程序的迭代进行模拟穿孔;记录每次模拟穿孔后待加速程序的第三输出精度;
S24:每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的指令为敏感指令;否则,当前被模拟穿孔的指令为弹性指令;
每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的迭代为敏感迭代;否则,当前被模拟穿孔的迭代为弹性迭代;
S25:根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第二输出精度,计算第一相对误差;
根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第三输出精度,计算第二相对误差;
S26:根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性指令;绘制每条弹性指令与第一相对误差和第二相对误差的关系图;
根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性迭代;绘制每条弹性迭代与第一相对误差和第二相对误差的关系图;
S27:根据每条弹性指令与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性指令,按照损失精度从小到大的顺序依次进行真实折半穿孔;
根据每条弹性迭代与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性迭代,按照损失精度从小到大的顺序依次进行真实折半穿孔;得到初始近似程序。
4.如权利要求3所述的方法,其特征是,所述S22:对目标循环程序的指令进行模拟穿孔;是采用注释技术对目标循环程序的指令进行模拟穿孔。
5.如权利要求3所述的方法,其特征是,所述S23:对目标循环程序的迭代进行模拟穿孔;是采用自定义算法对目标循环程序的迭代进行模拟穿孔;
所述采用自定义算法对目标循环程序的迭代进行模拟穿孔,具体步骤包括:
对目标循环程序的每一次迭代进行模拟穿孔,记录每一次模拟穿孔待加速程序的输出精度。
6.如权利要求3所述的方法,其特征是,
所述穿孔,是控制指定的指令或迭代在待加速程序运行的过程中不执行;
所述折半穿孔,是对待穿孔的指令的前二分之一执行穿孔。
7.如权利要求3所述的方法,其特征是,
每一次真实折半穿孔结束,均判断待加速程序当前的最终输出精度与第一输出精度之间的误差,
若误差在设定范围之内,则继续判断未穿孔的指令的个数是否大于0,如果大于0,则继续对下一个未穿孔的指令执行折半穿孔;
若误差不在设定范围之内,则判断本次穿孔的指令或迭代的总个数;每次循环执行相同的部分则称为一次迭代;若总个数大于1,进行重穿孔,即对本次穿孔指令或迭代的前1/2执行穿孔;若本次穿孔总个数≤1,则结束穿孔操作。
8.基于循环穿孔的加速CNN图像处理系统,其特征是,包括:
目标循环程序识别模块,其被配置为:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
循环穿孔模块,其被配置为:基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
应用模块,其被配置为:获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
9.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项方法所述的步骤。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910914.4A CN110659729B (zh) | 2019-09-25 | 2019-09-25 | 基于循环穿孔的加速cnn图像处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910914.4A CN110659729B (zh) | 2019-09-25 | 2019-09-25 | 基于循环穿孔的加速cnn图像处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659729A true CN110659729A (zh) | 2020-01-07 |
CN110659729B CN110659729B (zh) | 2022-05-17 |
Family
ID=69039076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910910914.4A Active CN110659729B (zh) | 2019-09-25 | 2019-09-25 | 基于循环穿孔的加速cnn图像处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659729B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
CN107015853A (zh) * | 2016-10-10 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 多阶段任务的实现方法和装置 |
CN107153522A (zh) * | 2017-04-21 | 2017-09-12 | 东南大学 | 一种面向人工神经网络计算的动态精度可配近似乘法器 |
US20180341851A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Tuning of a machine learning system |
CN110162403A (zh) * | 2019-05-28 | 2019-08-23 | 首都师范大学 | 一种基于人工神经网络的硬件资源分配方法及系统 |
CN110175630A (zh) * | 2015-05-07 | 2019-08-27 | 西门子保健有限责任公司 | 用于近似深入神经网络以用于解剖对象检测的方法和系统 |
-
2019
- 2019-09-25 CN CN201910910914.4A patent/CN110659729B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175630A (zh) * | 2015-05-07 | 2019-08-27 | 西门子保健有限责任公司 | 用于近似深入神经网络以用于解剖对象检测的方法和系统 |
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
CN107015853A (zh) * | 2016-10-10 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 多阶段任务的实现方法和装置 |
CN107153522A (zh) * | 2017-04-21 | 2017-09-12 | 东南大学 | 一种面向人工神经网络计算的动态精度可配近似乘法器 |
US20180341851A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Tuning of a machine learning system |
CN110162403A (zh) * | 2019-05-28 | 2019-08-23 | 首都师范大学 | 一种基于人工神经网络的硬件资源分配方法及系统 |
Non-Patent Citations (5)
Title |
---|
A. LASHGAR, E. ATOOFIAN AND A. BANIASADI: "Loop Perforation in OpenACC", 《2018 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, UBIQUITOUS COMPUTING & COMMUNICATIONS, BIG DATA & CLOUD COMPUTING, SOCIAL COMPUTING & NETWORKING, SUSTAINABLE COMPUTING & COMMUNICATIONS》 * |
H. B. BARUA AND K. CHANDRA MONDAL: "Green Data Mining using Approximate Computing: An experimental analysis with Rule Mining", 《2018 INTERNATIONAL CONFERENCE ON COMPUTING, POWER AND COMMUNICATION TECHNOLOGIES》 * |
LI, S; PARK, S AND MAHLKE, S: "Sculptor: Flexible Approximation with Selective Dynamic Loop Perforation", 《INTERNATIONAL CONFERENCE ON SUPERCOMPUTING》 * |
XU, T. MYTKOWICZ AND N. S. KIM: "Approximate Computing: A Survey", 《IEEE DESIGN & TEST》 * |
李楚曦等: "基于忆阻器的PIM结构实现深度卷积神经网络近似计算", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110659729B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253466A1 (zh) | 一种用户界面的测试用例生成方法及装置 | |
CN108491302B (zh) | 一种检测spark集群节点状态的方法 | |
CN114399019A (zh) | 神经网络编译方法、系统、计算机设备及存储介质 | |
US10761961B2 (en) | Identification of software program fault locations | |
US20130262090A1 (en) | System and method for reducing semantic ambiguity | |
US20090172643A1 (en) | Program verification apparatus, program verification method, and program storage medium | |
JP6973197B2 (ja) | データセット検証装置、データセット検証方法、およびデータセット検証プログラム | |
CN110659729B (zh) | 基于循环穿孔的加速cnn图像处理方法及系统 | |
CN106802861A (zh) | 一种检测内存泄露的方法和装置 | |
CN112395199B (zh) | 基于云计算的分布式软件实例测试方法及软件开发平台 | |
CN110633714B (zh) | 基于近似计算的vgg图像特征提取加速方法及系统 | |
CN111581101A (zh) | 软件模型的测试方法、装置、设备和介质 | |
KR102255470B1 (ko) | 인공신경망 모델의 검증 방법 및 장치 | |
CN112990461A (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN108985341A (zh) | 一种神经网络模型的训练集评估方法及系统 | |
CN105117330A (zh) | Cnn代码测试方法及装置 | |
CN115080386A (zh) | 基于自动驾驶功能要求的场景有效性分析方法与设备 | |
CN114723043A (zh) | 基于超图模型谱聚类的卷积神经网络卷积核剪枝方法 | |
KR20220082618A (ko) | 준합성 데이터 생성 장치 및 데이터 생성 방법 | |
KR20220046467A (ko) | 기계 학습을 통한 심볼릭 실행의 탐색 공간 자동 축소 방법 | |
CN110970080B (zh) | 训练人工智能估测存储装置的感测电压的方法 | |
CN112015426A (zh) | 一种代码管理方法、装置及设备 | |
CN114428720A (zh) | 基于p-k的软件缺陷预测方法、装置、电子设备及介质 | |
CN115081628B (zh) | 一种深度学习模型适配度的确定方法及装置 | |
US20240202098A1 (en) | Static analysis for sound interleaving pruning in enumerative model checking |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Lin Inventor after: Zhang Chuan Inventor after: Geng Shichao Inventor after: Zhang Huaxiang Inventor after: Ren Yuwei Inventor before: Zhang Chuan Inventor before: Wang Lin Inventor before: Geng Shichao Inventor before: Zhang Huaxiang Inventor before: Ren Yuwei |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |