CN112766467A - 基于卷积神经网络模型的图像识别方法 - Google Patents
基于卷积神经网络模型的图像识别方法 Download PDFInfo
- Publication number
- CN112766467A CN112766467A CN202110366928.1A CN202110366928A CN112766467A CN 112766467 A CN112766467 A CN 112766467A CN 202110366928 A CN202110366928 A CN 202110366928A CN 112766467 A CN112766467 A CN 112766467A
- Authority
- CN
- China
- Prior art keywords
- memory
- ith
- neural network
- network model
- block
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种基于卷积神经网络模型的图像识别方法。该方法包括:在运行第一卷积神经网络模型的N个卷积层中的第i卷积层之前,确定第i卷积层的blob占用的第i内存大小;在内存块复用池中确定大于或等于第i内存大小的第i内存复用块。本申请通过对卷积神经网络模型的运行占用内存进行调整,有助于降低卷积神经网络模型的运行内存开销,满足智能门锁场景的要求。
Description
技术领域
本申请涉及电子技术领域,尤其涉及电子技术领域基于卷积神经网络模型的图像识别方法。
背景技术
在图像识别技术领域,主要通过训练的各种卷积神经网络模型进行识别,图像识别技术在日常生活中应用广泛,例如,在智能门锁领域,主要通过各种训练的卷积神经网络模型来实现智能门锁的图像识别功能。目前,运行卷积神经网络模型时各个卷积层的每个二进制大对象(binary large object,blob)都对应占用内存块,甚至会存在部分blob所占用的内存块为空闲状态的情况,这对于芯片内存有限的智能门锁来说,会造成很大的内存开销,同时还会造成时间消耗和电量消耗等问题。为此,亟需一种有助于降低卷积神经网络模型的运行内存开销的方法来满足智能门锁场景的要求。
发明内容
本申请实施例提供了一种基于卷积神经网络模型的图像识别方法,有助于降低卷积神经网络模型的运行内存开销,满足智能门锁场景的要求。
第一方面,本申请实施例提供了一种基于卷积神经网络模型的图像识别方法,包括:
获取图像数据;
确定第一卷积神经网络模型中包括的第i卷积层的二进制大对象blob占用的第i内存大小,所述第一卷积神经网络模型包括N个卷积层,N为大于或等于2的正整数,所述N个卷积层中每个卷积层的数据结构为blob;
在内存块复用池中确定大于或等于所述第i内存大小的第i内存复用块,所述内存块复用池包括至少一个内存复用块,所述至少一个内存复用块包括所述第i内存复用块;
将所述第i内存复用块确定为所述第i卷积层的内存;
基于所述第i卷积层的内存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果,i遍历完1至N。
在上述技术方案中,在对获取的图像数据进行识别之前,确定第一卷积神经网络模型的第i个卷积层的blob占用的第i内存大小,并在内存块复用池中确定第i内存复用块,基于第i卷积层的内存运行第i卷积层对图像数据进行识别,避免第一卷积神经网络模型的运行中针对每个卷积层分别新建内存块,增大内存开销的问题,若采用本申请实施例提供的在内存复用池中确定内存复用块,有助于减小内存的开销,降低第一卷积神经网络模型运行时输入输出数据所占用的内存。
可选地,第一设备获取图像数据。
可选地,第一卷积神经网络模型的形式为中间格式文件的形式。
可选地,第一设备将所述第i卷积层的输入的间接缓冲区indirect buffer指向第i内存复用块。
在一些可能的实现方式中,所述在所述内存块复用池中确定大于或等于所述第i内存大小的所述第i内存复用块之前,所述方法还包括:
统计所述第一卷积神经网络模型的所述N个卷积层的每个blob的被引用计数;
将引用计数小于或等于预设值的blob对应的内存作为内存复用块保存在所述内存块复用池中。
可选地,第一设备设定的预设值为1,第一设备将引用计数小于1的blob对应的内存作为内存复用块保存在内存块复用池中。
可选地,第一设备设定的预设值为0,第一设备将引用计数等于0的blob对应的内存作为内存复用块保存在内存块复用池中。
可选地,第一设备将内存块复用池中的复用内存块按从小到大的顺序进行排布。
在一些可能的实现方式中,所述在所述内存块复用池中确定大于或等于所述第i内存大小的第i内存复用块,包括:
若所述内存块复用池中不存在内存复用块或者不存在大于或等于所述第i内存大小的内存复用块,则在所述内存复用池中新增大于或等于所述第i内存大小的第j内存复用块;
将所述第j内存复用块确定为所述第i内存复用块;或者所述方法还包括:
若所述内存块复用池中不存在大于或等于所述第i内存大小的内存复用块;
在所述内存块复用池中确定第k内存复用块;
扩大所述第k内存复用块内存,得到目标内存复用块,所述目标内存复用块的内存大小大于或等于所述第i内存大小;
将所述目标内存复用块确定为所述第i内存复用块。
在一些可能的实现方式中,所述第k内存复用块为小于所述第i内存大小且最接近所述第i内存大小的内存复用块。
在一些可能的实现方式中,所述方法适用于嵌入式软件加速XNetLite框架,所述XNetLite框架包括输入层,优化层,转化层和计算层;
其中,所述将所述第i内存复用块确定为所述第i卷积层的内存,包括:
在所述XNetLite框架的所述优化层,将所述第i内存复用块确定为所述第i卷积层的内存。
在一些可能的实现方式中,所述将所述第i内存复用块确定为所述第i卷积层的内存之后,所述方法包括:
确定所述第一卷积神经网络模型的分块后的多个权重矩阵;
将所述分块后的多个权重矩阵按照与矩阵预设值之间的关系,存储在不同的缓存中,该不同的缓存的缓存大小不同,且访问频率也不同。比如,缓存大小小的缓存的访问频率高于缓存大小大的缓存的访问频率。
在一些可能的实现方式中,将所述分块后的多个权重矩阵按照与矩阵预设值之间的关系,存储在不同的缓存中,包括:
将所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在第一缓存中;
将所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵存储在第二缓存中;所述第一缓存的大小小于所述第二缓存的大小,所述第一缓存的访问频率高于所述第二缓存的访问频率;
其中,所述基于所述第i卷积层的内存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果,包括:
基于所述第i卷积层的内存、所述第一缓存和所述第二缓存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果。
在一些可能的实现方式中,确定所述第一卷积神经网络模型的分块后的多个权重矩阵,包括:
根据第一缓存的大小和第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的分块后的多个权重矩阵。
可选地,第一设备的高速缓冲存储器cache中包括第一缓存和第二缓存,第一缓存表示一级缓存,第二缓存表示二级缓存。
在一些可能的实现方式中,所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小存储在所述第一缓存中;
所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵按照矩阵的大小存储在所述第二缓存中。
在一些可能的实现方式中,比如说为了实现分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小存储在所述第一缓存中,可以通过如下方式:在所述将所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在所述第一缓存中之后,所述方法还包括:对所述第一缓存中的所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小进行排序,将排序后的多个权重矩阵存储在所述第一缓存中。或者,在将所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在所述第一缓存中之前,对分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小进行排序,排序后再存储在第一缓存中。
在一些可能的实现方式中,比如说为了实现分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵按照矩阵的大小存储在所述第二缓存中,可以通过如下方式:在所述将所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵存储在所述第二缓存中之后,所述方法还包括:
对所述第二缓存中的所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵按照矩阵的大小进行排序,将排序后的多个权重矩阵存储在所述第二缓存中。或者,在将分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵存储在所述第二缓存中之前,分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵按照矩阵的大小进行排序,排序后再存储在第二缓存中。
在上述技术方案中,第一设备分别将排序后的多个权重矩阵存储在第一缓存和第二缓存后,在第一卷积神经网络模型初始化加载中不再需要对权重矩阵进行重新排列,减少第一卷积神经网络模型初始化加载时间。
在一些可能的实现方式中,所述方法适用于嵌入式软件加速XNetLite框架,所述XNetLite框架包括输入层,优化层,转化层和计算层;
其中,所述根据所述第一缓存的大小和所述第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的所述分块后的多个权重矩阵,包括:
在所述XNetLite框架的所述转化层根据所述第一缓存的大小和所述第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的所述分块后的多个权重矩阵。
可选地,第一设备在XNetLite框架的转化层中将第一卷积神经网络模型的形式转化为头文件(通常以*.h表示)的形式。
可选地,第一设备XNetLite框架的计算层中基于第一卷积神经网络模型对图像数据进行识别,得到识别结果。
第二方面,本申请提供了一种设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述基于卷积神经网络模型的图像识别方法。
第三方面,本申请提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行上述任一方面所述的方法。
第四方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的基于卷积神经网络模型的图像识别方法的步骤。
可以理解的是,上述第二方面、第三方面、第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的应用场景示意图;
图2是本申请实施例提供的一种嵌入式软件加速XNetLite框架的示意图;
图3是本申请实施例提供的一种基于卷积神经网络模型的图像识别方法的示意图;
图4是本申请实施例提供的一种应用于图像识别的卷积神经网络模型运行中内存复用配置的示意图;
图5是本申请实施例提供的另一种基于卷积神经网络模型的图像识别方法的示意图;
图6是本申请实施例提供的又一种基于卷积神经网络模型的图像识别方法的示意图;
图7是本申请实施例提供的一种获取应用于图像识别的卷积神经网络模型的方法的流程图;
图8是本申请实施例提供的一种设备装置示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
随着人工智能技术的高速发展,人们日常生活中具有图像识别功能的智能产品也越来越多,具有图像识别功能的智能产品的使用给人们的生活带来了极大地便利。例如,在门锁场景方面,传统的机械门锁通常需要用户使用门锁钥匙来打开门锁,使用密码锁的用户又免不了出现忘记门锁密码等情况,给用户的生活带来一定的困扰,而具有视觉识别等智能功能的智能门锁使用则大大便利用户的生活,用户出行既不需要携带门锁钥匙,也不需要刻意熟记门锁密码,智能门锁只需识别用户的人脸等特征即可打开门锁。然而具有视觉识别功能的智能门锁主要是基于卷积神经网络模型实现,通过将视觉卷积神经网络模型部署到智能门锁的芯片端,从而使智能门锁具有视觉识别等功能。目前,市面上各种开源的深度学习训练框架百花齐放,例如,卷积神经网络框架Caffe,Tensorflow,Pytorch,Mxnet等多种深度学习训练框架,直接将这些深度学习训练框架所训练出的卷积神经网络模型部署到各种类型的芯片端上,必然会带来或多或少的问题,影响工作效率,尤其对于智能门锁领域,芯片端的内存有限,卷积神经网络模型在运行中各个卷积层对应的blob都新建内存块占用内存块,这样造成的内存开销较大,新建内存块的同时还会带来时间上的消耗以及电量的消耗,这对智能门锁的运行效率也产生一定的影响。
为此,本申请实施例提供了一种基于卷积神经网络模型的图像识别方法,有助于降低卷积神经网络模型的运行内存,满足智能门锁场景要求。
下面对本申请实施例提供的基于卷积神经网络模型的图像识别方法进行详细说明。
如图1所示,示出了本申请实施例提供的应用场景示意图。智能门锁先进行通电,后加载运行卷积神经网络模型,通过对用户的面部特征进行识别完成门锁的打开功能,给用户的生活带来便利。
在一些实施例中,基于智能门锁的图像识别的卷积神经网络模型即视觉模型可以包括人脸检测视觉模型,人体检测视觉模型,人脸识别视觉模型,人脸追踪视觉模型,属性识别视觉模型等视觉模型中的至少一种。对用户的视觉识别功能可以包括年龄、性别、表情状态、头部姿态等信息,便利用户的生活。
示例性地,如图2所示,示出了本申请实施例提供的一种用于运行应用于智能门锁的图像识别的卷积神经网络模型的嵌入式软件加速XNetLite框架200,XNetLite框架主要包括输入层201(其中输入层也可以称为模型转换层),优化层202(其中优化层也可以称为图优化层),转化层203(其中转化层也可以称为算子转化层),以及计算层204。
在一些实施例中,第一设备在XNetLite框架中运行应用于智能门锁的图像识别的卷积神经网络模型。
在一些实施例中,第一设备在XNetLite框架的输入层201主要接收应用于智能门锁领域的各种深度学习训练框架产生的各种卷积神经网络预模型,并对各种卷积神经网络预模型的形式进行转化,即将各种深度学习训练框架产生的卷积神经网络预模型的形式转换为中间格式文件(Intermediate Representation,IR)的形式。例如,Caffe深度学习训练框架训练出的卷积神经网络预模型的格式包括caffemodel格式和prototxt格式,Tensorflow深度学习训练框架训练出的卷积神经网络预模型的格式为pb格式,Pytorch深度学习训练框架训练出的卷积神经网络预模型的格式为pth格式,Mxnet深度学习训练框架训练出的卷积神经网络预模型的格式为params格式。第一设备在XNetLite框架的输入层201中将不同形式的卷积神经网络预模型转化为统一的IR的形式用以第一设备在XNetLite框架的优化层202对卷积神经网络模型的运行内存进行优化。
在一些实施例中,第一设备在XNetLite框架的输入层201中包含有各种深度学习训练框架对应的各种文件转换器,其中,各种文件转换器与各种深度学习训练框架是一一对应的关系,例如,Caffe深度学习训练框架有其对应的文件转换器,Tensorflow深度学习训练框架有其对应的文件转换器。通过各种文件转换器将各种深度学习训练框架产生的卷积神经网络预模型的形式转换为统一的IR形式的卷积神经网络模型。
在一些实施例中,第一设备在XNetLite框架的优化层202对IR形式的卷积神经网络模型的运行内存进行优化,主要进行的优化工作包括在IR形式的卷积神经网络模型的运行中对各个卷积层的blob对应的内存块的配置进行调整。
在一些实施例中,第一设备在XNetLite框架的转化层203中接收第一设备在XNetLite框架的优化层202优化后的卷积神经网络模型,并对卷积神经网络模型的每个卷积层的每个权重矩阵进行分块,并对分块后的权重矩阵进行排序,使卷积神经网络模型初始化加载中不再需要对每个卷积层的权重矩阵进行重新排序,节省卷积神经网络模型的初始化加载时间。
在一些实施例中,第一设备在XNetLite框架的转化层203将IR形式的卷积神经网络模型转化为固定格式的卷积神经网络模型,固定格式的形式为头文件(通常以*.h表示)的形式。
在一些实施例中,第一设备在XNetLite框架的计算层204获取对应的智能门锁的芯片端所使用的静态库,实现在智能门锁的芯片端运行第一设备在XNetLite框架的转化层203转化的固定格式的卷积神经网络模型,进行图像识别。
可选地,第一设备可以为智能门锁的芯片或者其他电子设备。
需要说明的是,图2所示的XNetLite框架只是本申请实施例所采用的一种可能的软件框架,本申请实施例还可以应用在其他的软件框架下。例如,第一设备采用腾讯开源的NCNN神经网络推理框架或者移动神经网络(Mobile Neural Network,MNN)框架中执行第一设备在XNetLite框架的操作。又例如,第一设备在开放神经网络交换(Open NeuralNetwork Exchange,ONNX)中执行第一设备在XNetLite框架的输入层201中的操作。
如图3所示,示出了本申请实施例提供的基于卷积神经网络模型的图像识别方法,本申请实施例基于智能门锁的芯片端的嵌入式软件加速XNetLite框架的优化层202中实现,对要部署到智能门锁芯片端的卷积神经网络模型的每个卷积层的输入输出数据的运行内存进行优化,以完成对各种卷积神经网络模型应用于智能门锁芯片端的优化和部署。方法包括:
S310,第一设备获取图像数据。
作为一种示例,第一设备获取智能门锁的芯片端采集的图像数据。智能门锁的芯片端采集的图像数据可以包括用户的表情状态、用户的头部姿态、用户的面部特征、用户的指纹信息等数据信息。示例性地,智能门锁的芯片端有ARM芯片,DSP芯片,VPU芯片等。
可选地,通过第二设备获取图像数据。第二设备获取图像数据后发送给第一设备,第一设备进行图像识别。
S320,第一设备确定第一卷积神经网络模型中包括的第i卷积层的二进制大对象blob占用的第i内存大小,第一卷积神经网络模型包括N个卷积层,N为大于或等于2的整数,N个卷积层中每个卷积层的数据结构为blob。
在一些实施例中,第一卷积神经网络模型通过第二卷积神经网络模型获取,本申请实施例对第一卷积神经网络模型的形式不做限定,在不同的场景下,第一卷积神经网络模型的形式可能不同,但只要可以按照图3中的方法对第一卷积神经网络模型的运行内存进行处理,使第一卷积神经网络模型能够应用在智能门锁领域即可。
示例性地,在图2的XNetLite框架下,第一设备在XNetLite框架的优化层202中接收第一设备在XNetLite框架的输入层201产生的第二卷积神经网络模型。此时,第二卷积神经网络模型的形式为IR的形式,第一卷积神经网络模型的形式与第二卷积神经网络模型的形式相同。
在一些实施例中,第一卷积神经网络模型的第i卷积层与第i卷积层的blob是一一对应的关系。
S330,第一设备在内存块复用池中确定大于或等于第i内存大小的第i内存复用块,内存块复用池包括至少一个内存复用块,至少一个内存复用块包括第i内存复用块。
在一些实施例中,第一设备将内存块复用池中的内存复用块根据内存大小进行排序。
在一些实施例中,第一设备统计第一卷积神经网络模型的N个卷积层的每个blob的被引用计数,将引用计数为0或者引用计数小于1的blob对应的内存作为内存复用块保存在内存块复用池中。
在一些实施例中,第一设备采用拓扑序的方法遍历每个blob的被引用计数。
在一些实施例中,第一设备在第一卷积神经网络模型的每个卷积层所在节点运行结束后将运行结束的卷积层所对应的blob的引用计数减1。当引用计数为0或者引用计数小于1的情况下,将blob对应的内存作为内存复用块保存在内存块复用池中。
S340,第一设备将第i内存复用块确定为第i卷积层的内存。第一设备通过将第i卷积层的输入的indirect buffer指向第i内存块,同时修改第i内存复用块的状态为不可复用,并增加对应的blob的引用计数。
在一些实施例中,第i内存复用块由以下三种情况确定:
情况一,第一设备在内存块复用池中找到大于或等于第i卷积层内存大小的第i内存复用块,将第i内存复用块确定为第i卷积层的内存。
情况二,内存块复用池中不存在内存复用块,或者不存在大于或等于第i卷积层内存大小的内存复用块,第一设备在内存块复用池中新增大于或等于第i卷积层内存大小的第j内存复用块,并将第j内存复用块确定为第i内存复用块。
情况三,第一设备未在内存块复用池中找到大于或者等于第i卷积层内存大小的第i内存复用块,第一设备从内存块复用池选择一个内存复用块X。第一设备将内存复用块X进行内存扩大后得到的目标内存复用块作为第i内存复用块。目标内存复用块大于或者等于第i卷积层内存大小。
作为一种示例,内存复用块X可以是内存块复用池中的任一个,或者内存复用块X可以是内存块复用池中内存最小的,或者内存复用块X可以是内存块复用池中剩余内存大于某个阈值的内存复用块。
作为一种示例,内存复用块X为内存块复用池中内存最接近但小于第i卷积层内存大小的第k内存复用块。例如,第k内存复用块大小为80MB,第i卷积层内存大小为100MB,将第k内存复用块内存扩大至少20MB,扩大后的第k内存复用块内存至少为100MB,满足第i卷积层使用。
示例性地,如图4所示,为本申请实施例提供的第一卷积神经网络模型运行中内存复用配置示意图。图4中,第一设备在XNetLite框架的优化层202中根据第一卷积层输入的1号blob即图中的二进制大对象1的内存大小,将1号blob的对应的indirect buffer的地址指向内存块复用池中的满足1号blob使用的第一内存复用块,根据第二卷积层输入的2号blob即图中的二进制大对象2的大小,将2号blob对应的indirect buffer的地址指向内存块复用池中的满足2号blob使用的第二复用内存块。在第二卷积层运行结束到第三卷积层输入时,第一卷积层的blob对应的第一复用内存块被释放,若第一复用内存块满足第三卷积层输入的3号blob使用,将3号blob对应的indirect buffer的地址指向第一复用内存块。如此,可以实现内存块复用池中的内存复用块多次使用,减少内存块多次新建造成的开销。
可以理解的是,第一设备通过构建内存块复用池,存储复用内存块,对内存块复用池中的复用内存块多次使用,有助于减小内存的额外开销。
S350,第一设备基于第i卷积层的内存运行第i卷积层以对图像数据进行识别,得到识别结果,i遍历完1至N。
在一些实施例中,第一设备获取图像数据后,运行第一卷积神经网络模型进行图像识别,在运行第一卷积神经网络模型过程中优化运行内存,降低运行内存的开销。
在一些实施例中,第二设备获取图像数据后,发送给第一设备,第一设备运行第一卷积神经网络模型进行图像识别,在运行第一卷积神经网络模型过程中优化运行内存,降低运行内存的开销。
在一些实施例中,第一设备在XNetLite框架的优化层202对第一卷积神经网络模型的运行内存进行调整之前通过第三设备在XNetLite框架的优化层202中对第二卷积神经网络模型的精度进行优化后得到第一卷积神经网络模型,如图5所示,主要包括以下操作:
S510,第三设备将第一设备获取的图像数据输入到第一卷积神经网络模型,得到第一卷积神经网络模型包括的各个卷积层的最大权重在第一预设范围之内,第一卷积神经网络模型包括的各个卷积层的最小权重在第二预设范围之内。
在一些实施例中,第一卷积神经网络模型包括的各个卷积层的最大权重和最小权重是经过S530中的权重比例因子j1或权重比例因子j2调整后所得到的,最大权重在第三设备设定的第一预设范围内,最小权重在第三设备设定的第二预设范围内。
在一些实施例中,经过S530中的权重比例因子j1或权重比例因子j2调整后所得到的卷积神经网络模型,再进行量化后获取第一卷积神经网络模型,第一卷积神经网络模型包括的各个卷积层的最大权重在第三设备设定的第一预设范围内,第一卷积神经网络模型包括的各个卷积层的最小权重在第三设备设定的第二预设范围内。
可选地,第一预设范围的大小与第二预设范围的大小可以相同。可选地,第一预设范围的大小大于第二预设范围的大小。这样可以避免出现权重极大值和权重极小值,影响第一卷积神经网络模型的精度。
可选地,第三设备可以为服务器或者云端或者其他第三方设备。
S520,第三设备获取第二卷积神经网络模型,第二卷积神经网络模型包括N个卷积层,N为大于或等于2的整数。
S530,第三设备对第二卷积神经网络模型的N个卷积层进行以下第j次调整,j为正整数:根据权重比例因子j1对N个卷积层的第i个卷积层的输出进行调整;根据权重比例因子j2对N个卷积层的第i+1个卷积层的每个权重进行调整,得到调整后的第i+1个卷积层;将第i个卷积层的输出输入到调整后的第i+1个卷积层,i为遍历1至N-1的正整数。
在一些实施例中,第三设备在XNetLite框架的优化层202中获取到第二卷积神经网络模型后,获取第二卷积神经网络模型的N个卷积层的第i个卷积层的至少一个权重中的最大权重w1和第i+1个卷积层的至少一个权重中的最大权重w2,根据w1和w2得到权重比例因子j1,权重比例因子j2为权重比例因子j1的倒数。
可选地,第三设备在XNetLite框架的优化层202中通过对w1和w2取算术平方根得到权重比例因子j1,对权重比例因子j1取倒数得到权重比例因子j2。
可选地,第三设备在XNetLite框架的优化层202中通过对w1和w2取加权平均数得到权重比例因子j1,对权重比例因子j1取倒数得到权重比例因子j2。
示例性地,第三设备在XNetLite框架的优化层202中对第二卷积神经网络模型的N
个卷积层的第i个卷积层的输出乘以权重比例因子j1,对第二卷积神经网络模型的N个卷积
层的第i+1个卷积层的每个权重乘以权重比因子j2进行调整,如此,可以均衡卷积层的权重
分布,避免出现极端权重的情况。以为某一卷积层的激活函数,S-1为权重比例因子j1,S
为权重比例因子j2为例,激活函数与权重比例因子S之间的关系可以表示为
对于卷积神经网络中相邻的两层卷积层,用函数形式可表示为
在相邻两层卷积层中,下层卷积的输入即为上层卷积的输出,进而可以得出
若在相邻两层卷积层中,上层卷积层的每个卷积核的输出乘以权重比例因子S-1,用函数形式表示上层卷积的输出为
则在下层卷积层的每个卷积核的输入中需要对每个卷积核的权重乘以权重比例因子S,对权重进行调整,将相邻两层卷积层的权重均衡,用函数形式表示下层卷积的输入为
S540,第三设备根据第j次调整后的N个卷积层构建得到第三卷积神经网络模型。
在一些实施例中,第三设备在XNetLite框架的优化层202中设置固定次数来对第二卷积神经网络模型的N个卷积层的权重进行多次调整,不断迭代,构建得到的第三卷积神经网络模型。
在一些实施例中,第三设备在XNetLite框架的优化层202中根据第j次调整后的N个卷积层的权重调整结果,分析是否达到收敛要求,若满足收敛要求,则停止对N个卷积层的权重的调整。
S550,第三设备根据第三卷积神经网络模型获取第一卷积神经网络模型,第一卷积神经网络模型用于在第一设备上运行,进行图像识别。
在一些实施例中,第三设备在XNetLite框架的优化层202中根据第三卷积神经网络模型获取第一卷积神经网络模型,具体包括以下四种情况:
情况一,第三设备在XNetLite框架的优化层202中获取第三卷积神经网络模型直接应用于智能门锁的芯片端,即第三卷积神经网络模型与第一卷积神经网络模型为同一卷积神经网络模型。
情况二,第三设备在XNetLite框架的优化层202中获取到第三卷积神经网络模型后,对获取得到的第三卷积神经网络预模型进行量化,量化后得到第一卷积神经网络模型应用于智能门锁的芯片端。
情况三,第三设备在XNetLite框架的优化层202中对获取到的第三卷积神经网络模型进行量化得到第一卷积神经网络模型,并根据第一卷积神经网络模型对应的标准测试集判断第一卷积神经网络模型的精度是否满足智能门锁对模型精度的要求,若满足要求,则满足精度要求的第一卷积神经网络模型应用于智能门锁的芯片端。
情况四,第三设备在XNetLite框架的优化层202中对第三卷积神经网络模型进行量化,量化后的模型的精度不满足智能门锁对模型精度的要求,则对量化后的模型的精度的损失进行补偿以满足智能门锁对模型精度的要求。示例性地,如图6所示,具体包括:
S610,第三设备对第三卷积神经网络模型进行量化,得到第四卷积神经网络模型。
在一些实施例中,第三设备在XNetLite框架的优化层202中采用多种量化方法对第三卷积神经网络模型进行量化。例如,量化方法包括混合比特模型量化,对称量化,非对称量化,最大最小值(MinMax),KL散度(Kullback-Leibler divergence,KL散度),通道级量化(per-channel),张量级量化(per-layer),最小化均方误差(Minimun mean-squareerror,MMSE)等。然后,根据各种卷积神经网络模型对应的标准测试集,分析各种卷积神经网络模型采用上述几种量化方法量化后的模型的精度损失情况,由于智能门锁对量化后的第四卷积神经网络模型的精度要求较为严苛,例如,若精度损失超过1个点,则该模型的精度不满足要求,存在量化方法选用不合理的情况,需重新选用量化方法对第三卷积神经网络模型进行量化,直至精度损失结果在1个点以内,进而获取第一卷积神经网络模型。
在一些实施例中,第三设备在XNetLite框架的优化层202中在量化方法中选用混合比特方法进行量化,例如,第三设备在XNetLite框架的优化层202中对第三卷积神经网络模型的各个卷积层的输出采用m比特进行量化,对第三卷积神经网络模型的各个卷积层的每个权重采用n比特进行量化,其中,m和n为正整数,m为n的整数倍。
示例性地,第三设备在XNetLite框架的优化层202中对第三卷积神经网络的各个卷积层的输出采用8比特进行量化,对第三卷积神经网络模型的各个卷积层的每个权重采用8比特进行量化,即对第三卷积神经网络模型的每一卷积层的输入输出采用8比特进行量化,对每一卷积层的每个权重采用8比特量化。对第三卷积神经网络模型采用8比特进行量化,可以减小第三卷积神经网络模型的体积,从而提高模型运行加载速度,降低模型运行造成的功耗。
示例性地,第三设备在XNetLite框架的优化层202中对第三卷积神经网络的各个卷积层的输出采用16比特进行量化,对第三卷积神经网络模型的各个卷积层的每个权重采用8比特进行量化,即对第三卷积神经网络模型的每一卷积层的输入输出采用16比特进行量化,对每一卷积层的每个权重采用8比特量化,即A16W8的混合比特模型的方法对第三卷积神经网络模型进行量化。从而,可以保证卷积层之间的输入输出量化精度损失很小,并且对每一卷积层的每个权重进行8比特量化可以使第三卷积神经网络模型的体积减小一半,使模型运行时闪存(flash)加载速度提速一倍,降低模型运行的功耗,进而降低用户频繁充电或更换电池的频率,充分适配智能门锁的需求,更好地改善用户体验。
S620,第三设备将第四卷积神经网络模型的各个卷积层的每个卷积核的权重差值补偿至该卷积核的偏置中。
在一些实施例中,第三设备在XNetLite框架的优化层202中获取得到的第四卷积神经网络模型的精度依然不能满足智能门锁的精度要求,则需要根据第四卷积神经网络模型的每一卷积层的每个卷积核的权重差值继续对第四卷积神经网络模型进行调整以获取第五卷积神经网络模型。
示例性地,第三设备在XNetLite框架的优化层202中采用至少一批图像样本对第四卷积神经网络模型进行前向预测,得到第四卷积神经网络模型中的各个卷积层的每个卷积核的权重差值的期望值,即得到量化后的第四卷积神经网络模型中每个卷积核的输出相对于采用至少一批图像样本的输出的权重变化差值的期望值,至少一批图像样本的样本数量大于1。第三设备在XNetLite框架的优化层202中将得到的各个卷积层的每个卷积核的权重差值的期望值补偿至各个卷积层对应的卷积核的偏置中;并通过微调(finetune)方法微调量化后的第四卷积神经网络模型,使第三设备在XNetLite框架的优化层202中最终得到的第五卷积神经网络模型的精度损失进一步减小,进而根据第五卷积神经网络模型获取第一卷积神经网络应用于智能门锁的芯片端。
在一些实施例中,第三设备在XNetLite框架的优化层202中获取第一卷积神经网络模型的流程图如图7所示,第三设备在XNetLite框架的优化层202接收来自第一设备在XNetLite框架的输入层201的第二卷积神经网络模型,第三设备在XNetLite框架的优化层202中采用至少一种量化方法对第二卷积神经网络模型进行量化。例如,第三设备在XNetLite框架的优化层202中通过上述几种量化方法对第二卷积神经网络模型进行量化,并根据第二卷积神经网络模型的对应的标准测试集判断量化后的模型精度损失情况是否满足智能门锁对模型精度的要求,若满足智能门锁对模型精度的要求则直接用于获取第一卷积神经网络模型;否则第三设备在XNetLite框架的优化层202中采用S530中的权重调整的方法先对第二卷积神经网络模型的权重进行调整得到第三卷积神经网络模型,对第三卷积神经网络模型进行量化获取第四卷积神经网络模型并对量化后的模型的精度损失情况进行判断,若满足智能门锁对模型精度的要求则直接用于获取第一卷积神经网络模型;否则第三设备在XNetLite框架的优化层202中采用S610至S620中的偏置补偿的方法对第四卷积神经网络模型进行调整得到第五卷积神经网络模型,以达到合理的离线误差,最终获取第一卷积神经网络模型应用于智能门锁的芯片端。
在一些实施例中,第三设备与第一设备可以是同一设备。示例性地,第一设备在XNetLite框架的优化层202对第二卷积神经网络模型的精度进行优化后得到第一卷积神经网络模型,并对第一卷积神经网络模型的运行内存进行调整。
在一些实施例中,第三设备与第一设备不是同一设备。第三设备上置有XNetLite框架,第三设备在XNetLite框架的优化层202中对第二卷积神经网络模型的精度进行优化得到第一卷积神经网络模型应用于第一设备。第一设备上置有XNetLite框架,第一设备接收第一卷积神经网络模型,并在XNetLite框架的优化层202中对第一卷积神经网络模型的运行内存进行调整。
在一些实施例中,第一设备基于第一卷积神经网络模型的运行内存和cache进行图像识别。其中,运行内存用于储存第一卷积神经网络模型的每个卷积层的输入输出数据,cache用于储存第一卷积神经网络模型的权重矩阵。
在一些实施例中,第一设备在XNetLite软件框架的转化层203中,根据cache的第一缓存的大小和第二缓存的大小对第一卷积神经网络模型的各个卷积层的各个权重矩阵进行分块,确定第一卷积神经网络模型的分块后的多个权重矩阵。示例性地,第一缓存表示一级缓存,第二缓存表示二级缓存,一级缓存与二级缓存的缓存大小不同,且访问频率也不同。
在一些实施例中,第一设备将分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在一级缓存中;将分块后的多个权重矩阵中大于或等于矩阵预设值的权重矩阵存储在二级缓存中。其中,一级缓存中存储的权重矩阵的访问频率高于二级缓存中存储的权重矩阵的访问频率,一级缓存的存储空间小于二级缓存的存储空间。可选地,第一设备根据权重矩阵的大小确定矩阵预设值。
在一些实施例中,第一设备对一级缓存中的多个权重矩阵根据矩阵的大小进行排序并存储,第一设备对二级缓存中的多个权重矩阵根据权重的大小进行排序并存储,这样在第一卷积神经网络模型后续初始化加载中不再需要重新对多个权重矩阵进行排序,节省第一卷积神经网络模型的初始化加载时间。
在一些实施例中,第一设备在将分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在第一缓存中之前,对分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小进行排序,排序后再存储在第一缓存中;第一设备在将分块后的多个权重矩阵中大于或等于矩阵预设值的权重矩阵存储在第二缓存中之前,分块后的多个权重矩阵中大于或等于矩阵预设值的权重矩阵按照矩阵的大小进行排序,排序后再存储在第二缓存中。
示例性地,第一设备将小块数据即重复调用次数多的权重矩阵分布在一级缓存中,将大块数据即重复调用次数少的权重矩阵分布在二级缓存中,并对各个卷积层的权重矩阵根据权重矩阵大小进行排列,例如,将一个16*16的权重矩阵分为4个8*8的小的权重矩阵,在小的权重矩阵内可以按照行优先顺序或者列优先顺序进行排序。
在一些实施例中,第一设备在XNetLite框架的转化层203将第一卷积神经网络模型的形式转化为头文件形式的第一卷积神经网络模型。
在一些实施例中,第一设备在XNetLite框架的计算层204中基于第一卷积神经网络模型对图像数据进行识别,得到识别结果。
图8为本申请实施例提供的一种设备的结构示意图。如图8所示,设备800包括:处理器810、存储器820以及存储在存储器820中并可在处理器810上运行的计算机程序830,处理器810执行计算机程序830时实现上述实施例中的基于卷积神经网络模型的图像识别方法中的步骤。
设备800可以是一个通用计算机设备或一个专用计算机设备。在具体实现中,设备800可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备或嵌入式设备,本申请实施例不限定设备800的类型。本领域技术人员可以理解,图8仅仅是设备800的举例,并不构成对设备800的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器810可以是中央处理单元(Central Processing Unit,CPU),处理器810还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器820在一些实施例中可以是设备800的内部存储单元,比如设备800的硬盘或内存。存储器820在另一些实施例中也可以是设备800的外部存储设备,比如设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器820还可以既包括设备800的内部存储单元也包括外部存储设备。存储器820用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,比如计算机程序的程序代码等。存储器820还可以用于暂时地存储已经输出或者将要输出的数据。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备均能执行上述相关方法步骤实现上述实施例中的基于卷积神经网络模型的图像识别方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的基于卷积神经网络模型的图像识别方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的基于卷积神经网络模型的图像识别方法。
其中,本实施例提供的计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种图像识别方法,其特征在于,所述方法包括:
获取图像数据;
确定第一卷积神经网络模型中包括的第i卷积层的二进制大对象blob占用的第i内存大小,所述第一卷积神经网络模型包括N个卷积层,N为大于或等于2的整数,所述N个卷积层中每个卷积层的数据结构为blob;
在内存块复用池中确定大于或等于所述第i内存大小的第i内存复用块,所述内存块复用池包括至少一个内存复用块,所述至少一个内存复用块包括所述第i内存复用块;
将所述第i内存复用块确定为所述第i卷积层的内存;
基于所述第i卷积层的内存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果,i遍历完1至N。
2.根据权利要求1所述的方法,其特征在于,所述在所述内存块复用池中确定大于或等于所述第i内存大小的所述第i内存复用块之前,所述方法还包括:
统计所述N个卷积层的每个blob的被引用计数;
将引用计数小于或等于预设值的blob对应的内存作为内存复用块保存在所述内存块复用池中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述内存块复用池中不存在内存复用块或者不存在大于或等于所述第i内存大小的内存复用块,则在所述内存块复用池中新增大于或等于所述第i内存大小的第j内存复用块;
将所述第j内存复用块确定为所述第i内存复用块;或者所述方法还包括:
若所述内存块复用池中不存在大于或等于所述第i内存大小的内存复用块;
在所述内存块复用池中确定第k内存复用块;
扩大所述第k内存复用块内存,得到目标内存复用块,所述目标内存复用块的内存大小大于或等于所述第i内存大小;
将所述目标内存复用块确定为所述第i内存复用块。
4.根据权利要求3所述的方法,其特征在于,所述第k内存复用块为小于所述第i内存大小且最接近所述第i内存大小的内存复用块。
5.根据权利要求1所述的方法,其特征在于,所述方法适用于嵌入式软件加速XNetLite框架,所述XNetLite框架包括优化层;
其中,所述将所述第i内存复用块确定为所述第i卷积层的内存,包括:
在所述XNetLite框架的所述优化层,将所述第i内存复用块确定为所述第i卷积层的内存。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述将所述第i内存复用块确定为所述第i卷积层的内存之后,所述方法包括:
根据第一缓存的大小和第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的分块后的多个权重矩阵,所述第一缓存的大小小于所述第二缓存的大小,所述第一缓存的访问频率高于所述第二缓存的访问频率;
将所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在所述第一缓存中;
将所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵存储在所述第二缓存中;
其中,所述基于所述第i卷积层的内存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果,包括:
基于所述第i卷积层的内存、所述第一缓存和所述第二缓存运行所述第i卷积层以对所述图像数据进行识别,得到识别结果。
7.根据权利要求6所述的方法,其特征在于,所述将所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵存储在所述第一缓存中,包括:
所述分块后的多个权重矩阵中小于矩阵预设值的权重矩阵按照矩阵的大小存储在所述第一缓存中;
所述将所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵存储在所述第二缓存中,包括:
所述分块后的多个权重矩阵中大于或等于所述矩阵预设值的权重矩阵按照矩阵的大小存储在所述第二缓存中。
8.根据权利要求6所述的方法,其特征在于,所述方法适用于嵌入式软件加速XNetLite框架,所述XNetLite框架包括转化层;
其中,所述根据所述第一缓存的大小和所述第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的所述分块后的多个权重矩阵,包括:
在所述XNetLite框架的所述转化层根据所述第一缓存的大小和所述第二缓存的大小对所述第一卷积神经网络模型的所述各个卷积层的各个权重矩阵进行分块,得到所述第一卷积神经网络模型的所述分块后的多个权重矩阵。
9.一种设备,包括用于执行如权利要求1至8中任一项所述方法的单元。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366928.1A CN112766467B (zh) | 2021-04-06 | 2021-04-06 | 基于卷积神经网络模型的图像识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366928.1A CN112766467B (zh) | 2021-04-06 | 2021-04-06 | 基于卷积神经网络模型的图像识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112766467A true CN112766467A (zh) | 2021-05-07 |
CN112766467B CN112766467B (zh) | 2021-08-20 |
Family
ID=75691154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110366928.1A Active CN112766467B (zh) | 2021-04-06 | 2021-04-06 | 基于卷积神经网络模型的图像识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112766467B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608881A (zh) * | 2021-10-09 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 内存分配方法、装置、设备、可读存储介质及程序产品 |
CN114742211A (zh) * | 2022-06-10 | 2022-07-12 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN115238873A (zh) * | 2022-09-22 | 2022-10-25 | 深圳市友杰智新科技有限公司 | 神经网络模型部署方法、装置、计算机设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140349743A1 (en) * | 2011-11-04 | 2014-11-27 | Zynga Inc. | Value icon to award virtual currency in a virtual game |
CN108009634A (zh) * | 2017-12-21 | 2018-05-08 | 美的集团股份有限公司 | 一种卷积神经网络的优化方法、装置及计算机存储介质 |
JP2018073103A (ja) * | 2016-10-28 | 2018-05-10 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
CN108829610A (zh) * | 2018-04-02 | 2018-11-16 | 浙江大华技术股份有限公司 | 一种神经网络前向计算过程中的内存管理方法及设备 |
CN109992742A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 一种信号处理方法及装置 |
CN110110844A (zh) * | 2019-04-24 | 2019-08-09 | 西安电子科技大学 | 基于OpenCL的卷积神经网络并行处理方法 |
CN110597616A (zh) * | 2018-06-13 | 2019-12-20 | 华为技术有限公司 | 一种神经网络的内存分配方法及装置 |
CN111582294A (zh) * | 2019-03-05 | 2020-08-25 | 慧泉智能科技(苏州)有限公司 | 一种构建用于表面缺陷检测的卷积神经网络模型的方法及其利用 |
CN111694768A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111787323A (zh) * | 2020-05-23 | 2020-10-16 | 清华大学 | 一种基于对抗学习的可变比特率生成式压缩方法 |
CN111984400A (zh) * | 2020-07-17 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络的内存分配方法及装置 |
-
2021
- 2021-04-06 CN CN202110366928.1A patent/CN112766467B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140349743A1 (en) * | 2011-11-04 | 2014-11-27 | Zynga Inc. | Value icon to award virtual currency in a virtual game |
JP2018073103A (ja) * | 2016-10-28 | 2018-05-10 | キヤノン株式会社 | 演算回路、その制御方法及びプログラム |
CN108009634A (zh) * | 2017-12-21 | 2018-05-08 | 美的集团股份有限公司 | 一种卷积神经网络的优化方法、装置及计算机存储介质 |
CN109992742A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 一种信号处理方法及装置 |
CN108829610A (zh) * | 2018-04-02 | 2018-11-16 | 浙江大华技术股份有限公司 | 一种神经网络前向计算过程中的内存管理方法及设备 |
CN110597616A (zh) * | 2018-06-13 | 2019-12-20 | 华为技术有限公司 | 一种神经网络的内存分配方法及装置 |
CN111582294A (zh) * | 2019-03-05 | 2020-08-25 | 慧泉智能科技(苏州)有限公司 | 一种构建用于表面缺陷检测的卷积神经网络模型的方法及其利用 |
CN111694768A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN110110844A (zh) * | 2019-04-24 | 2019-08-09 | 西安电子科技大学 | 基于OpenCL的卷积神经网络并行处理方法 |
CN111787323A (zh) * | 2020-05-23 | 2020-10-16 | 清华大学 | 一种基于对抗学习的可变比特率生成式压缩方法 |
CN111984400A (zh) * | 2020-07-17 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络的内存分配方法及装置 |
Non-Patent Citations (5)
Title |
---|
J. YU ET AL.: "Instruction driven cross-layer CNN accelerator with winograd transformation on FPGA", 《2017 INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE TECHNOLOGY (ICFPT)》 * |
MIN ZHANG ET AL.: "Efficient Small Blob Detection Based on Local Convexity, Intensity and Shape Information", 《IEEE TRANSACTIONS ON MEDICAL IMAGING》 * |
张英杰: "深度卷积神经网络嵌入式推理框架的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
查羿 等: "一种负载均衡的LSTM硬件加速器设计", 《南京大学学报(自然科学版)》 * |
赵天理: "基于移动平台的深度学习优化计算方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608881A (zh) * | 2021-10-09 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 内存分配方法、装置、设备、可读存储介质及程序产品 |
CN113608881B (zh) * | 2021-10-09 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 内存分配方法、装置、设备、可读存储介质及程序产品 |
CN114742211A (zh) * | 2022-06-10 | 2022-07-12 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN114742211B (zh) * | 2022-06-10 | 2022-09-23 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
WO2023236319A1 (zh) * | 2022-06-10 | 2023-12-14 | 南京邮电大学 | 一种面向微控制器的卷积神经网络部署和优化方法 |
CN115238873A (zh) * | 2022-09-22 | 2022-10-25 | 深圳市友杰智新科技有限公司 | 神经网络模型部署方法、装置、计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112766467B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112766467B (zh) | 基于卷积神经网络模型的图像识别方法 | |
Li et al. | Edge AI: On-demand accelerating deep neural network inference via edge computing | |
CN110969251B (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN111816159B (zh) | 一种语种识别方法以及相关装置 | |
US20220414432A1 (en) | Method and system for splitting and bit-width assignment of deep learning models for inference on distributed systems | |
US20220383200A1 (en) | Method and apparatus for constructing multi-task learning model, electronic device, and storage medium | |
WO2021155832A1 (zh) | 一种图像处理方法以及相关设备 | |
Lu et al. | Automating deep neural network model selection for edge inference | |
CN106991999B (zh) | 语音识别方法及装置 | |
CN111158912A (zh) | 云雾协同计算环境下一种基于深度学习的任务卸载决策方法 | |
Liu et al. | AdaDeep: A usage-driven, automated deep model compression framework for enabling ubiquitous intelligent mobiles | |
Hur et al. | Entropy-based pruning method for convolutional neural networks | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
Yu et al. | Heterogeneous federated learning using dynamic model pruning and adaptive gradient | |
WO2021103977A1 (zh) | 神经网络的搜索方法、装置及设备 | |
Qi et al. | Federated quantum natural gradient descent for quantum federated learning | |
CN113159269A (zh) | 终端模型处理方法、装置及设备 | |
CN115169548A (zh) | 基于张量的持续学习方法和装置 | |
CN114077885A (zh) | 基于张量分解的模型压缩方法、装置和服务器 | |
Zhen et al. | A Secure and Effective Energy-Aware Fixed-Point Quantization Scheme for Asynchronous Federated Learning. | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
Castellano et al. | Regularized bottleneck with early labeling | |
EP4350580A1 (en) | Apparatus, method, and computer program for transfer learning | |
Tripathi et al. | Vector codebook design using gravitational search algorithm | |
CN108288090B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |