CN114611685A - 神经网络模型中的特征处理方法、介质、设备和程序产品 - Google Patents

神经网络模型中的特征处理方法、介质、设备和程序产品 Download PDF

Info

Publication number
CN114611685A
CN114611685A CN202210227374.1A CN202210227374A CN114611685A CN 114611685 A CN114611685 A CN 114611685A CN 202210227374 A CN202210227374 A CN 202210227374A CN 114611685 A CN114611685 A CN 114611685A
Authority
CN
China
Prior art keywords
coordinate data
sampling
parameter
sub
determining
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
Application number
CN202210227374.1A
Other languages
English (en)
Inventor
韩冥生
王晓雪
余宗桥
许礼武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Technology China Co Ltd
Original Assignee
ARM Technology China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ARM Technology China Co Ltd filed Critical ARM Technology China Co Ltd
Priority to CN202210227374.1A priority Critical patent/CN114611685A/zh
Publication of CN114611685A publication Critical patent/CN114611685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)

Abstract

本申请涉及人工智能领域,公开了一种神经网络模型中的特征处理方法、介质、设备和程序产品,所述方法包括:确定处理对象中的候选区域,并对所述候选区域实施目标运算;确定所述目标运算对应的输入特征图和所述候选区域的坐标数据;对所述候选区域的坐标数据进行放大处理;基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据;基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值;基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。如此,可以提高电子设备运行神经网络模型的速度。

Description

神经网络模型中的特征处理方法、介质、设备和程序产品
技术领域
本申请涉及人工智能领域,特别涉及一种神经网络模型中的特征处理方法、介质、设备和程序产品。
背景技术
随着人工智能(artificial intelligence,AI)的迅速发展,神经网络模型在人工智能领域的应用越来越广泛。为了提高神经网络模型的运行速度,通常需要对神经网络模型中的算子的输出特征图进行区域特征聚集,得到固定大小的特征图。例如,在Faster-RCNN网络中,可以通过RoiAlign算子对主干网络(backbone)的输出特征图通过候选框映射产生固定大小的特征图。
但是由于RoiAlign算子中包括累加、乘法、除法等运算,而用于运行神经网络模型的运算单元,例如神经网络处理器(Neural-Network Processing Unit,NPU),为定点运算单元,并没有能够直接实现RoiAlign算子中的除法等非线性运算的电路,而是通过迭代求解来实现,速度慢且占用NPU的大量硬件资源,降低了电子设备运行神经网络模型的速度。
发明内容
有鉴于此,本申请实施例提供了一种神经网络模型中的特征处理方法、介质、设备和程序产品。
第一方面,本申请实施例提供了一种神经网络模型中的特征处理方法,应用于电子设备,包括:
确定处理对象中的候选区域,并对所述候选区域实施目标运算,所述目标运算用于将候选区域内的输入特征图转换为固定大小的输出特征图;
确定所述目标运算对应的输入特征图和所述候选区域的坐标数据;
根据预先存储的输出参数对所述候选区域进行划分,得到多个子区域;其中,所述输出参数用于确定所述输出特征图的大小;
分别对各个所述子区域进行采样,以获得分别与各个所述子区域对应的至少一个采样点;
对所述候选区域的坐标数据进行放大处理;
基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据;其中,所述第一运算因子和所述第二运算因子均通过乘法和移位的形式表示;
基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值;
基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。
可以理解,电子设备在运行神经网络模型过程中,若检测到将候选区域内的输入特征图转换为固定大小的输出特征图的目标运算,例如通过RoiAlign算子基于候选框映射产生固定大小的特征图的运算,可以先对所述候选区域进行区域划分和采样,并预先对候选区域的坐标数据进行放大,基于放大处理后的坐标数据,以及通过乘法和移位的形式表示的第一运算因子和第二运算因子,计算候选区域中各个子区域对应的各个采样点的坐标数据,再根据各个采样点的坐标数据确定对应的特征值,从而确定出对应于所述候选区域的输出特征图,在后续运算过程中无需再对运算结果进行放大处理,并且规避了除法操作,在保证运算精度的同时减少了运算量,降低了电子设备运行包含所述目标运算的神经网络模型时占用的硬件资源,提高了电子设备运行包含所述目标运算的神经网络模型的速度。
在上述第一方面的一种可能实现中,所述对所述候选区域的坐标数据进行放大处理,包括:将所述候选区域的坐标数据放大2shift,其中shift为大于零的整数。
在上述第一方面的一种可能实现中,所述候选区域的坐标数据包括横向坐标数据和纵向坐标数据;
所述基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据,包括:
分别针对横向坐标数据和纵向坐标数据中每个方向的坐标数据,获取预先存储的所述坐标数据对应的第一运算因子;
获取预先存储的所述坐标数据对应方向的目标采样参数;
根据所述目标采样参数确定所述坐标数据对应的第二运算因子;
基于放大处理后的所述坐标数据及其对应的第一运算因子和第二运算因子,计算各个所述子区域对应的各个采样点在对应方向的坐标数据。
在上述第一方面的一种可能实现中,所述根据所述目标采样参数确定所述坐标数据对应的第二运算因子,包括:
判断所述目标采样参数是否大于零;
当所述目标采样参数大于零时,获取预先存储的所述坐标数据对应的第二运算因子;
当所述目标采样参数等于零时,生成所述目标采样参数的目标查表参数;
获取查找表中与所述目标查表参数对应的目标查表结果;
基于所述目标查表结果和所述坐标数据对应的第一运算因子,确定所述坐标数据对应的第二运算因子。
在上述第一方面的一种可能实现中,所述生成所述目标采样参数的目标查表参数,包括:基于放大处理后的所述坐标数据及其对应的第一运算因子,计算所述目标查表参数。
在上述第一方面的一种可能实现中,所述基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值,包括:
分别针对每个采样点,基于所述采样点的坐标数据,确定所述输入特征图中距离所述采样点最近的多个栅格点的坐标数据;
基于所述输入特征图和各个所述栅格点的坐标数据确定各个所述栅格点的特征值;
基于各个所述栅格点的坐标数据和特征值进行双线性差值运算,得到所述采样点对应的特征值。
在上述第一方面的一种可能实现中,所述基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图,包括:
获取预先存储的横向采样参数和纵向采样参数;
根据所述横向采样参数和所述纵向采样参数确定第三运算因子;
分别针对每个子区域,基于所述子区域对应的各个采样点的特征值与所述第三运算因子,计算所述子区域对应的特征值;
基于各个所述子区域对应的特征值,生成所述候选区域的输出特征图。
在上述第一方面的一种可能实现中,所述根据所述横向采样参数和所述纵向采样参数确定第三运算因子,包括:
分别判断所述横向采样参数和所述纵向采样参数是否大于零;
当所述横向采样参数和所述纵向采样参数均大于零时,获取预先存储的第三运算因子;
当所述横向采样参数和/或所述纵向采样参数等于零时,生成所述横向采样参数的第一查表参数,和/或,生成所述纵向采样参数的第二查表参数;
获取查找表中与所述第一查表参数对应的第一查表结果,和/或,获取查找表中与所述第二查表参数对应的第二查表结果;
基于所述第一查表结果和/或所述第二查表结果确定所述第三运算因子。
可以理解,本申请实施例中提供的方法兼容了采样参数为零的情况,适应性更好,并且在采样参数为零的情况下,通过查表的方式,避免了在线计算时的除法操作,从而在保证运算精度的同时,进一步加快在线计算过程的运算速度。
第二方面,本申请实施例提供了一种可读介质,该可读介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现上述第一方面以及上述第一方面的各种可能实现提供的任意一种神经网络模型中的特征处理方法。
第三方面,本申请实施提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于运行指令以使电子设备实现上述第一方面以及上述第一方面的各种可能实现提供的任意一种的神经网络模型中的特征处理方法。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括指令,所述指令用于实现上述第一方面以及上述第一方面的各种可能实现提供的任意一种的神经网络模型中的特征处理方法。
附图说明
图1根据本申请的一些实施例,示出了一种神经网络模型的示意图;
图2根据本申请的一些实施例,示出了RoiAlign算子的运算过程示意图;
图3根据本申请的一些实施例,示出了一种区域划分的示意图;
图4根据本申请的一些实施例,示出了一种神经网络模型中的特征处理方法的流程图;
图5根据本申请的一些实施例,示出了一种计算横坐标数据的流程图;
图6根据本申请的另一些实施例,示出了一种计算特征值的流程图;
图7根据本申请的一些实施例,示出了一种神经网络模型中的特征处理装置的结构示意图;
图8根据本申请的一些实施例,示出了一种电子设备的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种神经网络模型中的特征处理方法、介质和电子设备。下面将结合附图对本申请的实施例作进一步地详细描述。
为了更加清楚的理解本申请,现对神经网络模型的结构进行说明。
图1根据本申请的一些实施例,示出了一种神经网络模型的结构示意图。如图1所示,神经网络模型10包括输入层11、卷积层12、激活层13,池化层14,全连接层15和输出层16。其中,卷积层12通过多个卷积核对输入图像进行特征提取,得到多个特征图;激活层13用于对各个特征图进行激活,以提高后续层的运算速度;池化层14为通过RoiAlign算子对激活层13的输出特征图转换为固定大小的特征图;全连接层15用于对输入图像数据进行分类,例如得到输入图像属于各预设图像类别的概率;输出层16用于输出输入图像的类别,例如将输入图像的类别确定为前述概率最大的预设图像类别。
可以理解,在一些实施例中,预设图像类别可以包括:风景、人物、动物等。
可以理解,神经网络模型10的结构只是一种示例,在另一些实施例中,神经网络模型可以是任意包括RoiAlign算子的神经网络模型,在此不做限定。
可以理解,RoiAlign算子的输入数据可以包括候选区域的坐标数据和输入特征图。图2根据本申请的一些实施例,示出了RoiAlign算子的运算过程示意图。如图2所示,RoiAlign算子的运算过程可以包括:
S201:根据输出参数将候选区域划分为多个子区域,根据采样参数对各个子区域进行采样,得到分别与各个所述子区域对应的至少一个采样点。
其中,所述输出参数和所述采样参数由RoiAlign算子定义,所述输出参数用于确定RoiAlign算子的输出特征图的大小,所述采样参数用于确定采样点的个数。
在一些实施例中,所述输出参数可以包括横向输出参数和纵向输出参数,根据所述横向输出参数和所述纵向输出参数可以确定RoiAlign算子的输出特征图的大小。具体地,可以根据所述横向输出参数和所述纵向输出参数,将所述候选区域划分为[横向输出参数*纵向输出参数]个子区域,且使得得到的多个子区域的大小均相同。
例如,假设所述输出参数为[out_h,out_w]=[3,3],如图3所示,可以确定输出的特征图的大小为3*3,即可以将所述候选区域均分为9个子区域。
在一些实施例中,所述采样参数也可以包括横向采样参数和纵向采样参数,表示在所述子区域中横向和纵向采样的个数。具体地,可以根据所述横向采样参数和所述纵向采样参数,将每个子区域均分为[横向采样参数*纵向采样参数]个单元格,将每个单元格的中心点作为采样点。
例如,假设所述采样参数为[sample_h,sample_w]=[2,2],如图3所示,可以将每个子区域划分为4个单元格,将每个单元格的中心点作为采样点。
S202:通过输入的候选区域的坐标数据计算出各个采样点的坐标。
可以理解,各个采样点的横坐标数据x的计算公式如下:
x_f=x1+w_step_size*out_w_idx+sample_w_idx*w_bin_size+0.5*w_bin_size (1)
roi_width=x2-x1 (2)
Figure BDA0003536547620000041
Figure BDA0003536547620000042
其中,x1,x2为候选区域Roi的x方向的起始坐标和结束坐标;out_w_idx∈[0,out_w),表示采样点所在子区域在x方向的编号;out_w是x方向的输出参数,表示输出特征图的宽;sample_w_idx∈[0,sample_w),表示采样点在对应子区域中在x方向的编号,sample_w是x方向的采样参数,表示在每个out_w方向上的采样个数。若RoiAlign算子中sample_w定义为0,则sample_w取值为ceil(w_step_size),在计算纵坐标数据时同理,若sample_h定义为0,则sample_h取值为ceil(h_step_size)。
将公式(2)、(3)、(4)代入公式(1),可得到:
Figure BDA0003536547620000051
上述公式整理后得到采样点的横坐标数据的计算公式(5):
Figure BDA0003536547620000052
同理,可以得到采样点的纵坐标数据的计算公式(6):
Figure BDA0003536547620000053
S203:分别基于每个采样点的坐标数据,通过双线性插值计算所述采样点的特征值。
在一些实施例中,可以先根据采样点的坐标数据确定RoiAlign算子的输入特征图中距离所述采样点最近的多个栅格点的坐标数据,再以各个所述栅格点的坐标数据为索引确定各个栅格点的特征值,最后基于各个所述栅格点的坐标数据和特征值,通过双线性插值计算所述采样点的特征值。
可以理解,各个采样点的特征值的计算公式如下:
f(x,y)=dx2*dy2*fm(x_left,y_top)+dx1*dy2*fm(x_right,y_top)+dx2*dy1*fm(x_left,y_bottom)+dx1*dy1*fm(x_right,y_bottom) (7)
x_left=floor(x),x_right=x_left+1
y_top=floor(y),y_bottom=y_top+1
dx1=x-x_left,dx2=1-dx1
dy1=y-y_top,dy2=1-dy1
其中,fm(a,b)表示(a,b)点对应的特征值,floor(a)为保留整数部分舍弃小数部分的函数。
S204:基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。
在一些实施例中,可以将每个子区域对应的各个采样点的特征值的均值作为所述子区域对应的特征值,根据各个子区域及其对应的特征值即可生成RoiAlign算子的输出特征图。
可以理解,各个子区域的特征值的计算公式如下:
Figure BDA0003536547620000054
其中outh,w表示子区域的特征值,h∈[0,out_h),w∈[0,out_w)。
下面介绍对RoiAlign算子的量化流程。
RoiAlign算子采样点坐标量化是该算子量化的关键,其量化准确与否直接决定了选取的栅格点的特征值,从而决定了双线性插值后的结果的量化精度。
首先介绍对于上述公式(5)和(6)的量化过程。
为便于描述,在此定义在本申请实施例,x_f表示变量x的浮点数,x_q表示变量x的定点数,x_s表示x_f量化为x_q的缩放系数。假设x_q为对称量化的n位定点数,则x_f、x_s与x_q的关系可以通过如下公式(9)和公式(10)确定。
Figure BDA0003536547620000061
x_q=round(x_f*x_s) (10)
其中,max(a)表示求a的最大值,min(a)表示求a的最小值,abs(a)表示求a的绝对值,round(a)表示对a进行四舍五入取整,n为量化比特数。
可以理解,本申请实施例提供的方法支持多个量化比特数,也就是说,量化比特数n可以根据实际需求设定,例如,可以为8比特、16比特等。
可以理解,round(a)也可以为其他功能的函数,例如,可以为保留整数部分舍弃小数部分的floor(a)函数、fix(a)函数等等,本申请实施例对此不做限定。
可以理解,由于NPU只能进行定点运算,因此在计算各个采样点的坐标时,需要将计算公式中的运算因子都量化为定点数。
对候选区域的坐标数据放大2shift,其中shift为大于零的整数,shift的值可以根据实际需要进行配置,例如可以设置为10,本申请实施例对此不作限制。
可以理解,在进行运算前先将候选区域的坐标数据进行放大,避免了后续运算过程中再对运算结果进行放大处理,减少特征处理过程中的运算量,使得可以在保证运算精度的同时,提高电子设备的运行速度。
根据公式(5)和(10),可以得到:
Figure BDA0003536547620000062
即得到:
Figure BDA0003536547620000063
其中,x1_q表示变量x1(放大处理后的数据)的定点数,roi_width_q=x2_q-x1_q,x2_q表示变量x2(放大处理后的数据)的定点数。
从公式(11)可知,除了两个除法因子,其他都可以直接使用定点数进行计算。为了规避除法,可以将除法转换为整数的乘法和移位,即分别将
Figure BDA0003536547620000064
Figure BDA0003536547620000065
表示成qscale*2qshift的形式,其中qscale,qshift都为整数。此时公式(11)量化为:
x_q*2shift=x1_q+(roi_width_q*out_w_idx*qscale_1<<qshift_1)+((2*sample_w_idx+1)*roi_width_q*qscale_2<<qshift_2) (12)
其中,公式(12)中“<<”表示左移运算,缩放系数和移位数(qscale_1,qshift_1)表示第一运算因子
Figure BDA0003536547620000066
缩放系数和移位数(qscale_2,qshift_2)表示第二运算因子
Figure BDA0003536547620000071
NPU在根据x2_q-x1_q确定roi_widt*_q,根据当前采样点确定out_w_idx和sample_w_idx后,即可通过(12)式计算得到各个采样点的横坐标数据,而无需进行除法操作,降低了NPU的硬件资源消耗,从而提高了神经网络模型的运行速度。
可以理解,由于out_w为神经网络模型的超参数,且out_w>0,那么可以将所述第一运算因子
Figure BDA0003536547620000072
转化为qscale_1*2qshift_1,并将缩放系数和移位数(qscale_1,qshift_1)进行预先存储,从而在在线计算各个采样点的横坐标数据时直接进行获取。
可以理解,第二运算因子
Figure BDA0003536547620000073
的值与横向输出参数sample_w相关,可以根据sample_w的值来确定,由于sample_w的值存在特殊情况,因此所述第二运算因子需要单独进行处理。
可以理解,当RoiAlign算子定义中sample_w>0时,可以将第二运算因子
Figure BDA0003536547620000074
转化为qscale_2*2qshift_2,并将缩放系数和移位数(qscale_2,qshift_2)进行预先存储,在在线计算各个采样点的横坐标数据时直接进行获取。
可以理解,当RoiAlign算子定义中sample_w=0时,则需要在在线阶段根据sample_w=ceil(w_step_size)求得。为了加快在线阶段的计算速度,可以通过查表的方式,得到
Figure BDA0003536547620000075
对应的缩放系数和移位数,进而结合第一运算因子计算对应的第二运算因子。
下面介绍构建查找表的过程。
由于在采样点的纵坐标数据的计算过程中,sample_h的值也可能存在等于0的特殊情况,此时也需要在线阶段根据sample_h=ceil(h_step_size)求得。与横坐标数据相同,在计算纵坐标数据时,也可以通过查表的方式,得到
Figure BDA0003536547620000076
的值,进而结合对应的第一运算因子计算对应的第二运算因子。
由于
Figure BDA0003536547620000077
那么roi_width最大值即为特征图的宽,因此w_step_size的取值范围为
Figure BDA0003536547620000078
由于
Figure BDA0003536547620000079
Figure BDA00035365476200000710
那么roi_height最大值即为特征图的高,因此h_step_size的取值范围为
Figure BDA00035365476200000711
为了做一个统一的查找表,可以将查找表的大小设置为
Figure BDA00035365476200000712
即只需要将
Figure BDA00035365476200000713
做成lut_size组(qscale,qshift)的形式的查找表即可。
可以理解,在在线阶段计算采样点的横坐标数据时,可以根据
Figure BDA00035365476200000714
计算得到横向采样参数sample_w的查表参数,以所述查表参数为索引,从所述查找表中获取对应的查表结果(qscale_w,qshift_w),再将查表结果对应的缩放系数qscale_w与第一运算因子的缩放系数qscale_1相乘,得到对应的第二运算因子的缩放系数qscale_2,将查表结果对应的移位数qshift_w与第一运算因子的移位数qshift_1相加即可得到对应的第二运算因子的移位数qshift_2。在在线阶段计算采样点的纵坐标数据时与计算横坐标数据时类似,本申请实施例在此不再赘述。
从公式(12)可知,所有的x_q都放大了2shift,因此在公式(7)中的dx1,dx2,dy1,dy2都是放大了2shift
对于公式(8)进行量化可以得到以下公式:
Figure BDA0003536547620000081
Figure BDA0003536547620000082
对于公式(13),可以将
Figure BDA0003536547620000083
记为第三运算因子,为了规避除法,可以将所述第三运算因子换为整数的乘法和移位的形式,即将total_scale表示成qscale*2qshift的形式,其中qscale,qshift都为整数。通过各个子区域对应的各个采样点的特征值的定点数f(x,y)i_q之和与所述第三运算因子的线性运算,即可计算得到各个子区域对应的特征值的定点数outh,w_q。此时公式(13)量化为:
Figure BDA0003536547620000084
其中,“<<”表示左移运算,“>>”表示右移运算。由于第三运算因子与横向采样参数和纵向采样参数相关,且存在RoiAlign算子定义中sample_w和/或sample_h为0的情况,因此第三运算因子也需要单独进行处理。
(1)当sample_w≠0,sample_h≠0时,可以将第三运算因子total_scale表示为整数的乘法和移位的形式,即将第三运算因子total_scale表示成qscale_3*2qshift_3,并将缩放系数和移位数(qscale_3,qshift_3)进行预先存储,在在线计算时直接进行获取。
(2)当sample_w=0时,第三运算因子
Figure BDA0003536547620000085
Figure BDA0003536547620000086
可以将
Figure BDA0003536547620000087
部分表示为整数的乘法和移位的形式,即将
Figure BDA0003536547620000088
表示成qscale_4*2qshift_4,并将缩放系数和移位数(qscale_4,qshift_4)进行预先存储,在在线计算时直接进行获取,对于
Figure BDA0003536547620000089
部分可以通过查表的方式得到(qscale_w,qshift_w),将qscale_w*2qshift_w与qscale_4*2qshift_4相乘即可得到第三运算因子qscale_3*2qshift_3
(3)当sample_h=0时,第三运算因子
Figure BDA00035365476200000810
Figure BDA00035365476200000811
可以将
Figure BDA00035365476200000812
部分表示为整数的乘法和移位的形式,即将
Figure BDA00035365476200000813
表示成qscale_4*2qshift_4,并将缩放系数和移位数(qscale_4,qshift_4)进行预先存储,在在线计算时直接进行获取,对于
Figure BDA00035365476200000814
部分可以通过查表的方式得到(qscale_h,qshift_h),将qscale_h*2qshift_h与qscale_4*2qshift_4相乘即可得到第三运算因子qscale_3*2qshift_3
(4)当sample_w=0,sample_h=0时,第三运算因子
Figure BDA00035365476200000815
Figure BDA00035365476200000816
可以将
Figure BDA00035365476200000817
部分表示为整数的乘法和移位的形式,即将
Figure BDA00035365476200000818
表示成qscale_4*2qshift _4,并将缩放系数和移位数(qscale_4,qshift_4)进行预先存储,在在线计算时直接进行获取,对于
Figure BDA00035365476200000819
部分和
Figure BDA0003536547620000091
部分可以通过查表的方式得到(qscale_w,qshift_w)和(qscale_h,qshift_h),将qscale_w*2qshift_w与qscale_h*2qshift_h相乘,再与qscale_4*2qshift_4相乘即可得到第三运算因子qscale_3*2qshift_3
下面介绍本申请实施例提供的神经网络模型中的特征处理方法。
图4根据本申请的一些实施例,示出了一种神经网络模型中的特征处理方法的流程示意图。该流程的执行主体为电子设备,如图4所示,该流程包括如下步骤:
S401:确定处理对象中的候选区域,并对所述候选区域实施目标运算,所述目标运算用于将候选区域内的输入特征图转换为固定大小的输出特征图。
电子设备在运行所述神经网络模型的过程中,若检测到RoiAlign算子的运算,即通过本申请实施例提供的方法通过RoiAlign算子对候选区域实施目标运算,以将候选区域内的输入特征图转换为固定大小的输出特征图。
本申请实施例中,所述处理对象可以为所述神经网络模型的处理对象,例如图像等;所述候选区域可以由所述神经网络模型中的其它算子生成。
例如,电子设备在运行神经网络模型10的过程中,在运行池化层14时即可检测到RoiAlign算子,触发本申请实施例提供的神经网络模型中的特征处理方法。
S402:确定所述目标运算对应的输入特征图和所述候选区域的坐标数据。
本申请实施例中,所述输入特征图和所述候选区域的坐标数据均为所述神经网络模型中的其它算子生成。
S403:根据预先存储的输出参数对所述候选区域进行划分,得到多个子区域;其中,所述输出参数用于确定所述输出特征图的大小。
本申请实施例中,所述输出参数为所述神经网络模型的超参数,由神经网络模型在部署到电子设备前确定,也即是说,对于一个待运行的神经网络模型,所述输出参数为已知量。
在一些实施例中,电子设备可以对所述候选区域进行均分,以使得得到的多个子区域的大小均相同。
在一些实施例中,所述输出参数可以包括横向输出参数和纵向输出参数,根据所述横向输出参数和所述纵向输出参数可以确定所述输出特征图的大小。
例如,假设所述输出参数为[out_h,out_w]=[3,3],如图3所示,可以确定输出特征图的大小为3*3,即可以将所述候选区域划分为9个子区域。
S404:分别对各个所述子区域进行采样,以获得分别与各个所述子区域对应的至少一个采样点。
本申请实施例中,电子设备可以根据所述神经网络模型定义的采样参数对各个所述子区域进行采样。所述采样参数也可以包括横向采样参数和纵向采样参数,表示在所述子区域中横向和纵向采样的点数。
例如,假设所述采样参数为[sample_h,sample_w]=[2,2],如图3所示,可以将每个子区域划分为4个单元格,将每个单元格的中心点作为采样点。
S405:对所述候选区域的坐标数据进行放大处理。
本申请实施例中,所述候选区域的坐标数据可以包括横向坐标数据和纵向坐标数据。例如,所述候选区域的坐标数据可以表示为Roi=[y1,x1,y2,x2]。电子设备可以将所述候选区域的坐标数据均放大2shift,得到放大处理后的坐标数据[y1,x1,y2,x2],其中shift为大于零的整数,shift的值可以根据实际需要进行配置,例如可以设置为10,本申请实施例对此不作限制。
可以理解,在进行运算前先将候选区域的坐标数据进行放大,避免了后续运算过程中再对运算结果进行放大处理,减少特征处理过程中的运算量,使得可以在保证运算精度的同时,提高电子设备的运行速度。
S406:基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据;其中,所述第一运算因子和所述第二运算因子均通过乘法和移位的形式表示。
本申请实施例中,所述基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据,可以包括:
分别针对横向坐标数据和纵向坐标数据中每个方向的坐标数据,获取预先存储的所述坐标数据对应的第一运算因子;
获取预先存储的所述坐标数据对应方向的目标采样参数;
根据所述目标采样参数确定所述坐标数据对应的第二运算因子;
基于放大处理后的所述坐标数据及其对应的第一运算因子和第二运算因子,计算各个所述子区域对应的各个采样点在对应方向的坐标数据。
例如,在计算各个采样点的横坐标数据时,可以获取预先存储的横向坐标数据对应的第一运算因子对应的缩放系数和移位数(qscale_1,qshift_1),然后获取横向采样参数,根据所述横向采样参数确定横向坐标数据对应的第二运算因子对应的缩放系数和移位数(qscale_2,qshift_2),再基于放大处理后的x1和x2的坐标数据的定点数计算roi_widt*_q,根据当前采样点确定out_w_idx和sample_w_idx,最后通过公式(12)即可计算得到所述横坐标数据。
在一些实施例中,所述根据所述目标采样参数确定所述坐标数据对应的第二运算因子,可以包括:
判断所述目标采样参数是否大于零;
当所述目标采样参数大于零时,获取预先存储的所述坐标数据对应的第二运算因子;
当所述目标采样参数等于零时,生成所述目标采样参数的目标查表参数;
获取查找表中与所述目标查表参数对应的目标查表结果;
基于所述目标查表结果和所述坐标数据对应的第一运算因子,确定所述坐标数据对应的第二运算因子。
在一些实施例中,所述生成所述目标采样参数的目标查表参数,可以包括:
基于放大处理后的所述坐标数据及其对应的第一运算因子,计算所述目标查表参数。
具体地,在计算各个采样点的横坐标数据时,如图5所示,可以获取横向坐标数据对应方向的横向采样参数sample_w(即目标采样参数),判断所述横向采样参数sample_w是否大于零,如果横向采样参数sample_w大于零,那么可以获取预先存储的横向坐标数据对应的第二运算因子对应的缩放系数和移位数(qscale_2,qshift_2),并根据公式(12)计算各个采样点的横坐标数据。如果横向采样参数sample_w等于零,那么可以通过查表的方式来计算第二运算因子对应的缩放系数和移位数(qscale_2,qshift_2)。
具体地,如图5所示,如果横向采样参数sample_w等于零,可以根据
Figure BDA0003536547620000101
计算得到所述横向采样参数sample_w的目标查表参数tmp,其中,“<<”表示左移运算,“>>”表示右移运算。再以tmp为索引,从预先建立的查找表中获取对应的查表结果(qscale_w,qshift_w),最后根据所述查表结果(qscale_w,qshift_w)和第一运算因子对应的缩放系数和移位数(qscale_1,qshift_1),即可确定第二运算因子对应的缩放系数和移位数(qscale_2,qshift_2),其中qscale_2=qscale_1*qscale_w,qshift_2=qshift_1+qshift_w。也就是说,当获取到的横向采样参数sample_w等于零,可以根据下式计算各个采样点的横坐标数据:
x_q*2shift=x1_q+(roi_width_q*out_w_idx*qscale_1<<qshift_1)+((2*sample_w_idx+1)*roi_width_q*qscale_w*qscale_1<<(qshift_w+qshift_1)) (15)
其中,“<<”表示左移运算。需要说明的是,本申请实施例中计算各个采样点的纵坐标数据的方法与计算横坐标数据的方法类似,本申请实施例在此不再赘述。
可以理解,本申请实施例中提供的方法在计算各个采样点的坐标数据时,将除法表示为整数的乘法和移位的形式,避免了在线计算过程中的除法操作,在保证运算精度的同时减少了运算量,降低了电子设备运行神经网络模型时占用的硬件资源,提高了电子设备运行神经网络模型的速度。
可以理解,本申请实施例中提供的方法兼容了采样参数为零的情况,适应性更好,并且在采样参数为零的情况下,通过查表的方式,避免了在线计算时的除法操作,从而在保证运算精度的同时,进一步加快在线计算过程的运算速度。
S407:基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值。
本申请实施例中,所述基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值,可以包括:
分别针对每个采样点,基于所述采样点的坐标数据,确定所述输入特征图中距离所述采样点最近的多个栅格点的坐标数据;
基于所述输入特征图和各个所述栅格点的坐标数据确定各个所述栅格点的特征值;
基于各个所述栅格点的坐标数据和特征值进行双线性差值运算,得到所述采样点对应的特征值。
本申请实施例中,所述栅格点的个数可以设置为4个,通过4个栅格点的坐标数据和特征值即可进行双线性插值,得到对应的采样点的特征值。需要说明的是,双线性插值的计算方法为现有技术,本申请实施例在此不再赘述。
具体地,可以先根据采样点的坐标x_q,y_q计算x_left,x_right,y_top,y_bottom的值:
x_left=x_q>>shift,x_right=x_left+1
y_top=y_q>>shift,y_bottom=y_top+1
其中,“>>”表示右移运算,根据x_left,x_right,y_top,y_bottom的值即可确定所述输入特征图中距离所述采样点最近的4个栅格点的坐标数据(x_left,y_top)、(x_left,y_bottom)、(x_right,y_top)和(x_right,y_bottom)。
S408:基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。
本申请实施例中,所述基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图,可以包括:
获取预先存储的横向采样参数和纵向采样参数;
根据所述横向采样参数和所述纵向采样参数确定第三运算因子;
分别针对每个子区域,基于所述子区域对应的各个采样点的特征值与所述第三运算因子,计算所述子区域对应的特征值;
基于各个所述子区域对应的特征值,生成所述候选区域的输出特征图。
具体地,在确定某个子区域对应的各个采样点的特征值f(x,y)i后,可以获取预先存储的横向采样参数sample_w和纵向采样参数sample_h,根据所述横向采样参数sample_w和所述纵向采样参数sample_h确定第三运算因子对应的缩放系数和移位数(qscal_3,qshift_3),再根据公式(14)计算所述子区域的特征值。
在一些实施例中,可以先求得sample_h*sample_w个特征值的定点数之和
Figure BDA0003536547620000121
记为linear_out,再根据以下公式计算子区域的特征值:
outh,w_q=linear_out*qscale_3<<qshift_3>>(2*shift)
其中,“<<”表示左移运算,“>>”表示右移运算。
在一些实施例中,所述根据所述横向采样参数和所述纵向采样参数确定第三运算因子,可以包括:
分别判断所述横向采样参数和所述纵向采样参数是否大于零;
当所述横向采样参数和所述纵向采样参数均大于零时,获取预先存储的第三运算因子;
当所述横向采样参数和/或所述纵向采样参数等于零时,生成所述横向采样参数的第一查表参数,和/或,生成所述纵向采样参数的第二查表参数;
获取查找表中与所述第一查表参数对应的第一查表结果,和/或,获取查找表中与所述第二查表参数对应的第二查表结果;
基于所述第一查表结果和/或所述第二查表结果确定所述第三运算因子。
具体地,在计算各个子区域对应的特征值时,如图6所示,可以获取横向采样参数sample_w和纵向采样参数sample_h,判断所述横向采样参数sample_w和所述纵向采样参数sample_h是否大于零,如果横向采样参数sample_w和所述纵向采样参数sample_h均大于零,那么可以获取预先存储的第三运算因子对应的缩放系数和移位数(qscale_3,qshift_3),并根据公式(14)计算各个子区域的特征值。如果获取到的横向采样参数sample_w和所述纵向采样参数sample_h中存在至少一个等于零,那么可以通过查表的方式来计算第三运算因子对应的缩放系数和移位数(qscale_3,qshift_3)。
具体地,如图6所示,当仅sample_w=0时,可以根据
Figure BDA0003536547620000122
计算得到所述横向采样参数sample_w的第一查表参数,其中(qscale_1,qshift_1)为
Figure BDA0003536547620000123
对应的缩放系数和移位数,再以tmp为索引,从预先建立的查找表中获取对应的第一查表结果,由于所述查找表为
Figure BDA0003536547620000124
的查找表,因此将所述第一查表结果乘以2即可得到
Figure BDA0003536547620000125
部分对应的缩放系数和移位数(scale_w,qshift_w),根据(qscale_w,qshift_w)和预先存储的
Figure BDA0003536547620000126
部分对应的缩放系数和移位数(qscale_4,qshift_4)即可确定第三运算因子对应的缩放系数和移位数(qscale_3,qshift_3),其中qscale_3=qscale_4*qscale_w,qshift_3=qshift_4+qshift_w。也就是说,当获取到的横向采样参数sample_w等于零,纵向采样参数sample_h不等于零时,可以根据下式计算各个子区域对应的特征值:
outh,w_q=linear_out*qscale_4*qscale_w<<(qshift_4+qshift_w)>>(2*shift)<<1 (16)
其中,“<<”表示左移运算,“>>”表示右移运算。
具体地,当仅sample_h=0时,与sample_w=0类似,本申请实施例在此不再赘述。
具体地,如图6所示,当sample_w=0,sample_h=0时,可以分别根据
Figure BDA0003536547620000131
计算得到所述横向采样参数sample_w的第一查表参数,根据
Figure BDA0003536547620000132
计算得到所述纵向采样参数sample_h的第二查表参数,其中(qscale_1,qshift_1)为
Figure BDA0003536547620000133
对应的缩放系数和移位数,(qscale_1′,qshift_1′)为
Figure BDA0003536547620000134
对应的缩放系数和移位数,再以tmp和tmp′为索引,从预先建立的查找表中获取对应的第一查表结果和第二查表结果,由于所述查找表为
Figure BDA0003536547620000135
的查找表,因此将所述第一查表结果和所述第二查表结果乘以2即可得到
Figure BDA0003536547620000136
部分对应的缩放系数和移位数(qscale_w,qshift_w)以及
Figure BDA0003536547620000137
部分对应的缩放系数和移位数(qscale_h,qshift_h),最后根据(qscale_w,qshift_w)、(qscale_h,qshift_h)和预先存储的
Figure BDA0003536547620000138
部分的值(qscale_4,qshift_4)即可确定第三运算因子对应的缩放系数和移位数(qscale_3,qshift_3),其中qscale_3=qscale_4*qscale_w*qscale_h,qshift_3=qshift_4+qshift_w+qshift_h。也就是说,当获取到的横向采样参数sample_w和纵向采样参数sample_h均等于零时,可以根据下式计算各个子区域对应的特征值:
outh,w_q=linear_out*qscale_4*qscale_w*qscale_h<<(qshift_4+qshift_w+qshift_h)>>(2*shift)<<2 (17)
其中,“<<”表示左移运算,“>>”表示右移运算。
可以理解,本申请实施例中提供的方法兼容了采样参数为零的情况,适应性更好,并且在采样参数为零的情况下,通过查表的方式,避免了在线计算时的除法操作,从而在保证运算精度的同时,进一步加快在线计算过程的运算速度。
综上所述,电子设备在运行神经网络模型过程中,若检测到将候选区域内的输入特征图转换为固定大小的输出特征图的目标运算,例如通过RoiAlign算子基于候选框映射产生固定大小的特征图的运算,可以先对所述候选区域进行区域划分和采样,并预先对候选区域的坐标数据进行放大,基于放大处理后的坐标数据,以及通过乘法和移位的形式表示的第一运算因子和第二运算因子,计算候选区域中各个子区域对应的各个采样点的坐标数据,再根据各个采样点的坐标数据确定对应的特征值,从而确定出对应于所述候选区域的输出特征图,在后续运算过程中无需再对运算结果进行放大处理,并且规避了除法操作,在保证运算精度的同时减少了运算量,降低了电子设备运行包含所述目标运算的神经网络模型时占用的硬件资源,提高了电子设备运行包含所述目标运算的神经网络模型的速度。
图7根据本申请的一些实施例,示出了一种神经网络模型中的特征处理装置700的结构示意图,所述装置700设置于电子设备中,如图7所示,所述装置700可以包括:
候选区域确定模块710,用于确定处理对象中的候选区域,并对所述候选区域实施目标运算,所述目标运算用于将候选区域内的输入特征图转换为固定大小的输出特征图;
输入数据确定模块720,用于确定所述目标运算对应的输入特征图和所述候选区域的坐标数据;
区域划分模块730,用于根据预先存储的输出参数对所述候选区域进行划分,得到多个子区域;其中,所述输出参数用于确定所述输出特征图的大小;
采样模块740,用于分别对各个所述子区域进行采样,以获得分别与各个所述子区域对应的至少一个采样点;
放大模块750,用于对所述候选区域的坐标数据进行放大处理;
坐标数据确定模块760,用于基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据;其中,所述第一运算因子和所述第二运算因子均通过乘法和移位的形式表示;
特征值确定模块770,用于基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值;
特征图确定模块780,用于基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。
本申请实施例提供的神经网络模型中的特征处理方法,可以应用于能够运行神经网络模型的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例不做限定。为便于理解本申请实施例的技术方案,以电子设备100为例说明本申请实施例提供的神经网络模型中的特征处理方法的适用的电子设备的结构。
图8根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图8所示,电子设备100包括一个或多个处理器101、系统内存102、非易失性存储器(Non-VolatileMemory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的系统控制逻辑106。其中:
处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammable Gate Array)、神经网络处理器(Neural-network Processing Unit,NPU)等的处理模块或处理电路可以包括一个或多个单核或多核处理器。在一些实施例中,NPU可以用于运行本申请实施例提供的神经网络模型中的特征处理方法对应的指令。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储上述查找表。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储上述查找表。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行时使电子设备100实现本申请各实施例提供的神经网络模型中的特征处理方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104从其他电子设备获取神经网络模型以及该神经网络模型对应的查找表。
输入/输出(I/O)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互。
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,图8所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (11)

1.一种神经网络模型中的特征处理方法,应用于电子设备,其特征在于,包括:
确定处理对象中的候选区域,并对所述候选区域实施目标运算,所述目标运算用于将候选区域内的输入特征图转换为固定大小的输出特征图;
确定所述目标运算对应的输入特征图和所述候选区域的坐标数据;
根据预先存储的输出参数对所述候选区域进行划分,得到多个子区域;其中,所述输出参数用于确定所述输出特征图的大小;
分别对各个所述子区域进行采样,以获得分别与各个所述子区域对应的至少一个采样点;
对所述候选区域的坐标数据进行放大处理;
基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据;其中,所述第一运算因子和所述第二运算因子均通过乘法和移位的形式表示;
基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值;
基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图。
2.根据权利要求1所述的方法,其特征在于,所述对所述候选区域的坐标数据进行放大处理,包括:
将所述候选区域的坐标数据放大2shift,其中shift为大于零的整数。
3.根据权利要求1所述的方法,其特征在于,所述候选区域的坐标数据包括横向坐标数据和纵向坐标数据;
所述基于放大处理后的候选区域的坐标数据、第一运算因子以及第二运算因子,确定各个所述子区域对应的各个采样点的坐标数据,包括:
分别针对横向坐标数据和纵向坐标数据中每个方向的坐标数据,获取预先存储的所述坐标数据对应的第一运算因子;
获取预先存储的所述坐标数据对应方向的目标采样参数;
根据所述目标采样参数确定所述坐标数据对应的第二运算因子;
基于放大处理后的所述坐标数据及其对应的第一运算因子和第二运算因子,计算各个所述子区域对应的各个采样点在对应方向的坐标数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标采样参数确定所述坐标数据对应的第二运算因子,包括:
判断所述目标采样参数是否大于零;
当所述目标采样参数大于零时,获取预先存储的所述坐标数据对应的第二运算因子;
当所述目标采样参数等于零时,生成所述目标采样参数的目标查表参数;
获取查找表中与所述目标查表参数对应的目标查表结果;
基于所述目标查表结果和所述坐标数据对应的第一运算因子,确定所述坐标数据对应的第二运算因子。
5.根据权利要求4所述的方法,其特征在于,所述生成所述目标采样参数的目标查表参数,包括:
基于放大处理后的所述坐标数据及其对应的第一运算因子,计算所述目标查表参数。
6.根据权利要求1所述的方法,其特征在于,所述基于所述输入特征图和各个所述子区域对应的各个采样点的坐标数据,分别确定各个所述子区域对应的各个采样点的特征值,包括:
分别针对每个采样点,基于所述采样点的坐标数据,确定所述输入特征图中距离所述采样点最近的多个栅格点的坐标数据;
基于所述输入特征图和各个所述栅格点的坐标数据确定各个所述栅格点的特征值;
基于各个所述栅格点的坐标数据和特征值进行双线性差值运算,得到所述采样点对应的特征值。
7.根据权利要求1所述的方法,其特征在于,所述基于各个所述子区域对应的各个采样点的特征值,确定对应于所述候选区域的输出特征图,包括:
获取预先存储的横向采样参数和纵向采样参数;
根据所述横向采样参数和所述纵向采样参数确定第三运算因子;
分别针对每个子区域,基于所述子区域对应的各个采样点的特征值与所述第三运算因子,计算所述子区域对应的特征值;
基于各个所述子区域对应的特征值,生成所述候选区域的输出特征图。
8.根据权利要求7所述的方法,其特征在于,所述根据所述横向采样参数和所述纵向采样参数确定第三运算因子,包括:
分别判断所述横向采样参数和所述纵向采样参数是否大于零;
当所述横向采样参数和所述纵向采样参数均大于零时,获取预先存储的第三运算因子;
当所述横向采样参数和/或所述纵向采样参数等于零时,生成所述横向采样参数的第一查表参数,和/或,生成所述纵向采样参数的第二查表参数;
获取查找表中与所述第一查表参数对应的第一查表结果,和/或,获取查找表中与所述第二查表参数对应的第二查表结果;
基于所述第一查表结果和/或所述第二查表结果确定所述第三运算因子。
9.一种可读介质,其特征在于,所述可读介质中包含有指令,当所述指令被电子设备的处理器执行时使电子设备实现权利要求1-8中任一项所述的神经网络模型中的特征处理方法。
10.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于运行所述指令以使所述电子设备实现权利要求1-8中任一项所述的神经网络模型中的特征处理方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,所述指令用于实现权利要求1-8中任一项所述的神经网络模型中的特征处理方法。
CN202210227374.1A 2022-03-08 2022-03-08 神经网络模型中的特征处理方法、介质、设备和程序产品 Pending CN114611685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210227374.1A CN114611685A (zh) 2022-03-08 2022-03-08 神经网络模型中的特征处理方法、介质、设备和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210227374.1A CN114611685A (zh) 2022-03-08 2022-03-08 神经网络模型中的特征处理方法、介质、设备和程序产品

Publications (1)

Publication Number Publication Date
CN114611685A true CN114611685A (zh) 2022-06-10

Family

ID=81861113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210227374.1A Pending CN114611685A (zh) 2022-03-08 2022-03-08 神经网络模型中的特征处理方法、介质、设备和程序产品

Country Status (1)

Country Link
CN (1) CN114611685A (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328646A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
EP3319015A1 (en) * 2016-11-07 2018-05-09 Samsung Electronics Co., Ltd. Convolutional neural network processing method and apparatus
CN109284749A (zh) * 2017-07-19 2019-01-29 微软技术许可有限责任公司 精细化图像识别
EP3480740A1 (en) * 2017-11-07 2019-05-08 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing deconvolution
CN110413255A (zh) * 2018-04-28 2019-11-05 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
WO2020020472A1 (en) * 2018-07-24 2020-01-30 Fundación Centro Tecnoloxico De Telecomunicacións De Galicia A computer-implemented method and system for detecting small objects on an image using convolutional neural networks
CN111027691A (zh) * 2019-12-25 2020-04-17 上海寒武纪信息科技有限公司 用于神经网络运算的计算装置及其集成电路板卡
CN111383157A (zh) * 2018-12-29 2020-07-07 北京市商汤科技开发有限公司 图像处理方法、装置、车载运算平台、电子设备及系统
CN112102329A (zh) * 2019-06-17 2020-12-18 辉达公司 使用一个或更多个神经网络进行细胞图像合成
CN112219223A (zh) * 2018-05-30 2021-01-12 智动科技有限公司 生成图像或音频数据的输入数据集对的位移图
CN112330719A (zh) * 2020-12-02 2021-02-05 东北大学 基于特征图分割和自适应融合的深度学习目标跟踪方法
CN113592885A (zh) * 2021-06-29 2021-11-02 中南大学 基于SegNet-RS网络的大障碍物轮廓分割方法
CN113962856A (zh) * 2021-09-30 2022-01-21 北京三快在线科技有限公司 图像的处理方法、装置、存储介质和电子设备
CN114139693A (zh) * 2021-12-03 2022-03-04 安谋科技(中国)有限公司 神经网络模型的数据处理方法、介质和电子设备

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328646A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
EP3319015A1 (en) * 2016-11-07 2018-05-09 Samsung Electronics Co., Ltd. Convolutional neural network processing method and apparatus
CN109284749A (zh) * 2017-07-19 2019-01-29 微软技术许可有限责任公司 精细化图像识别
EP3480740A1 (en) * 2017-11-07 2019-05-08 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing deconvolution
CN109754064A (zh) * 2017-11-07 2019-05-14 三星电子株式会社 执行解卷积的神经网络的方法和装置
CN110413255A (zh) * 2018-04-28 2019-11-05 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN112219223A (zh) * 2018-05-30 2021-01-12 智动科技有限公司 生成图像或音频数据的输入数据集对的位移图
WO2020020472A1 (en) * 2018-07-24 2020-01-30 Fundación Centro Tecnoloxico De Telecomunicacións De Galicia A computer-implemented method and system for detecting small objects on an image using convolutional neural networks
CN111383157A (zh) * 2018-12-29 2020-07-07 北京市商汤科技开发有限公司 图像处理方法、装置、车载运算平台、电子设备及系统
CN112102329A (zh) * 2019-06-17 2020-12-18 辉达公司 使用一个或更多个神经网络进行细胞图像合成
CN111027691A (zh) * 2019-12-25 2020-04-17 上海寒武纪信息科技有限公司 用于神经网络运算的计算装置及其集成电路板卡
CN112330719A (zh) * 2020-12-02 2021-02-05 东北大学 基于特征图分割和自适应融合的深度学习目标跟踪方法
CN113592885A (zh) * 2021-06-29 2021-11-02 中南大学 基于SegNet-RS网络的大障碍物轮廓分割方法
CN113962856A (zh) * 2021-09-30 2022-01-21 北京三快在线科技有限公司 图像的处理方法、装置、存储介质和电子设备
CN114139693A (zh) * 2021-12-03 2022-03-04 安谋科技(中国)有限公司 神经网络模型的数据处理方法、介质和电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PAN HONG等: "Shape-based target recongnition using wavelet neural network", 《JOURNAL OF DATA ACQUISITION PROCESSING》, vol. 23, no. 1, 31 March 2008 (2008-03-31), pages 27 - 34 *
XING AH等: "Speeding up Deep Neural Networks in speech Regnition with Piecewise Quantized sigmodial activation Function", 《IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS》, no. 10, 31 October 2016 (2016-10-31), pages 2558 - 2561 *
宋周锐;: "基于混合全局池化的回环检测算法", 计算机与现代化, no. 04, 15 April 2020 (2020-04-15), pages 119 - 124 *
顾军华;李炜;董永峰;: "基于点云数据的分割方法综述", 燕山大学学报, no. 02, 31 March 2020 (2020-03-31), pages 35 - 47 *

Similar Documents

Publication Publication Date Title
US10929746B2 (en) Low-power hardware acceleration method and system for convolution neural network computation
EP3144805B1 (en) Method and processing apparatus for performing arithmetic operation
WO2020145146A1 (ja) 推論処理装置および推論処理方法
CN112825199B (zh) 碰撞检测方法、装置、设备及存储介质
CN114820972B (zh) 等值线和/或等值面生成方法、系统、设备及存储介质
US9151842B2 (en) Method and apparatus for time of flight sensor 2-dimensional and 3-dimensional map generation
CN110337636A (zh) 数据转换方法和装置
CN110633447B (zh) 基于fpga的球面距离定点计算方法及其计算装置
CN114611685A (zh) 神经网络模型中的特征处理方法、介质、设备和程序产品
JP7215572B2 (ja) 推論処理装置および推論処理方法
CN116611488A (zh) 一种矢量处理单元、神经网络处理器及深度相机
KR20210090249A (ko) 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템
CN111798263A (zh) 一种交易趋势的预测方法和装置
US20210312012A1 (en) Neural network device, method of operating the neural network device, and application processor including the neural network device
CN112199072B (zh) 一种基于神经网络层的数据处理方法、装置及设备
CN111009004B (zh) 一种加速图像匹配的硬件优化方法
US20110099215A1 (en) System and method to identify a median value
JP7012766B2 (ja) パラメータテーブルの記憶スペースを削減する方法、装置、デバイス、およびコンピュータ可読記憶媒体
CN112258386A (zh) 图像变形加速处理方法及装置、电子设备和可读存储介质
CN114065123A (zh) 稀疏矩阵计算方法及加速装置
CN114840719A (zh) 检测模型后处理方法、介质、电子设备和程序产品
WO2021260785A1 (ja) 情報処理装置、情報処理方法およびプログラム
US20220309351A1 (en) Structure transformation device, structure transformation method, and computer readable medium
CN115601231B (zh) 图像处理方法、装置、硬件加速器、芯片以及设备
CN116186526B (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