CN114445687A - 一种图像识别推理方法、系统、存储介质及设备 - Google Patents
一种图像识别推理方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN114445687A CN114445687A CN202111677231.2A CN202111677231A CN114445687A CN 114445687 A CN114445687 A CN 114445687A CN 202111677231 A CN202111677231 A CN 202111677231A CN 114445687 A CN114445687 A CN 114445687A
- Authority
- CN
- China
- Prior art keywords
- data
- picture data
- block
- unit
- picture
- 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
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000004364 calculation method Methods 0.000 claims abstract description 86
- 238000011176 pooling Methods 0.000 claims abstract description 46
- 238000013528 artificial neural network Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 34
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013527 convolutional neural network Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000004927 fusion Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种图像识别推理方法、系统、存储介质及设备,方法包括:将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;由全局内存将单位图片数据和单位权重数据加载至共享内存中,并在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据;在共享内存中对池化图片数据与单位权重数据进行全连接计算,以得到全连接数据;由共享内存将全连接数据写回至全局内存,以基于全局内存中的全连接数据进行图像识别的推理。本发明减少了数据往返于全局内存和共享内存导致的通信延迟,加快了神经网络在图像识别推理方面的计算速度。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种图像识别推理方法、系统、存储介质及设备。
背景技术
随着互联网、大数据、云计算等技术的快速发展,人工智能(ArtificialIntelligence,简称AI)发展突飞猛进,在语音识别、图像识别、智能控制、复杂计算等各大领域涌现出一系列应用产品,同时也在各行各业得到广泛应用。而图像处理一直是人工智能领域的研究热点,比如汽车自动驾驶,通过实时的路况图像信息采集以及处理,可以直接控制汽车在路上的行驶行为;在人脸识别方面,通过对比信息库中的数据,可以对人脸图像的面部特征进行识别从而辨认身份,这在社会安防方面已经发挥了重要的作用。
目前对人工智能图像识别与分类方面的研究主要有两方面,一方面是如何能够提高图像识别过程中的准确率,相关学者提出了各种卷积神经网络,比如Resnet50卷积神经网络模型,通过引入残差结构大大提高图像识别的精度;另一方面是如何提高图像识别过程的速度,在这方面,有学者提出了各种关于卷积计算的高效实现方法,比如im2col、FFT、Winograd算法等。同时相关研究人员在研究快速算法的同时将不同的网络结构应用在不同的计算设备上,比如FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、GPU(Graphics Processing Unit,图形处理器)等设备。GPU由于其特有的高并行、高带宽等优势,在图像识别的推理与训练提速方面发挥了重要的作用。
Resnet50是具有50层计算结构的神经网络卷积模型,在卷积计算完成后的剩余部分,是平均池化加全连接层。在实际的运行在GPU上的图像推理过程中,这两个算子会分别调用一个算子进行计算,而在每次算子调用过程中,都会出现GPU全局内存与算子内部共享内存以及寄存器的数据通信,这个通信发生在计算开始时的数据读取以及计算完成后的数据写回过程中,通常这个涉及全局内存的数据交换是每个算子计算必不可少但通信延迟非常大的部分。针对平均池化算子,首先数据由全局内存加载到共享内存,随后数据由共享内存加载到寄存器进行平均池化的计算,在计算完成后数据会由寄存器写回到共享内存,最后数据会由共享内存写回到全局内存,可以看到在平均池化计算过程中产生了两次与全局内存有关的数据通信,这个与全局有关的通信往往延迟较大会成为限制GPU计算性能的瓶颈。与平均池化类似,在之后的全连接层也会产生数据由全局内存加载到共享内存,以及数据由共享内存写回到全局内存的过程。因此,现有的平均池化计算过程和全连接计算过程会产生较大的通信延迟,从而降低图片识别推理的效率。
发明内容
有鉴于此,本发明的目的在于提出一种图像识别推理方法、系统、存储介质及设备,用以解决现有技术中在图像识别推理过程中平均池化计算和全连接计算的过程会产生较大的通信延迟,致使图片识别推理效率低的问题。
基于上述目的,本发明提供了一种图像识别推理方法,包括以下步骤:
将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;
由全局内存将单位图片数据和单位权重数据加载至共享内存中,并在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据;
在共享内存中对池化图片数据与单位权重数据进行全连接计算,以得到全连接数据;
由共享内存将全连接数据写回至全局内存,以基于全局内存中的全连接数据进行图像识别的推理。
在一些实施例中,在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据包括:
在全局内存中对图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据;
对块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据。
在一些实施例中,在全局内存中对图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据包括:
根据图片数据中的图片数量为每个块划分待进行循环处理的块图片数量,并根据权重数据中的输出通道数量为每个块划分待进行循环处理的块通道数量;
基于块图片数量和块通道数量分别得到块图片数据和块权重数据。
在一些实施例中,对块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据包括:
基于共享内存的容量限制设置每个块在循环处理过程中单次待处理的图片数量,以作为单位图片数量;
基于单位图片数量和块图片数据得到单位图片数据,并基于单位图片数量和块权重数据得到单位权重数据。
在一些实施例中,在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据包括:
基于块图片数量和单位图片数量得到每个块在循环处理过程中的平均池化操作总数,并基于平均池化操作总数在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据。
在一些实施例中,图片数据包括图片数量、图片长度、图片宽度及图片的通道数量,权重数据包括长度权重、宽度权重、输入通道权重及输出通道权重。
在一些实施例中,神经网络为Resnet50卷积神经网络模型。
本发明的另一方面,还提供了一种图像识别推理系统,包括:
拆分处理模块,配置用于将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;
平均池化计算模块,配置用于由全局内存将单位图片数据和单位权重数据加载至共享内存中,并在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据;
全连接计算模块,配置用于在共享内存中对池化图片数据与单位权重数据进行全连接计算,以得到全连接数据;以及
图像识别推理模块,配置用于由共享内存将全连接数据写回至全局内存,以基于全局内存中的全连接数据进行图像识别的推理。
本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。
本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。
本发明至少具有以下有益技术效果:
本发明通过对全局内存中的图片数据和权重数据进行拆分处理得到单位图片数据和单位权重数据,有利于后续平均池化计算和全连接计算过程中用到单位图片数据和单位权重数据时可以直接在共享内存中进行计算,从而有利于平均池化计算和全连接计算的融合;通过将平均池化计算和全连接计算进行融合,减少了数据往返于全局内存和共享内存导致的通信延迟,提高了神经网络模型在运行时的性能表现,加快了神经网络模型在图像识别推理方面的计算速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明实施例提供的图像识别推理方法的示意图;
图2为根据本发明实施例提供的全连接计算的示意图;
图3为根据本发明实施例提供的图像识别推理系统的示意图;
图4为根据本发明实施例提供的实现图像识别推理方法的计算机可读存储介质的示意图;
图5为根据本发明实施例提供的执行图像识别推理方法的计算机设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
基于上述目的,本发明实施例的第一个方面,提出了一种图像识别推理方法的实施例。图1示出的是本发明提供的图像识别推理方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
步骤S10、将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;
步骤S20、由全局内存将单位图片数据和单位权重数据加载至共享内存中,并在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据;
步骤S30、在共享内存中对池化图片数据与单位权重数据进行全连接计算,以得到全连接数据;
步骤S40、由共享内存将全连接数据写回至全局内存,以基于全局内存中的全连接数据进行图像识别的推理。
本发明实施例通过对全局内存中的图片数据和权重数据进行拆分处理得到单位图片数据和单位权重数据,有利于后续平均池化计算和全连接计算过程中用到单位图片数据和单位权重数据时可以直接在共享内存中进行计算,从而有利于平均池化计算和全连接计算的融合;通过将平均池化计算和全连接计算进行融合,减少了数据往返于全局内存和共享内存导致的通信延迟,提高了神经网络模型在运行时的性能表现,加快了神经网络模型在图像识别推理方面的计算速度。
在一些实施例中,在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据包括:在全局内存中对图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据;对块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据。
在一些实施例中,在全局内存中对图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据包括:根据图片数据中的图片数量为每个块划分待进行循环处理的块图片数量,并根据权重数据中的输出通道数量为每个块划分待进行循环处理的块通道数量;基于块图片数量和块通道数量分别得到块图片数据和块权重数据。
在一些实施例中,对块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据包括:基于共享内存的容量限制设置每个块在循环处理过程中单次待处理的图片数量,以作为单位图片数量;基于单位图片数量和块图片数据得到单位图片数据,并基于单位图片数量和块权重数据得到单位权重数据。
在一些实施例中,在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据包括:基于块图片数量和单位图片数量得到每个块在循环处理过程中的平均池化操作总数,并基于平均池化操作总数在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据。
在一些实施例中,图片数据包括图片数量、图片长度、图片宽度及图片的通道数量,权重数据包括长度权重、宽度权重、输入通道权重及输出通道权重。
在一些实施例中,神经网络为Resnet50卷积神经网络模型。
本实施例中,Resnet50是具有50层计算结构的Resnet神经网络。Resnet(ResidualNetwork)是具有残差结构的卷积神经网络,该模型通过引入残差单元解决了网络加深时的梯度消失问题,随着层次的加深,识别精度相应提高,当网络达到饱和时,采用全等映射的思想解决深层次网络退化的问题,具有较高的图像识别精度。目前Resnet50网络在图像识别领域具有较为广泛的应用。
以下为本发明的图像识别推理方法的一示例性实施例:
关于Resnet50神经网络平均池化层与全连接层相关参数示例如下表1所示。
表1 Resnet50神经网络平均池化层与全连接层参数
在上表中,可以看到不同算子的计算输入以及输出,包括图片数量(图片数量可设定)、图片的长、图片的宽,以及图片的通道数量,同时也可以看出权重的尺寸,包括权重的长、权重的宽,以及权重的输入通道和输出通道。
首先对Grid(网格)层面进行划分,对于整体的融合算子,输入图片数据data[N,2048,7,7],输入权重数据weight[1000,2048],输出为result[N,1000],针对N进行划分为每个block(即块)中计算64份图片数量(即块图片数量),针对输出通道Oc=1000划分为每个block中计算250份通道的数量(即块通道数量),则Grid的维度为[N/64,1000/250],因此细分到每个block中计算的数据data为[64,2048,7,7](即块图片数据),所需要的weight为[250,2048](即块权重数据)。
对于融合算子,在一个block中,由于GPU中的共享内存有限制,因为对输入通道Ic=2048会在一个block中进行循环处理,每次处理的数量为16(即单位图片数量),在进行这一步的循环划分后,每次循环处理的数据data为[64,16,7,7](即单位图片数据),所需要的weight为[250,16](即单位图片数据),为了方便计算这里对weight进行填充处理,填充处理后的weight大小为[256,16],因此每次由全局内存加载进共享内存中的data数据量(int8数据类型)为49KB,weight的数据量(int8数据类型)为4KB,两部分的数据加起来共53KB。
关于设置单位图片数量为16,是由于在GPU计算中,一般取值会取2的整数次方,此处取16计算出来的内存占用大小为49+4=53KB,若该值取8,则内存占用为53/2=26.5KB,此时GPU中计算密度不够,若该值取32,内存占用为53*2=106KB,此时内存占用太大,总的可用共享内存为160KB,此时160/106<2,失去了并行的意义,因此这个值取16较合适。
当数据由全局内存读进共享内存后,首先进行的是平均池化过程的操作,由前可知,输入到一个block中的data的数据为[64,16,7,7](即单位图片数据),在Resnet50卷积神经网络模型中最后一个平均池化的尺寸为7*7,因此主要的循环如下:
针对上述循环,设置一个block中warp数量为8,也就是一共256个线程(每个warp包括32线程)。每个图片(N为图片数量)的每个通道(Ic)都需要进行池化操作,总的需要的池化的数量为N*Ic个平均池化,将前述循环中的N维度与Ic维度进行合并为Fnic维度等于64*16=1024(即平均池化操作总数),即一个block的循环处理中一共处理共1024个尺寸为7x7的平均池化操作,将1024个平均池化操作划分配到256个线程去处理,则一个线程处理4个平均池化操作,处理之后将数据重新放回共享内存,此时一个block中平均池化之后的图片数据pool为[64,16]。
前述平均池化之后的数据未写回全局内存而是存在于共享内存中,这样就避免了平均池化之后的数据写回全局内存,同时也避免了在全连接时图片数据由全局内存读入共享内存的过程。随后进行全连接操作,全连接需要的数据为池化之后的图片数据以及权重数据,由前可知图片数据pool为[64,16],权重数据为[256,16],全连接进行的主要循环如下:
图2示出了全连接计算的示意图。如图2所示,由前述可知一个block中设置8个warp,在这里对全连接计算进行warp的划分,首先将n维度按照32进行划分,则n可划分为两个32的维度,其中n0维度由warp0、warp2、warp4、warp6进行计算,n1维度由warp1、warp3、warp5、warp7进行计算;将oc按照64进行划分,则oc可划分为四个64的维度,其中oc0维度由warp0、warp1进行计算,oc1维度由warp2、warp3进行计算,oc2维度由warp4、warp5进行计算,oc3维度由warp6、warp7进行计算。经过划分,每个warp需要进行[32,16]*[64,16]矩阵乘的计算,则8个warp共同完成result为[64,256]的计算。
上述过程计算完成后,数据会存放于共享内存中,随后数据会由共享内存写回全局内存完成一个Ic=16的计算,由前可知,输入通道数量为2048,因此会进行2048/16=128个上述循环的计算,待循环完成后,会得到所有的计算结果。
在现有技术中,在平均池化算子部分进行了两次涉及全局内存的数据通信,分别是图片数据由全局内存读入共享内存,以及图片数据由共享内存写回全局内存;在全连接算子的计算过程中也有两次涉及全局内存的通信,分别是图片数据以及权重数据由全局内存读入共享内存,以及图片数据由共享内存写回全局内存。
实际在GPU上进行算子计算时,涉及全局内存的数据通信的延迟往往是寄存器与共享内存数据通信延迟的几十倍,而往往算子计算过程中寄存器与共享内存的容量特别小,大量的数据都存放在全局内存中,所以算子的计算无法避免的与全局数据进行数据通信,这部分涉及全局数据通信的部分就会变成影响算子计算的性能瓶颈。
在上述实施例中,将平均池化算子与全连接层算子进行融合计算,核心的改变是在一个算子的寄存器中,一并进行平均池化以及全连接操作的计算。在卷积模块计算完成后,池化算子所需要的图片数据会根据需要由全局内存读入共享内存,随后寄存器会将数据由共享内存读入寄存器,在寄存器中首先进行平均池化的计算,在这一部分的计算完成后,数据会再由寄存器中进行全连接操作的计算,计算完成后数据会由寄存器写回共享内存,最后数据会由共享内存写回全局内存以完成合并算子整体的计算。
相比于未进行算子合并的计算,通过这样的方式可以减少平均池化数据由共享内存写回全局内存的过程,同时会减少全连接算子图片数据以及权重数据由全局内存读入共享内存的过程,通过减少这两个涉及全局内存通信的延迟较大的过程,整体上可以提高这两个算子的计算时间从而提高计算性能;由于GPU的计算过程中涉及寄存器的计算过程是延迟较低的,算子合并带来的计算复杂度的增加几乎不会带来性能下降,所以整体上程序的性能会提高。
本发明实施例的第二个方面,还提供了一种图像识别推理系统。图3示出的是本发明提供的图像识别推理系统的实施例的示意图。如图3所示,一种图像识别推理系统包括:拆分处理模块10,配置用于将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在全局内存中对图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;平均池化计算模块20,配置用于由全局内存将单位图片数据和单位权重数据加载至共享内存中,并在共享内存中对单位图片数据进行平均池化计算,以得到池化图片数据;全连接计算模块30,配置用于在共享内存中对池化图片数据与单位权重数据进行全连接计算,以得到全连接数据;以及图像识别推理模块40,配置用于由共享内存将全连接数据写回至全局内存,以基于全局内存中的全连接数据进行图像识别的推理。
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现图像识别推理方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的图像识别推理方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的图像识别推理系统和存储介质。
本发明实施例的第四个方面,还提供了一种计算机设备,包括如图5所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。
如图5所示,为本发明提供的执行图像识别推理方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与图像识别推理系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的图像识别推理方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储图像识别推理方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的图像识别推理方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种图像识别推理方法,其特征在于,包括以下步骤:
将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在所述全局内存中对所述图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;
由所述全局内存将所述单位图片数据和单位权重数据加载至共享内存中,并在所述共享内存中对所述单位图片数据进行平均池化计算,以得到池化图片数据;
在所述共享内存中对所述池化图片数据与所述单位权重数据进行全连接计算,以得到全连接数据;
由所述共享内存将所述全连接数据写回至所述全局内存,以基于所述全局内存中的所述全连接数据进行图像识别的推理。
2.根据权利要求1所述的方法,其特征在于,在所述全局内存中对所述图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据包括:
在所述全局内存中对所述图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据;
对所述块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据。
3.根据权利要求2所述的方法,其特征在于,在所述全局内存中对所述图片数据和权重数据分别进行分块处理,以得到每个块对应的待进行循环处理的块图片数据和块权重数据包括:
根据所述图片数据中的图片数量为每个块划分待进行循环处理的块图片数量,并根据所述权重数据中的输出通道数量为所述每个块划分待进行循环处理的块通道数量;
基于所述块图片数量和所述块通道数量分别得到所述块图片数据和所述块权重数据。
4.根据权利要求3所述的方法,其特征在于,对所述块图片数据和块权重数据分别进行细分处理,以得到循环处理过程中单次待处理的单位图片数据和单位权重数据包括:
基于所述共享内存的容量限制设置所述每个块在循环处理过程中单次待处理的图片数量,以作为单位图片数量;
基于所述单位图片数量和所述块图片数据得到单位图片数据,并基于所述单位图片数量和所述块权重数据得到单位权重数据。
5.根据权利要求3所述的方法,其特征在于,在所述共享内存中对所述单位图片数据进行平均池化计算,以得到池化图片数据包括:
基于所述块图片数量和所述单位图片数量得到所述每个块在循环处理过程中的平均池化操作总数,并基于所述平均池化操作总数在所述共享内存中对所述单位图片数据进行平均池化计算,以得到池化图片数据。
6.根据权利要求1所述的方法,其特征在于,所述图片数据包括图片数量、图片长度、图片宽度及图片的通道数量,所述权重数据包括长度权重、宽度权重、输入通道权重及输出通道权重。
7.根据权利要求1所述的方法,其特征在于,所述神经网络为Resnet50卷积神经网络模型。
8.一种图像识别推理系统,其特征在于,包括:
拆分处理模块,配置用于将神经网络中经卷积层计算得到的图片数据和权重数据存放至全局内存,并在所述全局内存中对所述图片数据和权重数据分别进行拆分处理,以得到单位图片数据和单位权重数据;
平均池化计算模块,配置用于由所述全局内存将所述单位图片数据和单位权重数据加载至共享内存中,并在所述共享内存中对所述单位图片数据进行平均池化计算,以得到池化图片数据;
全连接计算模块,配置用于在所述共享内存中对所述池化图片数据与所述单位权重数据进行全连接计算,以得到全连接数据;以及
图像识别推理模块,配置用于由所述共享内存将所述全连接数据写回至所述全局内存,以基于所述全局内存中的所述全连接数据进行图像识别的推理。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111677231.2A CN114445687B (zh) | 2021-12-31 | 2021-12-31 | 一种图像识别推理方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111677231.2A CN114445687B (zh) | 2021-12-31 | 2021-12-31 | 一种图像识别推理方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114445687A true CN114445687A (zh) | 2022-05-06 |
CN114445687B CN114445687B (zh) | 2024-01-19 |
Family
ID=81365394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111677231.2A Active CN114445687B (zh) | 2021-12-31 | 2021-12-31 | 一种图像识别推理方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114445687B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987511A (zh) * | 2023-03-07 | 2023-04-18 | 北京数牍科技有限公司 | 图像推理方法、装置、电子设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105869117A (zh) * | 2016-03-28 | 2016-08-17 | 上海交通大学 | 一种针对深度学习超分辨率技术的gpu加速方法 |
US20160342888A1 (en) * | 2015-05-20 | 2016-11-24 | Nec Laboratories America, Inc. | Memory efficiency for convolutional neural networks operating on graphics processing units |
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112488296A (zh) * | 2020-11-25 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
CN112633470A (zh) * | 2020-12-11 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 优化神经网络卷积残差结构的方法、系统、设备及介质 |
-
2021
- 2021-12-31 CN CN202111677231.2A patent/CN114445687B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160342888A1 (en) * | 2015-05-20 | 2016-11-24 | Nec Laboratories America, Inc. | Memory efficiency for convolutional neural networks operating on graphics processing units |
CN105869117A (zh) * | 2016-03-28 | 2016-08-17 | 上海交通大学 | 一种针对深度学习超分辨率技术的gpu加速方法 |
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112488296A (zh) * | 2020-11-25 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
CN112633470A (zh) * | 2020-12-11 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 优化神经网络卷积残差结构的方法、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
董晓;刘雷;李晶;冯晓兵;: "面向稀疏卷积神经网络的GPU性能优化方法", 软件学报, no. 09, pages 1 - 22 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987511A (zh) * | 2023-03-07 | 2023-04-18 | 北京数牍科技有限公司 | 图像推理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114445687B (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111667051B (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
US20220391678A1 (en) | Neural network model processing method and apparatus, computer device, and storage medium | |
CN108416327A (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
CN109993285A (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN110555700B (zh) | 区块链智能合约执行方法、装置、计算机可读存储介质 | |
CN111539526B (zh) | 一种神经网络卷积的方法和设备 | |
CN105739951B (zh) | 一种基于gpu的l1最小化问题快速求解方法 | |
CN117785480B (zh) | 处理器、归约计算方法及电子设备 | |
KR20210045225A (ko) | 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치 | |
CN109117940A (zh) | 一种卷积神经网络前向加速方法、装置及系统 | |
CN114445687A (zh) | 一种图像识别推理方法、系统、存储介质及设备 | |
CN112633470A (zh) | 优化神经网络卷积残差结构的方法、系统、设备及介质 | |
CN118193410A (zh) | 一种内存搬运算子的执行方法、设备及存储介质 | |
US20230306236A1 (en) | Device and method for executing lstm neural network operation | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN117196015A (zh) | 算子执行方法、装置、电子设备及存储介质 | |
CN115480919A (zh) | 卷积优化运算方法、装置、计算机设备及存储介质 | |
CN109800705A (zh) | 加速人脸检测速率的方法及装置 | |
CN116187387A (zh) | 神经网络模型量化方法、装置、计算机设备和存储介质 | |
Li et al. | Fpga-based object detection acceleration architecture design | |
CN115829000A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114037054A (zh) | 一种数据处理方法、装置、芯片、设备及介质 | |
CN118394919B (zh) | 生成式对话模型推理方法、设备、介质及计算机程序产品 | |
KR20210014897A (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN118503205B (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 |