CN110516793B - 一种池化处理方法及装置、存储介质 - Google Patents

一种池化处理方法及装置、存储介质 Download PDF

Info

Publication number
CN110516793B
CN110516793B CN201910797622.4A CN201910797622A CN110516793B CN 110516793 B CN110516793 B CN 110516793B CN 201910797622 A CN201910797622 A CN 201910797622A CN 110516793 B CN110516793 B CN 110516793B
Authority
CN
China
Prior art keywords
data
memory addresses
pooling
pooled
groups
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.)
Active
Application number
CN201910797622.4A
Other languages
English (en)
Other versions
CN110516793A (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910797622.4A priority Critical patent/CN110516793B/zh
Publication of CN110516793A publication Critical patent/CN110516793A/zh
Priority to PCT/CN2020/111277 priority patent/WO2021037042A1/zh
Application granted granted Critical
Publication of CN110516793B publication Critical patent/CN110516793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Input (AREA)

Abstract

本申请实施例提供了一种池化处理方法及装置、存储介质,包括:在待池化图片的目标通道中获取多个内存地址,多个内存地址的个数与池化窗口的边长相同;对多个内存地址依次进行交叉存取,确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据,多个内存地址中的一个内存地址对应一组内存地址,多组数据中的一组数据的个数由存储单元的位宽确定;将多组数据划分为多个通道对应的多组待池化数据,多个通道包括目标通道,多个通道中的一个通道对应一组待池化数据;按照池化窗口,对多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。

Description

一种池化处理方法及装置、存储介质
技术领域
本申请涉及图像处理领域,尤其涉及一种池化处理方法及装置、存储介质。
背景技术
近几年来,作为具有自组织、自学习和联想功能的神经网络已成功地应用于图像处理的许多方面,如图像压缩、图像分割、边缘检测、图像增强、图像识别等,而池化是神经网络中一个不可或缺的操作,由于图像具有“静态型”的属性,即在一个图像区域的特征极有可能在另一个区域同样适用,故可以通过对不同位置的特征进行聚合统计的池化方式来描述一幅图像,该池化方式可以包括计算一个图像区域中某个特征的平均值或者最大值,采用这种池化方式可以保留有用信息而去除冗余信息,有利于后续提取有效信息。
目前神经网络中内存布局主要有NCHW和NHWC两种。对于NCHW格式,其内存布局示例性的为(RRRR GGGG BBBB),在对NCHW进行池化操作时,由于其内存布局连续,多采用“滑窗法”,而NHWC格式其内存布局示例性的为(RGB RGB RGB RGB),可以看出其多通道内存不连续,无法采用“滑窗法”,需要对每个待比较的值先计算其内存地址,故,对NHWC进行池化操作时需要间隔获取内存,进而导致内存的高速缓冲存储器cache的命中率降低,池化速度降低。
发明内容
本申请实施例提供一种池化处理方法及装置、存储介质,能够提高池化速度。
本申请的技术方案是这样实现的:
本申请实施例提供一种池化处理方法,所述方法包括:
在待池化图片的目标通道中获取多个内存地址,所述多个内存地址的个数与池化窗口的边长相同,其中,所述待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;
对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,并从所述多组内存地址中获取多组数据,所述多个内存地址中的一个内存地址对应一组内存地址,所述多组数据中的一组数据的个数由存储单元的位宽确定;
将所述多组数据划分为多个通道对应的多组待池化数据,所述多个通道包括所述目标通道,所述多个通道中的一个通道对应一组待池化数据;
按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
在上述方法中,所述对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,包括:
根据所述存储单元的位宽和内存地址中数据的位宽,依次确定出所述多个内存地址中第一内存地址对应的一组内存地址的第一数量;
使用单指令多数据流指令NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址;
根据所述多个内存地址对应的多个一组第一数量的数据,确定出所述多组内存地址。
在上述方法中,所述将所述多组数据划分为多个通道对应的多组待池化数据之后,所述方法还包括:
将所述多个通道对应的所述多组待池化数据分别存储至多个存储单元中,所述多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
在上述方法中,所述按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理,包括:
按照所述池化窗口的尺寸,从所述一组待池化数据中确定出目标池化数据;
对所述目标池化数据进行相应的池化处理。
在上述方法中,所述池化窗口的尺寸小于或者等于所述存储单元存储内存地址的存储容量。
本申请实施例提供一种池化处理装置,所述装置包括:
获取单元,用于在待池化图片的目标通道中获取多个内存地址,所述多个内存地址的个数与池化窗口的边长相同,其中,所述待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;
交叉存取单元,用于对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,并从所述多组内存地址中获取多组数据,所述多个内存地址中的一个内存地址对应一组内存地址,所述多组数据中的一组数据的个数由存储单元的位宽确定;
划分单元,用于将所述多组数据划分为多个通道对应的多组待池化数据,所述多个通道包括所述目标通道,所述多个通道中的一个通道对应一组待池化数据;
池化单元,用于按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
在上述装置中,所述装置还包括:确定单元;
所述确定单元,用于根据所述存储单元的位宽和内存地址中数据的位宽,依次确定出所述多个内存地址中第一内存地址对应的一组内存地址的第一数量;根据所述多个内存地址对应的多个一组第一数量的数据,确定出所述多组内存地址;
所述交叉存取单元,还用于使用单指令多数据流指令NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址。
在上述装置中,所述装置还包括:存储单元;
所述存储单元,用于将所述多个通道对应的所述多组待池化数据分别存储至多个存储单元中,所述多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
在上述装置中,所述确定单元,还用于按照所述池化窗口的尺寸,从所述一组待池化数据中确定出目标池化数据;
所述池化单元,还用于对所述目标池化数据进行相应的池化处理。
在上述装置中,所述池化窗口的尺寸小于或者等于所述存储单元存储内存地址的存储容量。
本申请实施例提供一种池化处理装置,所述池化处理装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如上述任一项所述的方法。
本申请实施例提供一种存储介质,其上存储有计算机程序,应用于池化处理装置,该计算机程序被处理器执行时实现如上述任一项所述的方法。
本申请实施例提供了一种池化处理方法及装置、存储介质,该方法包括:在待池化图片的目标通道中获取多个内存地址,多个内存地址的个数与池化窗口的边长相同,其中,待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;对多个内存地址依次进行交叉存取,确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据,多个内存地址中的一个内存地址对应一组内存地址,多组数据中的一组数据的个数由存储单元的位宽确定;将多组数据划分为多个通道对应的多组待池化数据,多个通道包括目标通道,多个通道中的一个通道对应一组待池化数据;按照池化窗口,对多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。采用上述实现方案,采用交叉存取的方式对多个内存地址进行读取,得到多组内存地址,之后,将多组内存地址中的多数据划分为多个通道对应的多组待池化数据,一次交叉存取就能获取一个池化所需的待池化数据,进而提高了内存cache的命中率和池化速度。
附图说明
图1为本申请实施例提供的一种池化处理方法的流程图一;
图2为本申请实施例提供的一种示例性的获取R通道中第一列三个内存地址的示意图;
图3为本申请实施例提供的一种示例性的对A1进行交叉存取的示意图;
图4为本申请实施例提供的一种示例性的对A1、A2、A3进行交叉存取的示意图;
图5为本申请实施例提供的一种示例性的对R通道的3×4的12个数值进行最大处理处理的示意图;
图6为本申请实施例提供的一种示例性的将第4位的数值设置为最小值的示意图;
图7为本申请实施例提供的一种池化处理装置的结构示意图一;
图8为本申请实施例提供的一种池化处理装置的结构示意图二。
具体实施方式
应当理解,此处描述的具体实施例仅仅用以解释本申请。并不用于限定本申请。
以池化窗口尺寸为3×3、颜色通道为RGB三个颜色通道为例,对现有的对内存布局为NHWC图片进行池化的过程为:从R通道的第一列中确定出第一行A1、第二行A2和第三行A3的内存地址,之后,将A1的内存地址加3、将A1的内存地址加6确定出R通道中与A1同行的两个内存地址;将A2的内存地址加3、将A2的内存地址加6确定出R通道中与A2同行的两个内存地址;将A3的内存地址加3、将A3的内存地址加6确定出R通道中与A3同行的两个内存地址,此时,在R通道得到一个3×3的内存地址窗口,分别从3×3的内存地址窗口中获取对应区域的3×3的数据,并对该3×3的数据进行最大池化或者平均池化操作,上述过程对于G通道和B通道同样适用。现有的对一个颜色通道进行池化的过程涉及到对每一个数据的地址计算,导致池化速度非常慢,由此提出了本申请的方案,以下对本申请的方案进行详述。
实施例一
本申请实施例提供一种池化处理方法,如图1所示,该方法可以包括:
S101、在待池化图片的目标通道中获取多个内存地址,多个内存地址的个数与池化窗口的边长相同,其中,待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度。
本申请实施例提供的一种池化处理方法适用于池化处理装置对图片进行池化处理的场景下。
本申请实施例中,将待池化图片按照NHWC维度的内存布局进行存储,当需要对待池化图片进行池化处理时,池化处理装置根据池化窗口的边长,确定出需获取的多个内存地址的数量。
示例性的,当预设窗口为3×3时,池化处理装置确定出在待池化图片的目标通道中获取3个内存地址。
本申请实施例中,目标通道包括R通道、G通道、B通道或者其他的颜色通道,具体的根据实际情况进行选择,本申请实施例不做具体的限定,在实际应用中为R通道。
示例性的,如图2所示,待池化图片包括R通道、G通道和B通道三个颜色通道的数据,池化处理装置需要利用池化窗口为3×3对待池化图片进行池化操作,此时,池化处理装置在R颜色通道上,从右上角开始框定池化窗口大小的数据,并获取池化窗口第一列三个内存地址A1、A2和A3。
本申请实施例中,设利用3×3的池化窗口进行池化操作,且多个内存地址为A1、A2和A3,池化处理装置利用公式(1)获取A1的内存地址、利用公式(2)获取A2的内存地址、利用公式(3)获取A3的内存地址。
A1=T+2*channelNums (1)
A2=T+(kernelWidth+2)*channelNums (2)
A3=T+(kernelWidth+kernelWidth+2)*channelNums (3)
其中,kernelWidth为池化窗口的宽度,取值为3;channelNums为通道数量,取值为3;T为起始地址。
S102、对多个内存地址依次进行交叉存取,确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据,多个内存地址中的一个内存地址对应一组内存地址,多组数据中的一组数据的个数由存储单元的位宽确定。
当池化处理装置在待池化图片的目标通道中分别获取到多个内存地址之后,池化处理装置对多个内存地址依次进行交叉存取,确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据。
本申请实施例中,池化处理装置根据存储单元的位宽和内存地址中数据的位宽,依次确定出多个内存地址中第一内存地址对应的一组内存地址的第一数量;使用单指令多数据流SIMD扩展结构NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址;根据多个内存地址对应的多个一组第一数量的数据,确定出多组内存地址。
本申请实施例中,存储单元为寄存器。
本申请实施例中,池化处理装置根据寄存器的位宽和内存地址中数据的位宽,确定出寄存器一次存储内存地址中的数据的第一数量,池化处理装置将根据第一内存地址交叉读取到的一个通道的一组内存地址中的一组数据存储至一个寄存器中,由此,对应RGB三个通道而言,需要三个寄存器分别存放根据第一内存地址交叉读取到的三个通道的三组数据。
示例性的,当使用128位寄存器时,确定出参与运算的数据为32位浮点数,利用寄存器的位宽除以内存地址中数据的位宽,即128除以32,得到寄存器一次存储4个内存地址中的数据。
本申请实施例中,池化处理装置使用NEON指令的交叉存取vld3q_f32交叉读取第一内存地址在多个通道中的一组内存地址,并从一组内存地址中获取一组数据。
S103、将多组数据划分为多个通道对应的多组待池化数据,多个通道包括目标通道,多个通道中的一个通道对应一组待池化数据。
当池化处理装置确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据之后,池化处理装置将多组数据划分为多个通道对应的多组待池化数据。
本申请实施例中,由于池化处理装置对多个内存地址交叉存取得到的多组数据为多个通道中的数据,故,池化处理装置按照多个通道,依次将多组数据中的一组数据划分为一组待池化数据。
示例性的,如图3所示,池化处理装置在确定出A1的内存地址时,池化处理装置利用NEON指令的交叉存取vld3q_f32读取RGB通道中第一行从左到右四个数据,并将R通道中的四个数据存储在R1寄存器中,即R1(1,1,1,1),将G通道的四个数据存储在R2寄存器中,即R2(2,2,2,2),将B通道中的四个数据存储在R3寄存器中,即R3(3,3,3,3);其中,当A1的内存地址为0时,对于NHWC格式交叉读取的12个数值在内存中的地址排布为{0,1,2,3,4,5,6,7,8,9,10,11},对应的12个数值的排布顺序为{1,2,3,1,2,3,1,2,3,1,2,3}。所以R1寄存器四个数值的地址分别为:{0,3,6,9},R2寄存器四个数值为{1,4,7,10},R3寄存器四个数值为{2,5,8,11}。
进一步地,在池化处理装置将多组数据划分为多个通道对应的多组待池化数据之后,池化处理装置将多个通道对应的多组待池化数据分别存储至多个存储单元中,多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
需要说明的是,对于寄存器而言,可以存储内存地址、或者存储内存地址中的具体数据,具体的根据实际情况进行选择,本申请实施例不做具体的限定。
示例性的,如图4所示,对A1、A2和A3三个内存地址分别进行交叉存取,得到RGB通道对应的12*3个数值。
S104、按照池化窗口,对多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
当池化处理装置将多组数据划分为多个通道对应的多组待池化数据之后,池化处理装置按照池化窗口,对多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
本申请实施例中,池化处理装置按照池化窗口的尺寸,从一组待池化数据中确定出目标池化数据;之后,池化处理装置对目标池化数据进行相应的池化处理,其中,池化处理包括最大池化处理和平均池化处理。
本申请实施例中,池化处理装置从一组待池化内存地址中,按照池化窗口的尺寸框定出目标池化数据,并对目标池化数据进行最大池化或者平均池化,将一组待池化数据中除目标池化数据外的数据进行剔除处理。
可选的,当对一组待池化内存地址进行最大池化处理时,将一组待池化数据中除目标池化数据外的数据设置为最小值,此时,求取最大值时过滤掉了一组待池化数据中除目标池化数据外的数据。
示例性的,如图5所示,对于R通道获取到的3×4的12个数值而言,其进行最大池化操作的池化窗口尺寸为3×3,池化处理装置将每一行第4位的数值设置为最小值,-max,如图6所示,之后对3×3的数值求取最大值vmaxq_f32,结果为5。
本申请实施例中,一个寄存器存储的是一个通道的内存地址中的数据,池化处理装置对每个寄存器中内存地址对应的数据进行池化处理,得到一个通道对应的池化结果。
本申请实施例中,池化窗口的尺寸小于或者等于存储单元存储内存地址的存储容量,由此才能得到一个大于或者等于池化窗口的池化数据,进而完成相应的池化操作。
可以理解的是,采用交叉存取的方式对多个内存地址进行读取,得到多组内存地址,之后,将多组内存地址中的多数据划分为多个通道对应的多组待池化数据,一次交叉存取就能获取一个池化所需的待池化数据,进而提高了内存cache的命中率和池化速度。
实施例二
本申请实施例提供一种池化处理装置1,如图7所示,该池化处理装置1可以包括:
获取单元10,用于在待池化图片的目标通道中获取多个内存地址,所述多个内存地址的个数与池化窗口的边长相同,其中,所述待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;
交叉存取单元11,用于对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,并从所述多组内存地址中获取多组数据,所述多个内存地址中的一个内存地址对应一组内存地址,所述多组数据中的一组数据的个数由存储单元的位宽确定;
划分单元12,用于将所述多组数据划分为多个通道对应的多组待池化数据,所述多个通道包括所述目标通道,所述多个通道中的一个通道对应一组待池化数据;
池化单元13,用于按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
可选的,所述装置还包括:确定单元14;
所述确定单元14,用于根据所述存储单元的位宽和内存地址中数据的位宽,依次确定出所述多个内存地址中第一内存地址对应的一组内存地址的第一数量;根据所述多个内存地址对应的多个一组第一数量的数据,确定出所述多组内存地址;
所述交叉存取单元11,还用于使用单指令多数据流指令NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址。
可选的,所述装置还包括:存储单元15;
所述存储单元15,用于将所述多个通道对应的所述多组待池化数据分别存储至多个存储单元中,所述多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
可选的,所述确定单元14,还用于按照所述池化窗口的尺寸,从所述一组待池化数据中确定出目标池化数据;
所述池化单元13,还用于对所述目标池化数据进行相应的池化处理。
可选的,所述池化窗口的尺寸小于或者等于所述存储单元存储内存地址的存储容量。
本申请实施例提供的一种池化处理装置,在待池化图片的目标通道中获取多个内存地址,多个内存地址的个数与池化窗口的边长相同,其中,待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;对多个内存地址依次进行交叉存取,确定出多个内存地址对应的多组内存地址,并从多组内存地址中获取多组数据,多个内存地址中的一个内存地址对应一组内存地址,多组数据中的一组数据的个数由存储单元的位宽确定;将多组数据划分为多个通道对应的多组待池化数据,多个通道包括目标通道,多个通道中的一个通道对应一组待池化数据;按照池化窗口,对多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。由此可见,本实施例提出的池化处理装置,采用交叉存取的方式对多个内存地址进行读取,得到多组内存地址,之后,将多组内存地址中的多数据划分为多个通道对应的多组待池化数据,一次交叉存取就能获取一个池化所需的待池化数据,进而提高了内存cache的命中率和池化速度。
图8为本申请实施例提供的一种池化处理装置1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图8所示,本实施例的池化处理装置1包括:处理器16、存储器17及通信总线18。
在具体的实施例的过程中,上述获取单元10、交叉存取单元11、划分单元12、池化单元13、确定单元14可由位于池化处理装置1上的处理器16实现,存储单元15可由位于池化处理装置1上的存储器17实现,上述处理器16可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理器(DSP,Digital Signal Processor)、数字信号处理池化处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑池化处理装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
在本申请实施例中,上述通信总线18用于实现处理器16和存储器17之间的连接通信;上述处理器16执行存储器17中存储的运行程序时实现如实施例一所述的池化处理方法。
本申请实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于池化处理装置中,该计算机程序实现如实施例一所述的池化处理方法。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (12)

1.一种池化处理方法,其特征在于,所述方法包括:
在待池化图片的目标通道中获取多个内存地址,所述多个内存地址的个数与池化窗口的边长相同,其中,所述待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;
对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,并从所述多组内存地址中获取多组数据,所述多个内存地址中的一个内存地址对应一组内存地址,所述多组数据中的一组数据的个数由存储单元的位宽确定;
将所述多组数据划分为多个通道对应的多组待池化数据,所述多个通道包括所述目标通道,所述多个通道中的一个通道对应一组待池化数据;
按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,包括:
根据所述存储单元的位宽和内存地址中数据的位宽,依次确定出所述多个内存地址中第一内存地址对应的一组内存地址的第一数量;
使用单指令、多数据流SIMD扩展结构NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址;
根据所述多个内存地址对应的多个一组第一数量的数据,确定出所述多组内存地址。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述多组数据划分为多个通道对应的多组待池化数据之后,所述方法还包括:
将所述多个通道对应的所述多组待池化数据分别存储至多个存储单元中,所述多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
4.根据权利要求1所述的方法,其特征在于,所述按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理,包括:
按照所述池化窗口的尺寸,从所述一组待池化数据中确定出目标池化数据;
对所述目标池化数据进行相应的池化处理。
5.根据权利要求1或4所述的方法,其特征在于,所述池化窗口的尺寸小于或者等于所述存储单元存储内存地址的存储容量。
6.一种池化处理装置,其特征在于,所述装置包括:
获取单元,用于在待池化图片的目标通道中获取多个内存地址,所述多个内存地址的个数与池化窗口的边长相同,其中,所述待池化图片按照NHWC布局类型进行内存布局,N为图片数量,C为通道数量,H为图片高度,W为图片宽度;
交叉存取单元,用于对所述多个内存地址依次进行交叉存取,确定出所述多个内存地址对应的多组内存地址,并从所述多组内存地址中获取多组数据,所述多个内存地址中的一个内存地址对应一组内存地址,所述多组数据中的一组数据的个数由存储单元的位宽确定;
划分单元,用于将所述多组数据划分为多个通道对应的多组待池化数据,所述多个通道包括所述目标通道,所述多个通道中的一个通道对应一组待池化数据;
池化单元,用于按照所述池化窗口,对所述多个通道中的任一通道对应的一组待池化数据进行相应的池化处理。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:确定单元;
所述确定单元,用于根据所述存储单元的位宽和内存地址中数据的位宽,依次确定出所述多个内存地址中第一内存地址对应的一组内存地址的第一数量;根据所述多个内存地址对应的多个一组第一数量的数据,确定出所述多组内存地址;
所述交叉存取单元,还用于使用NEON指令对第一内存地址进行交叉存取,得到一组第一数量的内存地址。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:存储单元;
所述存储单元,用于将所述多个通道对应的所述多组待池化数据分别存储至多个存储单元中,所述多个存储单元中的一个存储单元存储一个通道对应的一组待池化数据。
9.根据权利要求7所述的装置,其特征在于,
所述确定单元,还用于按照所述池化窗口的尺寸,从所述一组待池化数据中确定出目标池化数据;
所述池化单元,还用于对所述目标池化数据进行相应的池化处理。
10.根据权利要求6或9所述的装置,其特征在于,所述池化窗口的尺寸小于或者等于所述存储单元存储内存地址的存储容量。
11.一种池化处理装置,其特征在于,所述池化处理装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如权利要求1-5任一项所述的方法。
12.一种存储介质,其上存储有计算机程序,应用于池化处理装置,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法。
CN201910797622.4A 2019-08-27 2019-08-27 一种池化处理方法及装置、存储介质 Active CN110516793B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910797622.4A CN110516793B (zh) 2019-08-27 2019-08-27 一种池化处理方法及装置、存储介质
PCT/CN2020/111277 WO2021037042A1 (zh) 2019-08-27 2020-08-26 一种池化处理方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910797622.4A CN110516793B (zh) 2019-08-27 2019-08-27 一种池化处理方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN110516793A CN110516793A (zh) 2019-11-29
CN110516793B true CN110516793B (zh) 2022-06-17

Family

ID=68627315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910797622.4A Active CN110516793B (zh) 2019-08-27 2019-08-27 一种池化处理方法及装置、存储介质

Country Status (2)

Country Link
CN (1) CN110516793B (zh)
WO (1) WO2021037042A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516793B (zh) * 2019-08-27 2022-06-17 Oppo广东移动通信有限公司 一种池化处理方法及装置、存储介质
CN111506520B (zh) * 2020-07-01 2020-09-22 腾讯科技(深圳)有限公司 一种地址生成的方法、相关装置以及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996350B2 (en) * 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US10489703B2 (en) * 2015-05-20 2019-11-26 Nec Corporation Memory efficiency for convolutional neural networks operating on graphics processing units
US20170177352A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Lane-Based Strided Store Operations
US10338920B2 (en) * 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
TWI607389B (zh) * 2017-02-10 2017-12-01 耐能股份有限公司 卷積神經網路的池化運算裝置及方法
CN107506822B (zh) * 2017-07-26 2021-02-19 天津大学 一种基于空间融合池化的深度神经网络方法
CN109389215B (zh) * 2017-08-03 2020-07-31 杭州海康威视数字技术股份有限公司 一种深度学习网络的网络结构确定方法及装置
EP3651031A1 (en) * 2017-08-31 2020-05-13 Cambricon Technologies Corporation Limited Chip device and related products
CN109754359B (zh) * 2017-11-01 2021-12-07 腾讯科技(深圳)有限公司 一种应用于卷积神经网络的池化处理的方法及系统
US11061402B2 (en) * 2017-11-15 2021-07-13 Uatc, Llc Sparse convolutional neural networks
US10779186B2 (en) * 2017-12-01 2020-09-15 At&T Intellectual Property I, L.P. Dynamic access slice pooling and software defined network controlled capabilities
CN109165733A (zh) * 2018-07-11 2019-01-08 中国人民解放军国防科技大学 多输入多输出矩阵最大值池化向量化实现方法
CN110516793B (zh) * 2019-08-27 2022-06-17 Oppo广东移动通信有限公司 一种池化处理方法及装置、存储介质

Also Published As

Publication number Publication date
CN110516793A (zh) 2019-11-29
WO2021037042A1 (zh) 2021-03-04

Similar Documents

Publication Publication Date Title
CN109145158B (zh) 一种布隆过滤器中数据的处理方法以及布隆过滤器
JP5340088B2 (ja) 情報処理方法及び装置
CN109784372B (zh) 一种基于卷积神经网络的目标分类方法
CN110516793B (zh) 一种池化处理方法及装置、存储介质
CN108961170B (zh) 图像处理方法、装置和系统
CN107748723B (zh) 支持无冲突跨步按块访问的存储方法及访存装置
CN111091572B (zh) 一种图像处理方法、装置、电子设备及存储介质
US20200327638A1 (en) Connected component detection method, circuit, device and computer-readable storage medium
US11995890B2 (en) Method and apparatus for tensor processing
US10929965B2 (en) Histogram statistics circuit and multimedia processing system
EP3217289A2 (en) System and method for preventing cache contention
US20070022261A1 (en) Method of interleaving asymmetric memory arrays
CN114372928A (zh) 一种数据处理方法、装置及电子设备
US20070162647A1 (en) System and Method for Performing Scatter/Gather Direct Memory Access Transfers
CN111553847B (zh) 图像处理方法及装置
US11775809B2 (en) Image processing apparatus, imaging apparatus, image processing method, non-transitory computer-readable storage medium
US7966361B1 (en) Single-cycle modulus operation
CN102662864B (zh) 一种缺页异常的处理方法、装置及系统
CN111260559B (zh) 图像缩放显示方法、装置及终端设备
US12106029B2 (en) High-level synthesis device and high-level synthesis method
CN115049529A (zh) 一种图像梯度确定方法、装置、设备及存储介质
CN112817526A (zh) 一种数据存储方法、装置及介质
CN115665335B (zh) 图像处理方法、装置、图像形成设备及介质
CN114298888B (zh) 一种视频数据处理方法、装置、设备及可读存储介质
CN110941399A (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