CN113469365A - 基于神经网络模型的推理和编译方法及其相关产品 - Google Patents
基于神经网络模型的推理和编译方法及其相关产品 Download PDFInfo
- Publication number
- CN113469365A CN113469365A CN202110737566.2A CN202110737566A CN113469365A CN 113469365 A CN113469365 A CN 113469365A CN 202110737566 A CN202110737566 A CN 202110737566A CN 113469365 A CN113469365 A CN 113469365A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- layer
- tensor
- topk
- 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 57
- 238000003062 neural network model Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims abstract description 5
- 101100481876 Danio rerio pbk gene Proteins 0.000 claims description 54
- 101100481878 Mus musculus Pbk gene Proteins 0.000 claims description 54
- 238000011176 pooling Methods 0.000 claims description 48
- 238000013473 artificial intelligence Methods 0.000 claims description 14
- 230000017105 transposition Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 32
- 238000003860 storage Methods 0.000 abstract description 25
- 238000010586 diagram Methods 0.000 description 21
- 239000011159 matrix material Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 210000002364 input neuron Anatomy 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种基于神经网络模型的推理方法、编译方法、计算装置、板卡和计算机程序产品,该计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案可以高效地选取目标数据中前预定数目个最大值。
Description
技术领域
本公开一般地涉及人工智能领域。更具体地,本公开涉及一种基于神经网络模型的推理方法、用于优化神经网络模型的编译方法、执行前述推理和编译方法的计算装置,包括该计算装置的板卡和计算机程序产品。
背景技术
当前的神经网络模型通常会在其模型的末尾使用全连接层和topk层来输出该神经网络模型的网络得分。在该应用场景中,全连接层的权值数据量较大,通常达到吉比特或数百兆级别。由于这样级别的数据量,当在向执行全连接层运算的硬件进行数据加载时,将给IO端口带来显著的数据交互量并且造成运算的低效。
发明内容
鉴于上述背景技术部分所提及的技术问题,本披露提出一种用于优化topk运算的方案,从而高效地选取目标数据中前预定数目个最大值。为此,本公开在如下的多个方面中提供用于基于神经网络模型的推理方案和优化方案。
在第一方面中,本公开提供了一种基于神经网络模型的推理方法,其中所述神经网络模型包括相互连接的全连接层和topk层,所述推理方法由人工智能处理器来执行,并且包括:接收经所述神经网络模型的全连接层运算所输出的待处理张量数据,其中所述待处理张量数据包括多个数据元素;以及对所述待处理张量数据执行基于最大池化操作的topk层运算,以从所述多个数据元素中获取前预定数目个最大值。
在第二方面中,本公开提供了一种用于优化神经网络模型的编译方法,其中所述神经网络模型包括相互连接的全连接层和topk层,所述编译方法由通用处理器来执行,并且包括:接收对所述神经网络模型的全连接层的配置,以便所述全连接层在运算中输出待处理张量数据,其中所述待处理张量数据包括多个数据元素;接收对所述神经网络模型的topk层的配置,以便所述topk层在运算中对所述待处理张量数据执行基于最大池化的操作,使得从所述多个数据元素中获取前预定数目个最大值;基于对所述全连接层和topk层的所述配置来优化所述神经网络模型;以及将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。
在第三方面中,本公开提供了一种计算装置,包括:处理器;以及存储器,其配置成存储程序指令,当所述程序指令由处理器运行时,使得所述计算装置执行根据前述的推理方法或者编译方法。
在第四方面中,本公开提供了一种板卡,包括上述的计算装置。
在第五方面中,本公开提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述以及在下文多个实施例中所述的推理方法和编译方法。
通过本公开如上多个方面中所提供的推理方案和优化方案,可以实现神经网络模型得分的高效输出。具体地,本披露的方案通过基于最大池化操作的topk层运算,可以实现计算量的降低并且提升计算效率。进一步,由于本披露的运算是在例如包括人工智能处理器的片上执行,因此可以利用片上系统结构相对于通用处理器架构的特殊性和计算指令的友好性来提升运算效率并且降低计算成本。另外,在一些应用场景中,本披露的方案在数据加载和运算方面支持并行流水操作,从而提升计算系统的整体性能,并由此增加了硬件的使用率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开实施例的板卡的结构图;
图2是示出根据本公开实施例的集成电路装置的结构图;
图3是示出根据本公开实施例的单核计算装置的内部结构示意图;
图4是示出根据本公开实施例的多核计算装置的内部结构示意图;
图5是示出根据本公开实施例的处理器核的内部结构示意图;
图6是示出本公开方案所涉及的全连接层运算的原理框图;
图7是示出根据本公开实施例的基于神经网络模型的推理方法的示意框图;
图8是示出根据本公开实施例的并行流水操作的示意图;
图9是示出根据本公开实施例的topk层操作的流程图;
图10是示出根据本公开实施例的多维张量数据的topk层操作的示意图;
图11是示出根据本公开实施例的基于神经网络的推理方法的详细流程图;以及
图12是示出根据本公开实施例的用于优化神经网络模型的编译方法的流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能使用的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本公开的具体实施方式。
图1示出根据本公开实施例的一种板卡10的结构示意图。可以理解的是图1所示结构和组成仅仅是一种示例,其并不用于在任何方面对本公开的方案进行限制。
如图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和动态随机存取存储器(Dynamic Random Access Memory,DRAM)DRAM 204。可以理解的是,这里的组合处理装置可以形成本披露上下文中的集成电路装置。
计算装置201可以配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器。在一些操作中,其可以用于执行深度学习或机器学习方面的计算,并且还可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。在本披露的方案中,计算装置可以配置成执行基于神经网络模型的各类任务,例如本披露稍后将要描述的全连接层和topk层操作。
接口装置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 SpecificIntegrated circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本公开的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。根据本披露的方案,当处理装置203实施为通用处理器时,其可以执行用于优化神经网络模型的编译操作,以便将神经网络模型编译成由计算装置可执行的二进制指令序列。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201为单核的内部结构示意图。单核计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,单核计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(Instruction Fetch Unit,IFU)311及指令译码单元(Instruction Decode Unit,IDU)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
运算模块32包括向量运算单元321和矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。在本披露的方案中,此处的运算模块可以实现全连接层和topk层的运算。存储模块33用来存储或搬运相关数据,包括神经元存储单元(Neuron RAM,NRAM)331、参数存储单元(Weight RAM,WRAM)332、直接内存访问模块(Direct MemoryAccess,DMA)333。NRAM 331用以存储输入神经元、输出神经元和计算后的中间结果;WRAM332则用以存储深度学习网络的卷积核,即权值;DMA 333通过总线34连接DRAM 204,负责单核计算装置301与DRAM 204间的数据搬运。
图4示出了计算装置201为多核的内部结构示意图。多核计算装置41采用分层结构设计,多核计算装置41作为一个片上系统,其包括根据本公开的至少一个集群(cluster),每个集群又包括多个处理器核。换言之,多核计算装置41是以片上系统-集群-处理器核的层次所构成的。以片上系统的层级来看,如图4所示,多核计算装置41包括外部存储控制器401、外设通信模块402、片上互联模块403、同步模块404以及多个集群405。
外部存储控制器401可以有多个(如图中示例性地示出2个),其用以响应处理器核发出的访问请求,访问外部存储设备,也即本公开上下文中的片外存储器(例如图2中的DRAM 204),从而自片外读取数据或是将数据写入。外设通信模块402用以通过接口装置202接收来自处理装置203的控制信号,启动计算装置201执行任务。片上互联模块403将外部存储控制器401、外设通信模块402及多个集群405连接起来,用以在各个模块间传输数据和控制信号。同步模块404是一种全局同步屏障控制器(Global Barrier Controller,GBC),用以协调各集群的工作进度,确保信息的同步。本公开的多个集群405是多核计算装置41的计算核心。尽管在图4中示例性地示出4个集群,然而随着硬件的发展,本公开的多核计算装置41还可以包括8个、16个、64个、甚至更多的集群405。在一个应用场景中,集群405可以用于高效地执行深度学习算法。
以集群的层级来看,如图4所示,每个集群405可以包括多个处理器核(IPU core)406及一个存储核(MEM core)407。
处理器核406在图中示例性地示出为4个,本公开不限制处理器核406的数量,并且其内部架构如图5所示。每个处理器核406类似于图3的单核计算装置301,并且同样可以包括三个模块:控制模块51、运算模块52和存储模块53。控制模块51、运算模块52及存储模块53的功用及结构大致与控制模块31、运算模块32及存储模块33相同,此处不再赘述。需特别说明的是,存储模块53可以包括输入/输出直接内存访问模块(Input/Output DirectMemory Access,IODMA)533、搬运直接内存访问模块(Move Direct Memory Access,MVDMA)534。IODMA 533通过广播总线409控制NRAM 531/WRAM 532与DRAM 204的访存;MVDMA534则用以控制NRAM 531/WRAM 532与存储单元(SRAM)408的访存。
回到图4,存储核407主要用以存储和通信,即存储处理器核406间的共享数据或中间结果、以及执行集群405与DRAM 204之间的通信、集群405间彼此的通信、处理器核406间彼此的通信等。在其他实施例中,存储核407可以具有标量运算的能力,用以执行标量运算。
存储核407可以包括静态随机存取存储器(Static Random-Access Memory,SRAM)408、广播总线409、集群直接内存访问模块(Cluster Direct Memory Access,CDMA)410及全局直接内存访问模块(Global Direct Memory Access,GDMA)411。在一个实施场景中,SRAM 408可以承担高性能数据中转站的角色。由此,在同一个集群405内不同处理器核406之间所复用的数据不需要通过处理器核406各自向DRAM 204获得,而是经SRAM 408在处理器核406间中转。进一步,存储核407仅需要将复用的数据从SRAM 408迅速分发给多个处理器核406即可,从而可以提高核间通信效率,并显著减少片上片外的输入/输出访问。
广播总线409、CDMA 410及GDMA 411则分别用来执行处理器核406间的通信、集群405间的通信和集群405与DRAM 204的数据传输。以下将分别说明。
广播总线409用以完成集群405内各处理器核406间的高速通信,此实施例的广播总线409支持核间通信方式包括单播、多播与广播。单播是指点对点(例如单一处理器核至单一处理器核)的数据传输,多播是将一份数据从SRAM 408传输到特定几个处理器核406的通信方式,而广播则是将一份数据从SRAM 408传输到所有处理器核406的通信方式,属于多播的一种特例。
CDMA 410用以控制在同一个计算装置201内不同集群405间的SRAM 408的访存。GDMA 411与外部存储控制器401协同,用以控制集群405的SRAM 408到DRAM 204的访存,或是将数据自DRAM 204读取至SRAM 408中。从前述可知,DRAM 204与NRAM 431或WRAM 432间的通信可以经由2种方式来实现。第一种方式是通过IODAM 433直接和DRAM 204与NRAM 431或WRAM 432通信;第二种方式是先经由GDMA 411使得数据在DRAM 204与SRAM 408间传输,再经过MVDMA534使得数据在SRAM 408与NRAM 431或WRAM 432间传输。尽管第二种方式可能需要更多的元件参与且数据流较长,但实际上在部分实施例中,第二种方式的带宽远大于第一种方式,因此通过第二种方式来执行DRAM 204与NRAM 431或WRAM 432间的通信可能更为有效。可以理解的是,这里所描述的数据传输方式仅仅是示例性的,并且本领域技术人员根据本公开的教导,也可以根据硬件的具体布置来灵活地选择和适用各种数据传输方式。
在其他的实施例中,GDMA 411的功能和IODMA 533的功能可以整合在同一部件中。尽管本公开为了方便描述,将GDMA 411和IODMA 533视为不同的部件,然而对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本公开类似,即属于本公开的保护范围。进一步地,GDMA 411的功能、IODMA 533的功能、CDMA 410的功能、MVDMA 534的功能也可以由同一部件来实现。
以上结合图1-图5对本公开的硬件架构及其内部结构进行了详细的描述。可以理解的是上述描述仅仅是示例性的而非限制性的。根据不同的应用场景和硬件规格,本领域技术人员也可以对本公开的板卡及其内部结构进行改变,而这些改变依然落入本公开的保护范围内。
图6是示出本公开方案所涉及的全连接层运算的原理框图。如本领域技术人员所知,神经网络模型通常包括输入层和输出层以及位于前述输入层和输出层之间的一个或多个隐藏层。在本公开的应用场景中,前述的一个或多个隐藏层包括全连接层和与全连接层的输出侧相连接的topk层。在神经网络模型为卷积神经网络时,全连接层(“fullyconnected layer”,FC)起到分类器的作用并且其主要执行涉及矩阵向量乘的运算。
如图6中所示,601处示出加载到全连接层输入侧的输入数据(或称输入神经元数据),其可以是具有例如n*Ci尺寸的矩阵数据。接着,602处示出全连接层处的权重数据,其可以是具有例如Co*Ci的尺寸的矩阵数据。最后,经过全连接层处的矩阵乘操作,可以得到如603处所示出的输出结果,例如n*Co尺寸的矩阵数据。
在一个实施场景中,该输入数据可以是来自于全连接层的前一层(例如卷积层)的输出数据。进一步,这里的输入数据和权重数据可以是四维张量数据,并且因此可以具有NHWC的数据摆放格式,其中N表示批处理数(Batch size),H表示张量数据的高度,W表示张量数据的宽度,而C表示张量数据的通道数。基于此,就本例而言,为了简化描述,H和W所表达的维度(即H*W)可以由n来表示,而N在本例中为1,并且其中Ci表示输入通道数而Co表示输出通道数。
图7是示出根据本公开实施例的基于神经网络模型的推理方法700的示意框图。如前所述,在本公开的上下文中,神经网络模型至少包括相互连接的全连接层和topk层,并且该推理方法可以由人工智能处理器(例如图1或图2中所示出的计算装置)来执行。
如图7所示,在步骤S702处,接收经所述神经网络模型的全连接层运算所输出的待处理张量数据(如图6中603处所示出的)。在一个实施方式中,此处的待处理张量数据可以包括多个数据元素(如图10中所示出的数据块)。在一个实施场景中,为了加速全连接层和后续topk层运算,本公开提出以并行流水的方式来向全连接层加载数据(如图6中602处所示出的权重数据)。换句话说,在执行所述全连接层运算和所述topk层运算操作期间,可以向全连接层加载输入数据,以用于全连接层和topk层的下一次运算。
在上述加载数据情形中,当输入数据较大时,可以将输入数据进行拆分,以得到多个输入子数据。接着,可以以乒乓方式将多个输入子数据逐次加载到全连接层的输入侧,以用于全连接层运算。在一个场景中,输入数据可以包括权值数据,并且在权值数据尺寸较大时,可以将权值数据进行拆分,以得到多个权值子数据。接着,以前述加载方式类似,可以以乒乓方式将多个权值子数据逐次加载到所述全连接层,以用于所述全连接层运算。关于该并行流水的操作方式,稍后将结合附图8来详细描述。
返回流程,在接收到待处理张量数据后,在步骤S704处,可以对待处理张量数据执行基于最大池化操作的topk层运算,以从多个数据元素中获取前预定数目个最大值。如本领域技术人员所知,在最大池化(“Max Pooling”)操作中,可以利用具有一定尺寸的池化核在输入数据上以一定的步长进行滑动来选取最大值。就图6所示例子而言,最大池化操作的池化核为n,也即(H*W),并且沿Co维度以步长为1进行滑动,以选取最大值。
在一个实施场景中,当本公开待处理张量数据是包括通道维度(即Co维度)的多维度张量数据时,则基于最大池化的topk层运算可以包括沿所述通道维度对所述待处理张量数据执行k次的最大池化操作,以从多个数据元素中获取前预定数目个最大值。就图6所示例子而言,沿Co维度以步长为1进行滑动以遍历待处理张量数据k次,从而获得(k×n)个最大值。在一些应用场景中,当待处理张量数据是相对较大的数据,并且可以分为多个批次(也即前述的N大于1),则此时可以认为本公开的待处理张量数据包括多个待处理张量子数据(即不同批次的数据)。鉴于此,在执行操作中,可以对前述多个待处理张量子数据分别执行基于最大池化操作的topk层运算,以获取每个待处理张量子数据中多个数据元素的前预定数目个最大值。接着,可以对获取的多个前预定数目的最大值再次执行基于最大化池操作的topk层运算,从而获得待处理张量数据中前预定数目个最大值。
在一些实施场景中,考虑待处理张量数据的摆放格式以及后续的最大池化操作,本公开提出对待处理张量数据执行第一转置操作,以便沿通道维度对所述待处理张量数据执行基于最大池化的topk层运算。鉴于此,就图6的603处所示出的待处理张量而言,需要对其进行一次转置以适用最大池化的操作,即将其从n*Co转置成Co*n。在转置后,可以对其进行基于最大池化操作的topk层运算,以得到沿Co维度的(k×n)个最大值(即尺寸为k*n的矩阵)。相对应地,为了令输出的(k×n)个最大值符合最初的数据摆放格式,本公开提出对执行topk层运算后所得到的结果执行第二转置操作。因此,就前面的例子而言,在得到k*n大小的矩阵后,可以将其再次转置成n*k的数据摆放格式。
以上结合图7对本公开的推理方法进行了描述,通过利用基于最大池化操作的top层运算,本公开的方案简化了网络得分处理操作,并且提升了片上系统的运算效率。特别地,采用最大池化沿Co维度进行池化操作,避免了循环逐行的操作。另外,通过乒乓流水的数据加载方式,片上的全连接层和topk层运算可以与IO操作并行,从而显著提升硬件的利用率并由此加速运算。
图8是示出根据本公开实施例的并行流水操作的示意图。为了方便说明,图中以带箭头的线段示出时间轴t。
如图8中所示,在初始阶段(如图中的“init”所示),可以从如图4中的SRAM 408向NRAM 431(如图中的“sram2nram”所示)加载输入(如图中的“load input”所示)数据,如图6的601处所示出的输入神经元数据。接着,从SRAM向如图4中的WRAM(如图中的“sram2wram”所示)加载用于乒乓传输中的“乒”部分权重数据(如图中的“load:w-ping”所示出的)。在完成上述的部分数据加载后,接着执行关于输入神经元和“乒”部分权重数据的全连接层操作和topk层操作(如图中的“C:conv ping&topk ping”所示出的,其中conv表示类似于卷积操作的矩阵向量乘)。并行地,可以从SRAM向WRAM(如图中的“sram2wram”所示)加载用于乒乓传输中的“乓”部分权重数据(如图中的“load:w-pong”所示出的),以用于下一时刻的全连接层操作和topk层操作。以此类推,通过并行流水操作在802处完成最后一次针对输入神经元数据和“乓”部分权重数据的全连接层操作和topk层后,流程结束(如图中的“S:end”所示出的)。
图9是示出根据本公开实施例的topk层操作900的流程图。可以理解的是这里的topk层操作也即前面结合图7所描述的topk层,因此前文关于topk层操作的描述也同样适用于结合图9的描述。
如图9中所示,在902处,可以从全连接层接收到n*Co尺寸的矩阵数据,例如前图6中所示出的。为了支持Co维度上的最大池化操作,可以对该矩阵执行转置操作(即前述的第一转置操作),从而在903处得到Co*n大小的矩阵。接着,可以对该转置后的矩阵执行沿Co维度的、基于最大池化的topk层运算。具体地,为了得到本公开所称的前预定数目个最大值,将沿Co维度执行k轮次的最大池化操作,每次获得一个1*n的数组(其中n个元素是每轮中的最大值),从而最终得到如904处所示出的一个k*n的矩阵,也即沿Co维度的(k×n)个最大值。
图10是示出根据本公开实施例的多维张量数据的topk层操作的示意图。结合前文所述,可以理解的是图10所示出的待处理张量数据可以视为N=1的四维张量数据,并且H和W维度可以由本公开上文的n维度(列维度)来表示,即n=H*W。进一步,结合图9所示,可以理解图10中的张量数据已经符合沿Co维度的最大池化操作的数据摆放格式。在每一次的基于最大池化的topk运算中,将沿Co维度(例如图中从上往下)遍历整个数据块来找到当前每列的最大值,从而形成如图中1处括号标识的一“层”数据块。接着,通过将已经找到的最大值进行标识(具体方式稍后详述),并且在下一轮池化操作中排除这些已经选择的最大值,从而最终得到如图中“k”层数据块,也即上文结合图9所描述的(k×n)个最大值。当将n由H和W来代替时,则可以得到图中整个张量数据中前(k×h×w)个最大值,这里h和w分别表示H维度和W维度的具体高度和宽度值。
图11是示出根据本公开实施例的基于神经网络的推理方法1100的详细流程图。结合前文的描述,本领域技术人员可以理解这里的推理方法1100可以视为是图7中所示方法700的一种可能实现方式,因此关于方法700的描述也同样适用于下文对于推理方法1100的描述,并且相同的内容下文将不再赘述。进一步,此处的方法可以由人工智能处理器来执行。
如图11中所示,在步骤S1102处,接收数据输入。这里的数据可以是前文所提到的将输入进全连接层的输入神经元数据和权重数据,其中权重数据可以以前述的乒乓流水方式来加载。接着,在步骤S1104处,执行全连接层操作,具体如图6中所示出的矩阵向量乘操作。在得到矩阵向量乘的结果后,可以在步骤S1106处对该结果执行转置操作,如前面结合图9所提到的将n*Co矩阵转置成Co*n矩阵。接着,可以在步骤S1108处,对转置后的矩阵执行最大池化操作,即选取多个数据元素中的最大值的操作。
为了避免已经选择出的最大值在后续的最大池化操作中再次被选出,本公开提出在执行每次的最大池化操作后,将作为最大值而被选取的数据元素进行标识,以便在下一次的最大池化操作中从未标识的数据元素中选取最大值。为了实现这样的标识,在一个实施方式中,可以对每个数据元素设置其在待处理张量数据内的位置索引,从而可以对多个位置索引进行最大池化操作,以获得与所述最大值对应的位置索引,也即步骤S1110中的确定最大池化索引。接着,可以在步骤S1112处判断是否已经执行了k轮次的最大池化操作。
当未执行完k轮次的最大池化操作时(即步骤S1112处的判断为否“N”),则此时流程前进到步骤S1114处,即将对应位置索引置空。替代于将位置索引置空,也可以将与最大值对应的位置索引处的数据元素设置为无效值,以用于标识作为最大值而被选取的数据元素,从而在下一轮中不再被选取。在待处理张量数据没有被拆分的情形中,则前述的位置索引可以是每个数据元素在待处理张量数据内的绝对位置。此后,流程返回到S1106来循环执行,直到执行完k轮次的最大池化操作,即步骤S1112处的判断为是(即“Y”)。当判断为已经执行了k轮次后,在不考虑权值是否加载完毕的情况下(例如权值较少),则流程直接前进到步骤S1122处,即输出前预定数目个最大值。
当考虑权值是否加载完毕,即执行步骤S1116时,则流程根据判断结果产生分支。例如,当判断没有加载完毕时(即“N”),则流程前进到步骤S1118处,此处对前一次加载权值数据所获得的结果进行缓存。接着,流程返回到S1104执行下一次加载权值数据的处理,以获得对应的输出结果,即前预定数目个最大值。
鉴于权值的分次加载,本公开的从全连接层输出的待处理张量数据可以对应地包括沿通道维度拆分得到的多个待处理张量子数据。在该场景中,对于前述S1110处的位置索引确定,可以根据数据元素在待处理张量子数据内的相对位置和待处理张量子数据在多个待处理张量子数据(即整个待处理张量数据)中的位置偏移量来确定所述数据元素在所述待处理张量数据内的绝对位置,以作为数据元素的位置索引。
当在步骤S1116处判断权值已经加载完毕(即“Y”),则可以执行后续可选的步骤S1118~S1122。
如前所述,当权值数据被拆分成多个权值子数据时,则本公开方案中的待处理张量数据相应地包括多个待处理张量子数据。由此,针对该多个待处理张量子数据,将执行多次的k轮次最大池化操作,从而可以获取每个待处理张量子数据中多个数据元素的前预定数目个最大值。鉴于此,在步骤S1120处,可以对获取的多个前预定数目的最大值执行基于最大化池操作的topk层运算。接着,可以在步骤S1124和S1126处执行与前述步骤S1110和S1114类似的确定操作和置空操作,从而最终在步骤S1122处输出结果,即所述待处理张量数据中前预定数目个最大值。
图12是示出根据本公开实施例的用于优化神经网络模型的编译方法1200的流程图。可以理解的是,当本公开的方案应用于包括通用处理器和人工智能处理器的异构系统时,这里的编译方法可以由通用处理器来执行。
如图12中所示,在步骤S1202处,接收对神经网络模型的全连接层的配置,以便前述全连接层在运算中输出本公开的待处理张量数据,其中待处理张量数据包括多个数据元素。接着,在步骤S1204处,接收对神经网络模型的topk层的配置,以便topk层在运算中对待处理张量数据执行基于最大池化的操作。在完成前述两步骤的配置后,在步骤S1206处,基于前述配置来优化神经网络模型。此后,在步骤S1208处,将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。在一个实施方式中,前述的二进制指令序列是由人工智能处理器执行的可执行程序,并且由通用处理器通过例如PCIe接口来传递至人工智能处理器。
在一个实施场景中,上述编译方法可以由布置于通用处理器侧的编译器来辅助实现。利用图12所示出的编译方法,本公开的方案对包括通用处理器和人工智能处理器的异构系统提供良好的支持和兼容性。基于这样的编译方法,人工智能处理器可以更好的实现对全连接层输出数据的筛选,从而在提供网络得分方面更为高效。
以上结合附图对本公开的方案进行了详细的描述。根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。
进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(“Read Only Memory”,简写为ROM)、随机存取存储器(“Random Access Memory”,简写为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(“Resistive Random Access Memory”,简写为RRAM)、动态随机存取存储器(“DynamicRandom Access Memory”,简写为DRAM)、静态随机存取存储器(“Static Random AccessMemory”,简写为SRAM)、增强动态随机存取存储器(“Enhanced Dynamic Random AccessMemory”,简写为“EDRAM”)、高带宽存储器(“High Bandwidth Memory”,简写为“HBM”)、混合存储器立方体(“Hybrid Memory Cube”,简写为“HMC”)、ROM和RAM等。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (15)
1.一种基于神经网络模型的推理方法,其中所述神经网络模型包括相互连接的全连接层和topk层,所述推理方法由人工智能处理器来执行,并且包括:
接收经所述神经网络模型的全连接层运算所输出的待处理张量数据,其中所述待处理张量数据包括多个数据元素;以及
对所述待处理张量数据执行基于最大池化操作的topk层运算,以从所述多个数据元素中获取前预定数目个最大值。
2.根据权利要求1所述的推理方法,其中在执行所述全连接层运算和所述topk层运算操作期间,所述推理方法还包括:
向所述全连接层加载输入数据,以用于所述全连接层和topk层的下一次运算。
3.根据权利要求2所述的推理方法,其中向所述全连接层加载输入数据包括:
将所述输入数据进行拆分,以得到多个输入子数据;以及
以乒乓方式将所述多个输入子数据逐次加载到所述全连接层的输入,以用于所述全连接层运算。
4.根据权利要求3所述的推理方法,其中所述输入数据包括权值数据,并且其中向所述全连接层加载输入数据包括:
将所述权值数据进行拆分,以得到多个权值子数据;以及
以乒乓方式将所述多个权值子数据逐次加载到所述全连接层的输入,以用于所述全连接层运算。
5.根据权利要求1所述的推理方法,其中所述待处理张量数据是包括通道维度的多维度张量数据,其中对所述待处理张量数据执行基于最大池化的topk层运算包括:
沿所述通道维度对所述待处理张量数据执行k次的最大池化操作,以从所述多个数据元素中获取前预定数目个最大值。
6.根据权利要求5所述的推理方法,其中对所述待处理张量数据执行基于最大池化的topk层运算包括:
对所述待处理张量数据执行第一转置操作,以便沿所述通道维度对所述待处理张量数据执行基于最大池化的topk层运算;以及
对执行所述topk层运算后所得到的结果执行第二转置操作,以获取前预定数目个最大值。
7.根据权利要求5或6所述的推理方法,其中沿所述通道维度对所述待处理张量数据执行k次的最大池化操作包括:
在每次执行的最大池化操作中,沿所述通道维度选取多个数据元素中的最大值;以及
在执行每次的最大池化操作后,将作为最大值而被选取的数据元素进行标识,以便在下一次的最大池化操作中从未标识的数据元素中选取最大值。
8.根据权利要求7所述的推理方法,其中每个数据元素具有在所述待处理张量数据内的位置索引,其中将作为最大值而被选取的数据元素进行标识包括:
对所述多个位置索引进行最大池化操作,以获得与所述最大值对应的位置索引;以及
将与所述最大值对应的位置索引处的数据元素设置为无效值,以用于标识作为所述最大值而被选取的数据元素。
9.根据权利要求8所述的推理方法,其中所述位置索引是所述每个数据元素在所述待处理张量数据内的绝对位置。
10.根据权利要求8所述的推理方法,其中所述待处理张量数据包括沿通道维度拆分得到的多个待处理张量子数据,所述方法包括:
根据数据元素在所述待处理张量子数据内的相对位置和所述待处理张量子数据在所述多个待处理张量子数据中的位置偏移量来确定所述数据元素在所述待处理张量数据内的绝对地址,以作为所述数据元素的位置索引。
11.根据权利要求1或10所述的推理方法,其中所述待处理张量数据包括多个待处理张量子数据,所述方法还包括:
对所述多个待处理张量子数据分别执行基于最大池化操作的topk层运算,以获取每个待处理张量子数据中多个数据元素的前预定数目个最大值;以及
对获取的多个所述前预定数目个最大值执行基于最大化池操作的topk层运算,以获取所述待处理张量数据中前预定数目个最大值。
12.一种用于优化神经网络模型的编译方法,其中所述神经网络模型包括相互连接的全连接层和topk层,所述编译方法由通用处理器来执行,并且包括:
接收对所述神经网络模型的全连接层的配置,以便所述全连接层在运算中输出待处理张量数据,其中所述待处理张量数据包括多个数据元素;
接收对所述神经网络模型的topk层的配置,以便所述topk层在运算中对所述待处理张量数据执行基于最大池化的操作,使得从所述多个数据元素中获取前预定数目个最大值;
基于对所述全连接层和topk层的所述配置来优化所述神经网络模型;以及
将优化后的所述神经网络模型编译成对应的二进制指令序列,以分配至人工智能处理器上执行对应的任务。
13.一种计算装置,包括:
处理器;以及
存储器,其配置成存储程序指令,当所述程序指令由处理器运行时,使得所述计算装置执行根据权利要求1-11的任意一项所述的推理方法或者执行根据权利要求12所述的编译方法。
14.一种板卡,包括根据权利要求13所述的计算装置。
15.一种计算机程序产品,包括程序指令,当所述程序指令在被处理器执行时,实现根据权利要求1-11中任一项所述的推理方法或实现根据权利要求12所述的编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110737566.2A CN113469365B (zh) | 2021-06-30 | 2021-06-30 | 基于神经网络模型的推理和编译方法及其相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110737566.2A CN113469365B (zh) | 2021-06-30 | 2021-06-30 | 基于神经网络模型的推理和编译方法及其相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113469365A true CN113469365A (zh) | 2021-10-01 |
CN113469365B CN113469365B (zh) | 2024-03-19 |
Family
ID=77878241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110737566.2A Active CN113469365B (zh) | 2021-06-30 | 2021-06-30 | 基于神经网络模型的推理和编译方法及其相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113469365B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189915A (zh) * | 2018-09-17 | 2019-01-11 | 重庆理工大学 | 一种基于深度相关匹配模型的信息检索方法 |
CN110879938A (zh) * | 2019-11-14 | 2020-03-13 | 中国联合网络通信集团有限公司 | 文本情感分类方法、装置、设备和存储介质 |
CN110914910A (zh) * | 2017-10-16 | 2020-03-24 | 因美纳有限公司 | 基于深度学习的剪接位点分类 |
CN111178389A (zh) * | 2019-12-06 | 2020-05-19 | 杭州电子科技大学 | 基于多通道张量池化的多模态深度分层融合情感分析方法 |
US20200167158A1 (en) * | 2018-11-28 | 2020-05-28 | International Business Machines Corporation | Compound instruction set architecture for a neural inference chip |
CN111381882A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置及相关产品 |
CN112766279A (zh) * | 2020-12-31 | 2021-05-07 | 中国船舶重工集团公司第七0九研究所 | 一种基于联合注意力机制的图像特征提取方法 |
-
2021
- 2021-06-30 CN CN202110737566.2A patent/CN113469365B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110914910A (zh) * | 2017-10-16 | 2020-03-24 | 因美纳有限公司 | 基于深度学习的剪接位点分类 |
CN109189915A (zh) * | 2018-09-17 | 2019-01-11 | 重庆理工大学 | 一种基于深度相关匹配模型的信息检索方法 |
US20200167158A1 (en) * | 2018-11-28 | 2020-05-28 | International Business Machines Corporation | Compound instruction set architecture for a neural inference chip |
CN111381882A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置及相关产品 |
CN110879938A (zh) * | 2019-11-14 | 2020-03-13 | 中国联合网络通信集团有限公司 | 文本情感分类方法、装置、设备和存储介质 |
CN111178389A (zh) * | 2019-12-06 | 2020-05-19 | 杭州电子科技大学 | 基于多通道张量池化的多模态深度分层融合情感分析方法 |
CN112766279A (zh) * | 2020-12-31 | 2021-05-07 | 中国船舶重工集团公司第七0九研究所 | 一种基于联合注意力机制的图像特征提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113469365B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111047022B (zh) | 一种计算装置及相关产品 | |
CN112799726B (zh) | 数据处理装置、方法及相关产品 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN112633490A (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN112416433A (zh) | 一种数据处理装置、数据处理方法及相关产品 | |
CN112686379A (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN113837922A (zh) | 计算装置、数据处理方法及相关产品 | |
CN110490317B (zh) | 神经网络运算装置及运算方法 | |
CN109711538B (zh) | 运算方法、装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
WO2022095676A1 (zh) | 神经网络稀疏化的设备、方法及相应产品 | |
CN113469337A (zh) | 用于优化神经网络模型的编译方法及其相关产品 | |
CN113469326A (zh) | 在神经网络模型中执行剪枝优化的集成电路装置及板卡 | |
CN113469365B (zh) | 基于神经网络模型的推理和编译方法及其相关产品 | |
CN115840894A (zh) | 一种用于处理多维张量数据的方法及其相关产品 | |
CN115904681A (zh) | 任务调度方法、装置及相关产品 | |
CN114692844A (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN115599738A (zh) | 一种对神经网络模型进行优化的方法及相关产品 | |
CN113792867B (zh) | 运算电路、芯片和板卡 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN114692847B (zh) | 数据处理电路、数据处理方法及相关产品 | |
WO2022063217A1 (zh) | 向前融合神经网络的装置、板卡、方法及可读存储介质 | |
CN114692845A (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN113469328A (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 |