WO2022135049A1 - 规约多维向量的方法、电子设备以及存储介质 - Google Patents

规约多维向量的方法、电子设备以及存储介质 Download PDF

Info

Publication number
WO2022135049A1
WO2022135049A1 PCT/CN2021/133658 CN2021133658W WO2022135049A1 WO 2022135049 A1 WO2022135049 A1 WO 2022135049A1 CN 2021133658 W CN2021133658 W CN 2021133658W WO 2022135049 A1 WO2022135049 A1 WO 2022135049A1
Authority
WO
WIPO (PCT)
Prior art keywords
axis
reduced
basic block
reduction
dimension
Prior art date
Application number
PCT/CN2021/133658
Other languages
English (en)
French (fr)
Inventor
王俊
Original Assignee
安徽寒武纪信息科技有限公司
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 安徽寒武纪信息科技有限公司 filed Critical 安徽寒武纪信息科技有限公司
Publication of WO2022135049A1 publication Critical patent/WO2022135049A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • 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/08Learning methods

Definitions

  • the general multi-axis reduction scheme has the following problems: for each temporary result of the single-axis reduction, a temporary space (workspace) needs to be opened for saving, which wastes memory space; and the temporary result is read from the workspace for the next reduction, which is a kind of repetition IO, which greatly affects the performance of the operator.
  • the present invention determines the axis to be reduced according to the dimension of the image vector, and calculates the size of the basic block corresponding to each axis to be reduced. Based on the basic block, the accumulation operation is performed on multiple axes to be reduced at the same time, and the reduction operation for multiple axes to be reduced is completed at one time. There is no generation of intermediate variables, which saves temporary space and avoids multiple IO operations in the middle.
  • the present invention converts various reduction operations on multi-dimensional vectors into one-time accumulation operations on multi-dimensional vector data, thereby improving operation efficiency.
  • FIG. 1 is a schematic structural diagram illustrating a board according to an embodiment of the present invention.
  • the board 10 also includes a storage device 104 for storing data, which includes one or more storage units 105 .
  • the storage device 104 is connected to the control device 106 and the chip 101 through a bus and performs data transmission.
  • the control device 106 in the board 10 is configured to control the state of the chip 101 .
  • the control device 106 may include a microcontroller (Micro Controller Unit, MCU).
  • Vector shape Describes the dimension of a vector.
  • shape of a two-dimensional vector is (2, 3), which means that the first and second dimensions of the two-dimensional vector are 2 and 3, respectively.
  • the two-dimensional vector is a vector with two rows and three columns.
  • Natural semantic processing is a task of analyzing words, sentences, semantics or information.
  • reduction is often used, and the reduction scenario is often multi-axis reduction.
  • the weightnorm operator is a commonly used operator. The function of this operator is to normalize the weight w of the convolution layer, and extract the direction vector v and size vector g of w. If the dimension of the input w is nchw, then the dimension of the output v is nchw, and the weights are normalized to compress the weights of each dimension into one dimension, and the c dimension represents the number of channels, excluding weights, so Without compressing the c dimension, the final dimension of g is 1c11.
  • the process of calculating g includes the process of multi-axis reduction, and at the same time, the n-axis, h-axis, and w-axis are reduced.
  • Step 403 Divide the reduction group into a first basic block and a second basic block based on the axis to be reduced, wherein the first basic block includes all dimensions of the image vector before the axis to be reduced, and the second basic block.
  • a block includes all of the dimensions of the image vector following the axis to be reduced.
  • Step 406 Perform an accumulation operation on at least one first basic block and at least one second basic block to obtain a reduction result of the image vector.
  • the label (2) is another part in parallel with the label (1), and the accumulation process is exactly the same.
  • Step 606 Update the fusion axis to the first axis to be reduced in the reduction group; wherein the dividing step is performed according to the updated first axis to be reduced.
  • fusion refers to the product obtained by multiplying two dimensions.
  • the latter dimension and the former dimension are of the same type of dimension.
  • the same type refers to the dimension to be reduced or the dimension not to be reduced.
  • fusion refers to converting multiple axes to be reduced or unreduced into one axis to be reduced or unreduced in the form of a product.
  • the dimensions corresponding to the consecutive axes to be reduced or the axes to be reduced are multiplied to obtain a new
  • the updated dimension 802 is obtained for the to-be-reduced axis or the new non-reduced axis.
  • Step 701 Set the dimension of the image vector as a reduction group. This step is the same as step 401 in FIG. 4 .
  • the update dimension 803 of the image vector in FIG. 8 is (D0, A0, D1, A1, D2, A2, D3, A3, D4), and this dimension is set as the reduction group.
  • Step 704 Determine whether there is an axis to be reduced in the second basic block. This step is the same as step 404 in FIG. 4 . If there is an axis to be reduced in the second basic block, step 705 is executed.
  • Step 706 This step is the same as step 406 in FIG. 4 .
  • the accumulation operation is performed on at least one first basic block and at least one second basic block, and a reduction result of the image vector has been obtained.
  • step 705 is executed to update the reduction group with all dimensions in the second basic block, and the updated reduction group is (D1, A1, D2, A2, D3, A3, D4).
  • Steps 702-704 are repeatedly executed to determine that the first axis to be reduced in the reduction group is A1, and based on the axis to be reduced, the reduction group is divided into a first basic block (D0, A0, D1) and a second basic block (D2, A2, D3, A3, D4).
  • the setting unit 901 is configured to set the reduction dimension of the image vector as a reduction group.
  • the dimension of the image vector is described by the shape of the image, and the dimension of the vector is set as a reduction group according to the shape of the image vector.
  • the software product may be stored in a memory, which may include several instructions to cause a computer device (eg, a personal computer, a server or network equipment, etc.) to execute some or all of the steps of the method described in the embodiments of the present invention.
  • the aforementioned memory may include, but is not limited to, a U disk, a flash disk, a read-only memory (Read Only Memory, ROM), a random access memory (Random Access Memory, RAM), a mobile hard disk, a magnetic disk, or a CD, etc. that can store programs. medium of code.
  • the hardware information of the cloud device and the hardware information of the terminal device and/or the edge device are compatible with each other, so that the hardware resources of the cloud device can be obtained from the hardware information of the terminal device and/or the edge device according to the hardware information of the terminal device and/or the edge device. Matching appropriate hardware resources to simulate the hardware resources of terminal devices and/or edge devices, so as to complete the unified management, scheduling and collaborative work of device-cloud integration or cloud-edge-device integration.
  • Item A9 The method according to any one of Items A1-A8, wherein the accumulative operation includes one of accumulative sum, mean value, product, maximum value and minimum value.
  • Clause A17 The apparatus of Clause A12, wherein the computing unit is further configured to multiply the irregular dimensions in the first fundamental block in each second fundamental block to obtain first data; and based on the first The value of the data divides the accumulation operation into parts of a certain size, wherein the parts are accumulated in parallel.

Landscapes

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

Abstract

本发明涉及规约多维图像向量的电子设备、方法及可读存储介质,其中本发明的处理装置包括在集成电路装置中,该集成电路装置包括通用互联接口和计算装置。计算装置与处理装置进行交互,共同完成用户指定的计算操作。集成电路装置还可以包括存储装置,存储装置分别与计算装置和处理装置连接,用于计算装置和处理装置的数据存储。

Description

规约多维向量的方法、电子设备以及存储介质
相关申请的交叉引用
本申请要求于2020年12月24日申请的,申请号为2020115515769,名称为“规约多维向量的方法、电子设备以及存储介质”的中国专利申请的优先权。
技术领域
本发明一般地涉及神经网络领域。更具体地,本发明涉及一种规约多维图像向量的方法、电子设备以及可读存储介质。
背景技术
在对图像向量进行处理中,往往用到规约来对图像向量的维度进行压缩。而在多轴规约的场景中,通用的多轴规约会转化成单轴规约,通过循环单轴规约完成多轴规约的计算。通用的多轴规约方案存在以下问题:对于每次单轴规约的临时结果需要开辟一个临时空间(workspace)进行保存,浪费内存空间;以及从workspace读取临时结果进行下一次规约,是一种重复IO,十分影响算子的性能。
针对非连续的多轴规约,TensorFlow框架的方案是:先对输入向量(tensor)做转置(transpose)操作,将所有要进行规约的维度转到tensor的低维度当中,再统一对tensor的低维度进行规约。这个方案的缺陷也有两点:需要配置转置算子,转置算子会产生计算耗时和IO耗时;转置的计算结果也需要开辟一个workspace作为临时空间保存中间结果,额外占用内存空间。
由此可见,无论是哪种现行方案都不理想。为了解决上述问题,本发明提出了一种针对多维向量的多轴规约的方案。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本发明的方案提供了一种规约多维图像向量的方法、可读存储介质及电子设备。
在一个方面中,本发明揭露一种规约多维图像向量的方法,所述方法包括:设定所述图像向量的维度为规约群;依特定顺序在所述规约群中确定第一个待规约轴;基于所述待规约轴,将所述规约群划分为第一基础块和第二基础块,其中,所述第一基础块包括所述图像向量的维度中,在所述待规约轴之前的所有维度,所述第二基础块包括所述图像向量的维度中,在所述待规约轴之后的所有维度;判断所述第二基础块中是否存在待规约轴;如存在,执行下列步骤:以所述第二基础块内的所有维度更新所述规约群;以及执行所述确定、划分、判断步骤,直至所述第二基础块不存在待规约轴;以及对所述至少一个第一基础块与所述至少一个第二基础块进行累计运算,以得到所述图像向量的规约结果。
在另一个方面,本发明揭露一种电子设备,包括:处理器;用于存储可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述的方法。
在另一个方面,本发明揭露一种计算机可读存储介质,其上存储有规约多维图像向量的计算机程序指令,所述计算机程序指令被服务器执行时实现上述的方法。
本发明根据图像向量的维度确定待规约轴,计算每个待规约轴对应的基础块大小。以 基础块为基础,同时对多个待规约轴进行累计操作,一次性完成对多个待规约轴的规约操作。没有中间变量的产生,省下临时空间,同时也避免了中间的多次IO操作。本发明将对多维向量的多种规约操作转化成对多维向量数据的一次性累加操作,提高运算效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出本发明实施例的板卡的结构示意图;
图2是示出本发明实施例的集成电路装置的结构图;
图3是示出本发明实施例的多轴规约的示意图;
图4是示出本发明实施例的方法流程图;
图5是示出本发明实施例的示意图;
图6是示出本发明实施例的方法流程图;
图7是示出本发明实施例的方法流程图;
图8是示出本发明实施例的示意图;以及
图9是示出本发明实施例的装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,本发明的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本发明的具体实施方式。
图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输 入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和大量的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和DRAM 204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
在神经网络运算中,很多算子都有规约功能,比如layernorm、batchnorm、groupnorm、weightnorm、normalize等归一化类别的算子,这类算子的内部实现当中需要进行规约计算。图片视频处理属于计算机视觉领域,这些任务是神经网络运算的主要应用场景,会使用到大量归一化类别的算子。而语音识别和自然语言处理这类别的任务,大多基于transform bert网络,更是直接大量的用到规约算子。transform bert网络是一种完全利用attention机制来解决自然语言翻译问题,而attention机制是模仿人类注意力而提出的一种解决问题的办法,简单地说就是从大量信息中快速筛选出高价值信息,用于解决带有时序的模型(例如LSTM/RNN模型)输入序列较长的时候很难获得最终合理的向量表示问题,做法是保 留该模型的中间结果,用新的模型对其进行学习,并将其与输出进行关联,从而达到信息筛选的目的。神经网络通过执行这些算子,完成对图片、语音、视频等的处理。
以下对向量(tensor)规约操作的几个基本概念进行说明。
向量规约:通过计算对向量中待规约轴对应的维度化为成一。规约的本质是维度压缩,但是压缩的方式有很多种:求和、求均值、求积、求最大值等。最常见的是求和。
向量形状(shape):描述向量的维度。例如一个二维向量的形状为(2,3),代表该二维向量的第一维度和第二维度分别为2和3。通俗地讲,该二维向量是一个两行三列的向量。
规约轴(axis):标识向量中需要做规约的维度。维度和轴是对向量维度的不同表示方法。例如,axis=0,代表对向量的第一个维度进行规约。
本实施例以最常见的四维tensor来解释以上几个概念。四维tensor的形状可以描述为nchw,代表特征图的数据格式包括n、c、h、w维度,其中n代表批处理(batch)、h代表高度(height)、w代表宽度(width)、c代表通道(channel)。以图像数据为例,n表示这批图像共有几张,h表示图像在竖直方向有多少像素,w表示水平方向像素数,c表示通道数(例如黑白图像的通道数c为1,而RGB彩色图像的通道数c为3)。该形状与维度相对应,如果以nchw的顺序排列,n维度又可以称为0维(0轴),如果在n维度做规约,就可以说在0轴做规约,代表将多批压缩为一批。同理,在c维度做规约,可以说成在1轴做规约,代表将多通道压缩为一个通道。在h维度做规约,可以说成在2轴做规约,代表将高度压缩为一。具体对哪一个维度做规约,主要根据具体的应用场景。
以一个二维tensor的图片以求和的方式进行规约为例,具体说明规约的过程,该过程应用于上述板卡10或组合装置20及其处理器。
假设一个二维图片向量,其形状为(2,3),代表该二维向量的第一维度和第二维度分别为2和3。该二维向量是一个两行三列的向量,假设该二维向量的具体数据为
Figure PCTCN2021133658-appb-000001
axis=0,表示处理器对该向量的第一个维度进行规约操作,将该图片向量的第一个维度压缩为一,即将shape(2,3)规约成(1,3)。具体来说,在0维度进行规约,将tensor在0维度的方向(列方向)进行累加,将两行变成一行。具体为1+4=5,2+5=7,3+6=9,结果为[5,7,9],形状从(2,3)变为(1,3)。规约后将两行三列的向量化成一行三列的向量。同理,假设axis=1,代表处理器对该二维tensor的第二个维度进行规约,变成一列。将shape(2,3)规约成(2,1),在行方向上进行累加,将行压缩为一列。即1+2+3=6,4+5+6=15,因此规约的结果就是
Figure PCTCN2021133658-appb-000002
再比如,对于一个5维tensor,其shape大小为(3,6,2,3,4),对其第3轴,即axis=2,进行规约,则规约后的维度为(3,6,1,3,4)。
由上述例子可知,规约就是对维度的压缩,可以减少存储空间。
自然语义处理是一种对词语、句子、语义或信息分析的任务,在自然语言处理任务中(NLP任务)中,经常会用到规约,且规约场景往往是多轴规约。例如在NLP任务中,weightnorm算子是一个较为常用的算子,该算子的功能就是对卷积层的权重w进行归一化,提取w的方向向量v和大小向量g。假如输入的w的维度是nchw,那么输出的v的维度为nchw,对权重进行归一化,则是将各个维度的权重均压缩为一维度,而c维度代表通道数,不包含权重,因此不对c维度进行压缩,最后得到g的维度则为1c11,此时计算g的过程就包含多轴规约的过程,同时对n轴,h轴,w轴做规约。
多轴规约指对多维向量中的多个维度进行规约操作。在单轴规约中,axis是一个数,而在多轴规约中axis是一个数组,该数组可能是两个数、三个数甚至更多个数。进一步,在对多个轴进行规约时,该多个轴可以是连续的,也可以是不连续的。比如,上述weightnorm算子的例子就为不连续规约。再比如对于一个5维tensor,其形状大小为(3,6,2,3,4)。对该5维tensor进行多轴规约,当axis=[1,2]时,其规约后的维度为(3,1,1,3,4),为连续的多轴规约;当axis=[1,3],其规约后的维度为(3,1,2,1,4),为不连续的多轴规约。
图3示出多轴规约的示意图。输入数据是一个五维向量,该向量的维度为(3,6,2,3,4),且axis=[1,3]进行规约。如图3所示,首先处理器将该五维向量加载到第一存储空间中,然后该处理器对存储在第一存储空间的五维向量的第二个维度,即axis=1的对应的维度进行规约操作,得到临时结果(3,1,2,3,4)。同时处理器开辟了一个第二存储空间,作为临时空间存储得到的临时结果(3,1,2,3,4)。接下来,处理器从第二存储空间中读取中间结果,再对axis=3的对应的维度进行规约,得到最终的规约结果(3,1,2,1,4),并将最终的规约结果存储在第一存储空间中覆盖原来五维向量。其中,上述第一存储空间和第二存储空间可以为板卡10中的存储器件104或组合装置20中的DRAM 204。处理器为组合装置中处理装置204。
综上所述,多轴规约方法是通过循环单轴规约完成的。每次规约完成得到的临时结果都需要开辟一个临时空间进行保存,浪费内存空间。且保存临时结果到临时空间,以及从临时空间读取数据进行下一次规约,是一种重复IO,影响算子的性能。
针对多轴规约的场景,本发明的一个实施例提出一种高效的多轴规约方法。该方法应用在上述板卡10或组合装置20上中的处理装置204。图4示出此方法的流程图。
步骤401、设定图像向量的维度为规约群。描述图像向量维度的是图像的形状,根据图像向量的形状将向量的维度设定为一个规约群。如图5示出本发明实施例的示意图,该实施例以5维tensor(2,3,2,3,6)为例,阶段501显示该向量存储在第一存储空间中,其形状大小为(2,3,2,3,6),设定该向量的维度为规约群,即规约群为(2,3,2,3,6)。
步骤402、依特定顺序在规约群中确定第一个待规约轴。待规约向量中包括一个或多个待规约轴,规约群中包括了该向量的所有维度,首先依特定顺序确定该规约群中的第一个待规约轴。所述特定顺序为正向或反向顺序。正向指的是按照规约群从左到右的顺序,反向则是按照规约轴从右到左的顺序。此外,特定顺序也可以从任一维度沿某个方向的顺序,本发明对此不作任何限定。
假设阶段501中的5维tensor的待规约轴axis=[1,3],代表该向量的待规约轴为第二个维度和第四个维度。若按照正向顺序在上述规约群中确定第一个待规约轴,则是按照从左向右的顺序,即第一个待规约轴是维度51。若按照反向顺序在上述规约群中确定第一个待规约轴,则是按照从右向左的顺序,第一个待规约轴是维度52。本实施例以反向为例进行说明,第一个待规约轴为维度52。
步骤403、基于待规约轴,将规约群划分为第一基础块和第二基础块,其中,第一基础块包括所述图像向量的维度中,在待规约轴之前的所有维度,第二基础块包括所述图像向量的维度中,在待规约轴之后的所有的维度。
以第一个待规约轴为中心,将规约群一分为二。划分的第一基础块或第二基础块中,包括0个、1个或多个维度。当规约群中第一个轴为待规约轴时,表示该待规约轴之前没有维度,那么在以待规约轴为中心对该规约群进行划分时,第一基础块就是空集合。同理, 当规约群中第一个待规约轴为待规约群中的最后一个轴时,该待规约轴之后没有维度,那么在以待规约轴为中心对该规约群进行划分时,第二基础块就是空集合。
本实施例中,待规约轴之前与之后是相对的,对于正向顺序来讲,待规约轴左边的维度为待规约轴之前,待规约轴右边的维度为待规约轴之后;而对于反向顺序来讲,待规约轴右边的维度为待规约轴之前,待规约轴左边的维度为待规约轴之后。
基于反向顺序,在确定第一个待规约轴为维度52后,阶段502根据第一个待规约轴对该规约群划分基础块。如阶段502所示,将规约群划分为第一基础块513和第二基础块523两部分,其中,第一基础块513包括(6)对应的维度,第而基础块513包括(2,3,2)对应的维度。
步骤404、判断第二基础块中是否存在待规约轴。
如果第二基础块中存在待规约轴,执行步骤405以第二基础块内的所有维度更新规约群,基于更新后的规约群,回到步骤402,执行步骤402-404,再对应划分出一个第一基础块和第二基础块,直至第二基础块不存在待规约轴。图像向量中有多少待规约维度就对应更新多少次规约群,生成多少第一基础块和第二基础块。
在图5中,根据阶段502可知第二基础块523为(2,3,2),由于axis=[1,3],因此第二基础块523(2,3,2)存在待规约轴,则以第二基础块523内所有的维度更新成规约群,更新后的规约群为(2,3,2)。重复上述确定步骤、划分步骤、判读步骤。此时规约群的第一个待规约轴为维度51,在阶段503中,根据第一个待规约轴将该向量划分为第一基础块533即(2,3,6)和第二基础块543即(2)。判断第二基础块543不存在待规约轴,接着执行步骤406。
步骤406、对至少一个第一基础块与至少一个第二基础块进行累计运算,以得到图像向量的规约结果。
由上述步骤405可知,向量中的每个待规约轴都对应一组第一基础块和第二基础块。当向量中只有一个待规约轴时,则生成一个第一基础块和一个第二基础块。当向量中存在多个待规约轴时,则生成多个第一基础块和第二基础块。
图5的例子生成了两个第一基础块和两个第二基础块,分别为第一基础块513和第二基础块523,以及第一基础块533和第二基础块543。根据生成的第一基础块513、533和第二基础块523、543进行累计运算,以得到图像向量的规约结果。其中,累计运算与规约的方式一一对应。若以求和方式对图像向量进行规约,则累计运算为累加运算,若以求乘积方式对图像向量进行规约,则累计运算为累乘运算。规约方式包括求和、求均值、求乘积、求最大值及求最小值的其中之一,对应的累计运算包括累计求和、求均值、求乘积、求最大值及求最小值的其中之一。
此实施例先找到所有待规约轴对应的基础块值和偏移量值,根据偏移量值一次性将所有的值从第一存储空间中取出计算,并将最终结果存回第一存储空间中,根据基础块和偏移量通过一步计算将(2,3,2,3,6)直接规约为(2,1,2,1,6),并将结果存储在第一存储空间中,不需要额外开辟一个中间存储空间。
如图5中的阶段504所示,具体过程为:
获得每个第一基础块的基础块值,所述基础块值为其第一基础块中所有不规约维度的乘积;再基于所述基础块值进行累计运算。回到图5对应的例子,根据该图像向量的待规约轴得到两个第一基础块513和533,第一基础块513对应的基础块值为6,第一基础块 533对应的基础块值为2×6=12。
进一步,此实施例会判断第一基础块是否为空。如第一基础块为空,将基础块值设为1。当规约群中第一个轴对应的维度是待规约维度,那么在根据此待规约维度划分第一基础块和第二基础块时,第一基础块为空,也就是不存在不规约的维度,在计算基础块值时,无法根据不规约维度的乘积计算,此时设定该基础块值为1。在图5的例子中没有为空的第一基础块。
在从图像向量中取数据的过程中,不仅需要知道取数据的大小,也就是基础块值,还需要知道从哪个位置去取数据。进一步,在进行累计运算的步骤中,还包括:计算偏移量,所述偏移量为第一基础块中所有维度的乘积;基于偏移量确定累计运算的数据地址;从所述数据地址中取出所述基础块值大小的数据,进行累计运算。
偏移量指存储单元中数据存储的实际地址与其所在存储单元的首地址之间的距离。根据该偏移量可以得到数据的地址,即首地址加偏移量即为该数据存储的实际地址。偏移量的大小根据第一基础块确定,第一基础块中所有维度的乘积即为偏移量的大小。并且,该偏移量与待规约轴、基础块值也是一一对应的。在累积运算过程中,多个待规约轴规约时,从对应偏移量的位置取对应基础块值大小的数据进运算。在图5的例子中,第一基础块513对应的偏移量为6,第一基础块533对应的偏移量为2×3×6=36。
在一个可选地实施例中,上述方法还包括:将每个第二基础块中的第一基础块中的不规约维度相乘,获得第一数据;以及基于第一数据的值将所述累计运算划分为特定大小的多个部分,其中,所述多个部分并行进行累计运算。
本发明的实施例中,根据待规约轴将规约群划分为三部分:第一基础块、待规约轴和第二基础块。这三部分可以抽象为一个三维向量,分别为第一维度、第二维度、第三维度。其中,待规约轴为第二维度,代表将该维度压缩为一维,待规约轴的值代表需要取几次数据进行计算才可以将该维度压缩为一个维度,例如待规约轴为3,表示该维度上有3个数据,则需要取三次数据进行计算才可以将3个数为1个数。第一基础块为第一维度,根据第一基础块得到基础块值。第一维度对应的值代表在第二维度中同一位置对应多少个数据参与计算。因为第二维度中同一位置对应的多个数据操作(累加,取数等)都是一样的,因此可以作为一个整体,这就是基础块值代表的意义。第二基础块则对应第三维度,可以理解为在第三维度上有多少组需要做规约的数据。其中,每组数据操作完全是相同的,可以并行操作。
按照上文中划分第一基础块和第二基础块的方式,以每个第二基础块为起点,找到该第二基础块相对应的第一基础块,该第一基础块中所有不规约维度的乘积即相当于上述三维向量的第三维度。
因此图5中,第一待规约轴维度52对应的基础块值、偏移量、并行次数分别为:6、6、2;第二待规约轴维度51对应的基础块值、偏移量、并行次数分别为:12、36、2。
具体累计过程见图5中阶段504:根据上述步骤可知,标号(1)和标号(2)对应的两部分为图5中的52和51对应的规约过程。每个小方块的值为一个基础块值,即是6个数。相邻两个小方块间相差一个小方块的存储距离,即是6,因此偏移量为一个小方块即是6。在仅对52进行累计运算时(本实施例为累加运算),取数据的地址分别为:a过程时,开始是在自身位置取第一个数据,地址为0*偏移量值6=0;b过程时是取第二个数据与取的第一个数据进行计算,第二个数据的地址,为1*偏移量值6=6;c过程时,取第三 个数据,第三个数据的地址是2*偏移量6=12。分别从上述三个地址取出基础块值6个数据的数据进行累加运算。标号(2)是与标号(1)并行的另一部分,累加过程完全一致。
同理,若仅对图5中51进行规约时,也就是把向量(2,3,2,3,6)的前面三个维度(2,3,6)看做一个整体D,对待规约向量(2,3,D)的第二个维度进行规约。由上面步骤分析得到基础块值为12个数,偏移量为36。除了上面计算的分析,对基础块值和偏移量值的计算还可以这样理解:在图阶段504中,标号(1)和标号(2)是图5中52对应的规约过程,标号(1)和标号(2)是并列运行,标号(1)的基础块为6个数,因此以标号(1)和标号(2)作为整体的基础块就是两组6个数,因此第二个待规约轴图5中51对应的基础块值是12个数。对于偏移量,第一次取数为首地址也就是标号(1)中的第一个数,而第二次取数在标号(3)的第一个数,中间隔了标号(1)和标号(2)包含的数,标号(1)和标号(2)的数在第一次规约的过程中已经被取走,因此,此时的偏移量为6*3*2=36,因此取数据的地址分别为:第一次在首地址取数,取数地址为0*36=0;在第二次的d过程中,取数地址为1*36=36;第三次为e过程,取数地址为2*36=72。分别从上述三个地址取出基础块值的个数(即12个数)的数据进行累加运算。
由上述分析可知,将每个第二基础块中的第一基础块中的不规约维度相乘,获得第一数据;基于所述第一数据的值将所述累计运算划分为特定大小的多个部分,其中,多个部分并行进行累计运算。因此,第二个待规约轴(维度51)对应的并行部分为2部分,这两部分执行完全一样的操作。因此还有另一部分可以并行完成和此部分完全一样的操作(另一部分未在图中表示出来)。
在计算过程中,处理器将每个待规约值对应的基础块值、偏移量、并列次数确定出来后,同时从其对应的不同位置取出对应的基础块值大小一次性进行累加运算,最后将累加结果存回第一存储空间中。不需要额外开辟一个中间存储空间,避免了空间浪费同时也避免了在计算过程中的I/O操作,提高了运算效率。
图6示出本发明另一个实施例的规约多维图像向量的方法流程图。
步骤601、设定图像向量的维度为规约群,同图4的步骤401。描述图像向量的维度的是图像的形状,将向量的维度设定为一个规约群。例如对于一个5维tensor,其形状大小为(3,6,2,3,4)。该向量对应的规约群为(3,6,2,3,4)。
步骤602、依特定顺序在规约群中确定第一个待规约轴,同图4的步骤402。待规约向量中包括一个或多个待规约轴,规约群中包括了该向量的所有维度,首先依特定顺序确定该规约群中的第一个待规约轴。其中,所述特定顺序为正向或反向顺序。正向代表按照规约群从左到右的顺序,反向则是按照规约轴从右到左的顺序。此外,特定顺序也可以从任一维度沿某个方向的顺序,本发明对此不作任何限定。
步骤603、基于待规约轴,将规约群划分为第一基础块和第二基础块,同图4的步骤403。其中,第一基础块包括所述图像向量的维度中,在待规约轴之前的所有维度,第二基础块包括所述图像向量的维度中,在待规约轴之后的所有的维度。
以第一个待规约轴为中心,将规约群一分为二。划分的第一基础块或第二基础块中,包括0个、1个或多个维度。当规约群中第一个轴为待规约轴时,该待规约之前没有维度,那么在以待规约轴为中心对该规约群进行划分时,第一基础块就是空集合。同理,当规约群中第一个待规约轴为待规约群中的最后一个轴时,该待规约之后没有维度,那么在以待规约轴为中心对该规约群进行划分时,第二基础块就是空集合。
步骤604、判断第二基础块的第一轴是否为待规约轴。由步骤602可知,划分的第二基础块可能包括0个、1个或多个维度。当第二基础块不为空时,第二基础块的维度可能包含待规约维度或不规约维度,且待规约轴和不规约轴的顺序是不确定的。如果第二基础块的第一轴为待规约轴,执行步骤605。
步骤605、融合所述规约群中的第一个待规约轴与所述第一轴。融合指的是将两个轴所在的值相乘,得到的乘积的值为融合后该轴对应的值。
步骤606、将融合轴更新为规约群中的第一个待规约轴;其中,根据更新后的第一个待规约轴执行划分步骤。其中,融合指的是两个维度相乘得到的乘积。
比如,步骤601中的5维tensor的维度大小为(3,6,2,3,4),其中,待规约轴axis=[1,2,3]。首先依照正向顺序确定该维度中第一个待规约轴,对应axis=1,对应向量中的第二个维度6。将该向量的维度划分为第一基础块(3)和的第二基础块(2,3,4)。接下来判断该第二基础块中的第一轴2是否为待规约轴,由于axis=[1,2,3],待规轴对应的待规约维度为第二、第三、第四维度,而第二基础块中的第一轴对应于五维tensor中的第三维度,正好是待规约轴。因此,融合所述规约群中的第一个待规约轴与所述第一轴,即将规约群中的第一个待规约轴对应的维度6与第一轴对应的维度2融合成一个维度6×2=12。然后用融合的轴更新规约群中的第一个待规约轴,此时的规约群中的第一个轴不再是6,而是融合后的结果12。此时向量的维度更新为(3,12,3,4)。根据更新后的向量的维度重新执行划分的步骤。更新后的规约群为(3,12,3,4),待规约轴变成axis=[1,2]。依正向顺序在规约群中确定第一个待规约轴为axis=1,对应向量的第二个维度。将该向量划分为第一基础块(3)和第二基础块(3,4),判断第二基础块的第一轴为不规约轴。
回到步骤604中,如果第二基础块的第一轴为不规约轴,执行步骤607,也就是执行图4中步骤404及之后的步骤,最终得到图像向量的规约结果。
图7示出本发明另一个实施例的规约多维图像向量的方法流程图。
步骤700、图像向量标准化。获取的图像向量可以是一个原始图片向量或经过优化处理后的图像向量。图像向量的维度包括待规约维度或不规约维度。在对图像向量进行规约处理之前,将该图像向量统一为标准的形式,以便在之后规约计算的时候更为方便。其中,标准的形式指的是图片向量的维度形式为待规约维度与不规约维度相间排列。具体图像向量标准的步骤为:
步骤710、判断图像向量的维度中是否存在连续的待规约轴或不规约轴。图像向量的标准形式是待规约轴与不规约轴相间排列。当遇到连续的待规约轴或连续的不规约轴时,需要将连续的待规约轴或连续的不规约轴处理为标准形式。在判断过程中,先找出图片向量的待规约轴和不规约轴,并标记不同的标记。该标记可以是数字,字母或其他,只要可以区分待规约轴与不规约轴即可,本发明对此不作任何限制。
进一步,在判断标记好的图片向量中是否有连续的相同的标记,若存在,则表示该图片向量存在连续的待规约轴或不规约轴。例如,一组图像向量的维度为(1,2,3,4,5,6,7,8,9,10,11,12),其中,axis=[2,4,5,6,8,10]。根据axis用不同的标记将该图像向量的维度进行标记,例如待规约轴用A表示,不规约轴用D表示,用数字角标区分每个轴代表的数据。则做完标记后,图8示出多轴规约的示意图,原始维度801为该图像向量的维度(D0,D1,A0,D2,A1,A2,A3,D3,A4,D4,A5,D5),其中A代表待规约轴,D代表不规约轴。由此,很容易判断有连续的A或连续的D,即存在连续的待规约轴或连续的不规约 轴。
可选地,在判断是否有连续的待规约轴或不规约轴时,还可以逐个判断后一个维度与前一个维度是否是同一类型的维度。同一类型指的是待规约维度或不规约维度。
步骤720、如果图像向量的维度中存在连续的待规约轴或不规约轴,融合该连续的待规约轴或不规约轴。
其中,融合指的是将多个待规约轴或不规约轴以乘积的形式转化为一个待规约轴或不规约轴。图8中根据判断结果(D0,D1,A0,D2,A1,A2,A3,D3,A4,D4,A5,D5),将连续的待规约轴或不规约轴对应的维度相乘得到新的待规约轴或新的不规约轴,得到更新维度802。
步骤730、根据融合结果更新维度。融合后维度相对于原来图像向量的维度会减少,用融合后的新的维度去更新融合前的图像向量维度,使得融合后的图像向量的维度为待规轴与不规约轴相间排列。图8中更新维度803为更新后的维度(D0,A0,D1,A1,D2,A2,D3,A3,D4),并设定此维度为规约群。
经过步骤700的处理后,待处理的图像向量转化成标准形式的图像向量。
步骤701、设定图像向量的维度为规约群,该步骤同图4步骤401。图8中图像向量的更新维度803为(D0,A0,D1,A1,D2,A2,D3,A3,D4),并设定此维度为规约群。
步骤702、依特定顺序在规约群中确定第一个待规约轴。该步骤同图4的步骤402,其中特定顺序指的是正向顺序或反向顺序。图8中更新维度804以正向顺序为例,第一个待规约轴为A0,即为图中带阴影的区域。
步骤703、基于待规约轴,将规约群划分为第一基础块和第二基础块。该步骤同图4的步骤403,其中,第一基础块包括所述图像向量的维度中,在待规约轴之前的所有维度,第二基础块包括所述图像向量的维度中,在待规约轴之后的所有的维度。图8中将所述规约群划分为第一基础块和第二基础块。如图8所示第一基础块为D0,第二基础块为(D1,A1,D2,A2,D3,A3,D4)。
步骤704、判断第二基础块中是否存在待规约轴。该步骤同图4步骤404,如果第二基础块中存在待规约轴,执行步骤705。
步骤705、该步骤同图4的步骤405,以第二基础块内的所有维度更新规约群,并回到步702,执行步骤702-704,直至所述第二基础块不存在待规约轴。否则执行步骤706。
步骤706、该步骤同图4的步骤406、对至少一个第一基础块与至少一个第二基础块进行累计运算,已得到图像向量的规约结果。
回到图8的例子中,第二基础块(D1,A1,D2,A2,D3,A3,D4)还存在待规约轴A1。因此执行步骤705,用第二基础块内的所有维度更新规约群,则更新后的规约群为(D1,A1,D2,A2,D3,A3,D4)。重复执行步骤702-704,确定规约群中的第一个待规约轴为A1,基于该待规约轴将规约群划分为第一基础块(D0,A0,D1)和第二基础块(D2,A2,D3,A3,D4)。第二基础块(D2,A2,D3,A3,D4)仍然存在待规约轴,用第二基础块内的所有维度更新规约群,则更新后的规约群为(D2,A2,D3,A3,D4)。重复执行步骤702-704,确定规约群中的第一个待规约轴为A2,基于该待规约轴将规约群划分为第一基础块(D0,A0,D1,A1,D2)和第二基础块(D3,A3,D4)。第二基础块(D3,A3,D4)仍然存在待规约轴,用第二基础块内的所有维度更新规约群,则更新后的规约群为(D3,A3,D4)。重复执行步骤702-704,确定规约群中的第一个待规约轴为A3,基于该待规约轴将规约群划分为第 一基础块(D0,A0,D1,A1,D2,A2,D3)和第二基础块(D4),此时第二基础块不存在待规约轴后,执行步骤706。如图8中基础块信息805显示每个待规约轴对应的基础块值、偏移量以及并列次数。
步骤706、对至少一个第一基础块与至少一个第二基础块进行累计运算,以得到图像向量的规约结果。分别找到每个待规约轴对应的基础块值,偏移量。根据偏移量找到数据的存储地址,从数据的存储地中取对应基础块值大小的数据进行累计运算,得到最后的规约结果806。该具体的累计运算步骤同上文的步骤406,对此不在赘述。
图9是示出一种多维向量规约的规约装置900,该装置900用于执行上述方法。该装置900包括设定单元901、确定单元902、划分单元903、判断单元904、更新单元905和计算单元906。
设定单元901用于设定所述图像向量的规约维度为规约群。描述图像向量维度的是图像的形状,根据图像向量的形状将向量的维度设定为一个规约群。
确定单元902用于依特定顺序在规约群中确定第一个待规约轴。待规约向量中包括一个或多个待规约轴,规约群中包括了该向量的所有维度,首先确定单元902依特定顺序确定该规约群中的第一个待规约轴。该特定顺序为正向或反向顺序。正向指的是按照规约群从左到右的顺序,反向则是按照规约轴从右到左的顺序。此外,特定顺序也可以从任一维度沿某个方向的顺序,本发明对此不作任何限定。
划分单元903用于基于待规约轴,将规约群划分为第一基础块和第二基础块,其中,第一基础块包括所述图像向量的维度中,在待规约轴之前的所有维度,第二基础块包括所述图像向量的维度中,在待规约轴之后的所有的维度。其中,待规约轴之前与之后是相对的,对于正向顺序来讲,待规约轴左边的维度为待规约轴之前,待规约轴右边的维度为待规约轴之后;而对于反向顺序来讲,待规约轴右边的维度为待规约轴之前,待规约轴左边的维度为待规约轴之后。
判断单元904用于判断第二基础块中是否存在待规约轴。如果第二基础块中存在待规约轴,则更新单元905以第二基础块内的所有维度更新规约群。根据更新后的规约群,设定单元901、确定单元902、划分单元903、判断单元904、更新单元905重新执行上述操作,直至第二基础块不存在待规约轴。
计算单元906用于对至少一个第一基础块与至少一个第二基础块进行累计运算,以得到图像向量的规约结果。向量中的每个待规约轴都对应一组第一基础块和第二基础块。当向量中只有一个待规约轴时,则生成一个第一基础块和一个第二基础块。当向量中存在多个待规约轴时,则生成多个第一基础块和第二基础块。
计算单元906还用于获得每个第一基础块的基础块值,基于该基础块值进行累计运算。其中,基础块值为第一基础块中所有不规约维度的乘积。
判断单元904还用于判断第一基础块是否为空,如果第一基础块为空,计算单元906将该第一基础块对应的基础块值设为1。
判断单元904还用于判断第二基础块的第一轴是否为待规约轴;装置900还包括融合单元907,如是,融合单元907用于融合该规约群中的第一个待规约轴与该第一轴,更新单元905用于将融合轴更新为规约群中的第一个待规约轴。划分单元903根据更新后的第一个待规约轴执行划分步骤。
计算单元906还用于计算偏移量,其中偏移量为所述第一基础块中所有维度的乘积; 计算单元基于所述偏移量确定累计运算的数据地址;从所述数据地址中取出所述基础块值大小的数据,进行累计运算。
计算单元906还用于将每个第二基础块中的第一基础块中的不规约维度相乘,获得第一数据;以及基于所述第一数据的值将所述累计运算划分为特定大小的多个部分,其中,所述多个部分并行进行累计运算。
本发明另一个实施例为一种计算机可读存储介质,其上存储有规约多维向量的计算机程序代码,当所述计算机程序代码由服务器运行时,服务器包括处理器和存储器,存储器中存有前述的计算机程序代码,处理器运行存储器中的计算机程序代码。在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本发明的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本发明实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据不同的应用场景,本发明的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本发明的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本发明的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本发明方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本发明将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本发明的方案并不受所描述的动作的顺序限制。因此,依据本发明的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本发明所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本发明某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本发明对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本发明某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本发明的公开和教导,本领域技术人员可以理解本发明所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本发明中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本发明实施例所述方案的目的。另外,在一些场景中,本发明实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款A1、一种规约多维图像向量的方法,其中,所述方法包括:设定所述图像向量的规约维度为规约群;依特定顺序在所述规约群中确定第一个待规约轴;基于所述待规约轴,将所述规约群划分为第一基础块和第二基础块,其中,所述第一基础块包括所述图像向量的规约维度中,在所述待规约轴之前的所有维度,所述第二基础块包括所述图像向量的规约维度中,在所述待规约轴之后的所有维度;判断所述第二基础块中是否存在待规约轴;如存在,执行下列步骤:以所述第二基础块内的所有维度更新所述规约群;以及执行所述确定、划分、判断步骤,直至所述第二基础块不存在待规约轴;以及对所述至少一个第一基础块与所述至少一个第二基础块进行累计运算,以得到所述图像向量的规约结果。
条款A2、根据条款A1所述的方法,所述累计运算步骤包括:获得每个第一基础块的基础块值,所述基础块值为所述第一基础块中所有不规约维度的乘积;基于所述基础块值进行累计运算。
条款A3、根据条款A2所述的方法,所述累计运算步骤还包括:判断所述第一基础块是否为空;以及如为空,将所述基础块值设为1。
条款A4、根据条款A1所述的方法,所述划分步骤包括:判断所述第二基础块的第一轴是否为待规约轴;如是,融合所述规约群中的第一个待规约轴与所述第一轴;将所述 融合轴更新为所述规约群中的第一个待规约轴;其中,根据更新后的第一个待规约轴执行划分步骤。
条款A5、根据条款A1所述的方法,所述方法还包括:判断所述图像向量的规约维度中是否存在连续的待规约轴或不规约轴;若是,融合所述连续的待规约轴或不规约轴;以及根据融合结果更新所述规约维度。
条款A6、根据条款A2所述的方法,所述累计运算步骤还包括:计算偏移量,所述偏移量为所述第一基础块中所有维度的乘积;基于所述偏移量确定累计运算的数据地址;从所述数据地址中取出所述基础块值大小的数据,进行累计运算。
条款A7、根据条款A4或A5所述的方法,所述累计运算步骤还包括:将每个第二基础块中的所述第一基础块中的不规约维度相乘,获得第一数据;以及基于所述第一数据的值将所述累计运算划分为特定大小的多个部分,其中,所述多个部分并行进行累计运算。
条款A8、根据条款A1所述的方法,所述特定顺序为正向或反向顺序。
条款A9、根据条款A1-A8任意一项所述的方法,所述累计运算包括累计求和、求均值、求乘积、求最大值及求最小值的其中之一。
条款A10、一种电子设备,包括:处理器;用于存储可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行条款A1至A9中任意一项所述的方法。
条款A11、一种计算机可读存储介质,其上存储有规约多维图像向量的计算机程序代码,当所述计算机程序代码由处理装置运行时,执行条款A1至A9任一项所述的方法。
条款A12、一种多维向量规约的规约装置,所述装置包括设定单元、确定单元、划分单元、判断单元、更新单元和计算单元;其中,所述设定单元用于设定所述图像向量的规约维度为规约群;所述确定单元用于依特定顺序在规约群中确定第一个待规约轴;所述划分单元用于基于待规约轴,将规约群划分为第一基础块和第二基础块,其中,第一基础块包括所述图像向量的维度中,在待规约轴之前的所有维度,第二基础块包括所述图像向量的维度中,在待规约轴之后的所有的维度;所述判断单元用于判断第二基础块中是否存在待规约轴,如果第二基础块中存在待规约轴,所述更新单元以第二基础块内的所有维度更新规约群;根据更新后的规约群,设定单元、确定单元、划分单元、判断单元、更新单元重新执行上述操作,直至第二基础块不存在待规约轴;所述计算单元用于对至少一个第一基础块与至少一个第二基础块进行累计运算,以得到图像向量的规约结果。
条款A13、根据条款A12所述的装置,所述计算单元还用于获得每个第一基础块的基础块值,基于所述基础块值进行累计运算;其中,所述基础块值为第一基础块中所有不规约维度的乘积。
条款A14、根据条款A13所述的装置,所述判断单元还用于判断第一基础块是否为空,如果所述第一基础块为空,所述计算单元还用于将所述第一基础块对应的基础块值设为1。
条款A15、根据条款A12所述的装置,所述判断单元还用于判断所述第二基础块的第一轴是否为待规约轴,所述装置还包括融合单元,如是,所述融合单元用于融合该规约群中的第一个待规约轴与该第一轴,所述更新单元用于将融合轴更新为规约群中的第一个待规约轴所述划分单元根据更新后的第一个待规约轴执行划分步骤。
条款A16、根据条款A12所述的装置,所述计算单元还用于计算偏移量,其中偏移 量为所述第一基础块中所有维度的乘积;所述计算单元基于所述偏移量确定累计运算的数据地址;从所述数据地址中取出所述基础块值大小的数据,进行累计运算。
条款A17、根据条款A12所述的装置,所述计算单元还用于将每个第二基础块中的第一基础块中的不规约维度相乘,获得第一数据;以及基于所述第一数据的值将所述累计运算划分为特定大小的多个部分,其中,所述多个部分并行进行累计运算。
条款A18、根据条款A12所述的装置,所述特定顺序为正向或反向顺序。
条款A19、根据条款A12-A18任意一项所述的装置,所述累计运算包括累计求和、求均值、求乘积、求最大值及求最小值的其中之一。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

  1. 一种规约多维图像向量的方法,其特征在于,所述方法包括:
    设定所述图像向量的规约维度为规约群;
    依特定顺序在所述规约群中确定第一个待规约轴;
    基于所述待规约轴,将所述规约群划分为第一基础块和第二基础块,其中,所述第一基础块包括所述图像向量的规约维度中,在所述待规约轴之前的所有维度,所述第二基础块包括所述图像向量的规约维度中,在所述待规约轴之后的所有维度;
    判断所述第二基础块中是否存在待规约轴;
    如存在,执行下列步骤:
    以所述第二基础块内的所有维度更新所述规约群;以及
    执行所述确定、划分、判断步骤,直至所述第二基础块不存在待规约轴;以及对所述至少一个第一基础块与所述至少一个第二基础块进行累计运算,以得到所述图像向量的规约结果。
  2. 根据权利要求1所述的方法,其特征在于,所述累计运算步骤包括:
    获得每个第一基础块的基础块值,所述基础块值为所述第一基础块中所有不规约维度的乘积;
    基于所述基础块值进行累计运算。
  3. 根据权利要求2所述的方法,其特征在于,所述累计运算步骤还包括:
    判断所述第一基础块是否为空;以及
    如为空,将所述基础块值设为1。
  4. 根据权利要求1所述的方法,其特征在于,所述划分步骤包括:
    判断所述第二基础块的第一轴是否为待规约轴;
    如是,融合所述规约群中的第一个待规约轴与所述第一轴;
    将所述融合轴更新为所述规约群中的第一个待规约轴;
    其中,根据更新后的第一个待规约轴执行划分步骤。
  5. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    判断所述图像向量的规约维度中是否存在连续的待规约轴或不规约轴;
    若是,融合所述连续的待规约轴或不规约轴;以及
    根据融合结果更新所述规约维度。
  6. 根据权利要求2所述的方法,其特征在于,所述累计运算步骤还包括:
    计算偏移量,所述偏移量为所述第一基础块中所有维度的乘积;
    基于所述偏移量确定累计运算的数据地址;
    从所述数据地址中取出所述基础块值大小的数据,进行累计运算。
  7. 根据权利要求4或5所述的方法,其特征在于,所述累计运算步骤还包括:
    将每个第二基础块中的所述第一基础块中的不规约维度相乘,获得第一数据;以及
    基于所述第一数据的值将所述累计运算划分为特定大小的多个部分,其中,所述多个部分并行进行累计运算。
  8. 根据权利要求1任意一项所述的方法,其特征在于,所述特定顺序为正向或反向顺序。
  9. 根据权利要求1-8任意一项所述的方法,其特征在于,所述累计运算包括累计求和、求均值、求乘积、求最大值及求最小值的其中之一。
  10. 一种电子设备,其特征在于,包括:
    处理器;
    用于存储可执行指令的存储器;
    其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至9中任意一项所述的方法。
  11. 一种计算机可读存储介质,其上存储有规约多维图像向量的计算机程序指令,其特征在于,所述计算机程序指令被服务器执行时实现权利要求1至9中任意一项所述的方法。
PCT/CN2021/133658 2020-12-24 2021-11-26 规约多维向量的方法、电子设备以及存储介质 WO2022135049A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011551576.9A CN114677549A (zh) 2020-12-24 2020-12-24 规约多维向量的方法、电子设备以及存储介质
CN202011551576.9 2020-12-24

Publications (1)

Publication Number Publication Date
WO2022135049A1 true WO2022135049A1 (zh) 2022-06-30

Family

ID=82071185

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/133658 WO2022135049A1 (zh) 2020-12-24 2021-11-26 规约多维向量的方法、电子设备以及存储介质

Country Status (2)

Country Link
CN (1) CN114677549A (zh)
WO (1) WO2022135049A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140219554A1 (en) * 2013-02-06 2014-08-07 Kabushiki Kaisha Toshiba Pattern recognition apparatus, method thereof, and program product therefor
CN110209503A (zh) * 2019-08-01 2019-09-06 上海燧原智能科技有限公司 多维张量的规约计算方法、装置、设备及介质
US20200364056A1 (en) * 2019-05-14 2020-11-19 International Business Machines Corporation Facilitating data processing using simd reduction operations across simd lanes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140219554A1 (en) * 2013-02-06 2014-08-07 Kabushiki Kaisha Toshiba Pattern recognition apparatus, method thereof, and program product therefor
US20200364056A1 (en) * 2019-05-14 2020-11-19 International Business Machines Corporation Facilitating data processing using simd reduction operations across simd lanes
CN110209503A (zh) * 2019-08-01 2019-09-06 上海燧原智能科技有限公司 多维张量的规约计算方法、装置、设备及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAIMIAN HULU WA: "TensorFlow2.0: Tensors in TensorFlow 2.0", ZHIHU, 12 July 2020 (2020-07-12), pages 1 - 8, XP009538554, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/158936427> [retrieved on 20220826] *
NOVIKOV, ALEXANDER ET AL.: "Tensorizing Neural Networks", ARXIV:1509.06569V, 20 December 2015 (2015-12-20), XP055415964 *

Also Published As

Publication number Publication date
CN114677549A (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
US20210341989A1 (en) Signal processing device and related products
CN111401406B (zh) 一种神经网络训练方法、视频帧处理方法以及相关设备
CN110119807B (zh) 运算方法、装置、计算机设备和存储介质
US20230117973A1 (en) Data processing method and apparatus
CN113704531A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
WO2021082725A1 (zh) Winograd卷积运算方法及相关产品
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
WO2022135049A1 (zh) 规约多维向量的方法、电子设备以及存储介质
CN109711538B (zh) 运算方法、装置及相关产品
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
WO2021082746A1 (zh) 运算装置及相关产品
CN112667227A (zh) 可视化设计流水线的方法及可读存储介质
CN112766475B (zh) 处理部件及人工智能处理器
CN114691353A (zh) 一种张量的读取方法、装置以及相关产品
CN112540848A (zh) 图像解压缩的设备、方法及可读存储介质
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
CN111047030A (zh) 运算方法、装置、计算机设备和存储介质
WO2023236929A1 (zh) 基于指令读取数据中的目标数据的方法及其设备
WO2022001438A1 (zh) 一种计算装置、集成电路芯片、板卡、设备和计算方法
WO2022257980A1 (zh) 计算装置、利用计算装置实施卷积运算的方法及相关产品
CN113139490B (zh) 一种图像特征匹配方法、装置、计算机设备及存储介质
WO2021082747A1 (zh) 运算装置及相关产品
CN113792867B (zh) 运算电路、芯片和板卡
WO2021082724A1 (zh) 运算方法及相关产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21909048

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21909048

Country of ref document: EP

Kind code of ref document: A1