CN113078974B - 用于神经网络稀疏信道生成和推断的方法 - Google Patents
用于神经网络稀疏信道生成和推断的方法 Download PDFInfo
- Publication number
- CN113078974B CN113078974B CN202011039200.XA CN202011039200A CN113078974B CN 113078974 B CN113078974 B CN 113078974B CN 202011039200 A CN202011039200 A CN 202011039200A CN 113078974 B CN113078974 B CN 113078974B
- Authority
- CN
- China
- Prior art keywords
- channel
- channels
- sparse
- inference
- kernels
- 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
Links
Classifications
-
- 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
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B17/00—Monitoring; Testing
- H04B17/30—Monitoring; Testing of propagation channels
- H04B17/391—Modelling the propagation channel
- H04B17/3912—Simulation models, e.g. distribution of spectral power density or received signal strength indicator [RSSI] for a given geographic region
-
- 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
-
- 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
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Image Analysis (AREA)
Abstract
公开了用于加速利用稀疏信道的神经网络(NN)模型的推断操作的方法。离线方法通过将与稀疏信道相关联的信道核合并为一个信道核,将一层的稀疏信道合并为一个合并后的稀疏信道。该方法重新训练合并后的稀疏信道的信道核,同时保持用于密集信道的信道核固定,以修改信道模型。可以确定合并后的稀疏信道的重新训练的信道核的稀疏度并将其存储在元数据中。当修改后的信道模型在线时,该方法可以将合并后的稀疏信道的重新训练的信道核的稀疏度与稀疏推断阈值进行比较,以确定是否对合并后的稀疏信道进行推断。可以动态地调整稀疏推断阈值,以在NN模型的速度和准确性之间达到平衡。
Description
技术领域
本公开的实施方式总体上涉及机器学习。更具体地,本公开的实施方式涉及用于通过人工智能应用中的机器学习引擎或神经网络进行推断的软件模型的生成和使用。
背景技术
神经网络用于诸如计算机视觉、自然语言处理、机器人技术和自动驾驶车辆(ADV)等应用中。例如,神经网络可以以自动驾驶模式运行(例如,无人驾驶)车辆,可将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。神经网络可以通过处理由车载传感器捕获的车辆周围环境的视频和电磁图像来生成命令,以规划和控制车辆的运动。例如,神经网络可以生成或训练用于在自主模式下的感知、预测、决策、规划和/或控制过程的一组规则、算法和/或预测模型。
运动规划和控制操作的准确性和效率在很大程度上取决于神经网络使用的模型。神经网络中的模型可以使用矩阵或更一般地使用多维张量来处理输入信道数据(诸如通过一个或多个层的传感器捕获的视频和电磁图像),以得出特征图输出。神经网络模型的每一层可以计算来自前一层的输入信道数据的表示,以使用与该层的输出信道(也称为信道矩阵或信道核)相对应的矩阵来推断一个或多个输出信道。矩阵的密度或相反地稀疏度可以是矩阵的零或接近零的参数数量的度量。稀疏度可能会影响推断计算的速度,因为在执行矩阵乘法时,可能会跳过与零或接近零的参数关联的乘法和加法运算。
大多数神经网络模型都是为密集矩阵设计的。为了加速推断操作,神经网络加速器可以利用模型中矩阵的稀疏度。例如,神经网络加速器可以通过仅对密集信道执行推断操作来削减其相应信道矩阵具有大量零或接近零的参数的稀疏信道。但是,这种削减算法可能会降低量化和推断操作后的输出特征图的准确性,尤其是在通过多层来传播错误时。削减信道的选择也可能很严格。
发明内容
根据本公开的一方面,提供了用于操作神经网络模型的推断层的计算机实施的方法,所述方法包括:
读取所述神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定对应所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,控制所述一个信道的推断操作。
根据本公开的另一方面,提供了数据处理系统,包括:
处理器;
存储器,所述存储器联接至所述处理器,以存储指令,所述指令在由所述处理器执行时致使所述处理器执行操作,所述操作包括:
读取神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定对应所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,控制所述一个信道的推断操作。
根据本公开的一方面,提供了具有存储在其中的指令的非暂时性机器可读介质,所述指令在由处理器执行时使所述处理器执行神经网络模型的推断层的操作,所述操作包括:
读取所述神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定对应所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,控制所述一个信道的推断操作。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。
图1是示出根据一个实施方式的网络化系统的框图。
图2是示出根据一个实施方式进行操作的自动驾驶系统的架构的框图。
图3是根据一个实施方式的主机计算系统中的神经网络内核的架构,其中神经网络模型从外部存储器被下载到神经网络内核的SRAM中。
图4示出了根据一个实施方式的具有多个推断层以及用于多个推断层的信道核的神经网络的模型。
图5示出了根据一个实施方式的一种离线方法,该离线方法根据信道核的稀疏度来为层重新布置信道,并且在生成神经网络模型时通过将相关联的信道核级联来将稀疏信道合并为一个信道。
图6示出了根据离线模型生成方法的一个实施方式的在每一层的稀疏信道被合并为一个信道之后,用于重新训练的神经网络模型的多个推断层的信道的布置。
图7是示出根据一个实施方式的用于离线训练和生成神经网络模型的方法的流程图,该模型用于将层的稀疏信道合并为一个信道。
图8是示出根据一个实施方式的基于包括合并后的稀疏信道的神经网络模型的信道核的稀疏度度量来控制在线推断操作的方法的流程图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
根据一些实施方式,公开了用于生成利用稀疏信道来加速推断操作的神经网络模型的方法。神经网络模型通过将层输入与信道核相乘以生成输出信道,来对层执行推断操作。信道核的稀疏度表示构成信道核的矩阵或张量的零或接近零的参数的数量。其信道核具有大量零或接近零的参数(例如,低稀疏度)的信道可以称为稀疏信道。在用于推断后续层时,稀疏信道比密集信道具有更小的权重。为了淡化稀疏信道,该方法可以评估原始信道模型的信道核的稀疏度,以合并一个或多个层的稀疏信道,并基于合并后的信道重新训练信道模型以生成修改的信道模型。
该方法可以通过将与稀疏信道相关联的信道核合并为一个信道核,来将一层的稀疏信道合并为一个稀疏信道。可以对神经网络模型的每一层或前几层执行稀疏信道的合并。在一个实施方式中,该方法可以根据它们相应的信道核的稀疏度来重新排列信道,以将尚未合并的信道(即密集信道)分组在一起。该方法可以重新训练神经网络模型的合并的稀疏信道的信道核,同时保持用于密集信道的信道核固定以生成修改的信道模型。在重新训练之后,合并后的稀疏信道的重新训练的信道核的稀疏度可以改变。该方法可以评估合并后的稀疏信道的重新训练的信道核的稀疏度,以将该稀疏度存储为元数据。
根据一些实施方式,公开了用于基于神经网络模型的信道核的稀疏度来控制推断操作的方法,该神经网络模型包括合并后的稀疏信道。该方法可以将从元数据读取的层的合并后的稀疏信道的信道核的稀疏度与稀疏推断阈值进行比较,以确定是否推断合并后的稀疏信道。如果与合并后的稀疏信道相关联的稀疏度高于稀疏推断阈值,则该方法可以推断合并后的稀疏信道。否则,该方法将不会推断合并后的稀疏信道。在一个实施方式中,稀疏推断阈值可以被动态地调整,以在神经网络模型的推断操作的速度和准确性之间取得平衡。
尽管下面的描述示出了用于生成和推断用于自动驾驶车辆(ADV)的神经网络模型的方法,但是应该理解,该方法也可以应用于在其它应用中使用的神经网络模型。
图1是示出根据本公开的一个实施方式的自动驾驶车辆网络配置的框图。参考图1,网络配置100包括可通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆,但多个自动驾驶车辆可通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或位置服务器等。
自动驾驶车辆是指可配置成处于自动驾驶模式下的车辆,在自动驾驶模式下车辆在极少或没有来自驾驶员的输入的情况下导航通过环境。这种自动驾驶车辆可包括传感器系统,传感器系统具有配置成检测与车辆运行环境有关的信息的一个或多个传感器。车辆和其相关联的控制器使用所检测的信息来导航通过环境。自动驾驶车辆101可在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。
在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统115。自动驾驶车辆101还可包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,部件可由车辆控制系统111和/或感知与规划系统110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。
部件110至115可经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可经由控制器局域网(CAN)总线通信地联接到彼此。CAN总线是设计成允许微控制器和装置在没有主机的应用中与彼此通信的车辆总线标准。它是最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。
无线通信系统112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等外部系统之间的通信。例如,无线通信系统112可以与一个或多个装置直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信。无线通信系统112可使用任何蜂窝通信网络或无线局域网(WLAN),例如,使用WiFi,以与另一部件或系统通信。无线通信系统112可例如使用红外链路、蓝牙等与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)直接通信。用户接口系统113可以是在车辆101内实施的外围装置的部分,包括例如键盘、触摸屏显示器、麦克风和扬声器等。
自动驾驶车辆101的功能中的一些或全部可由感知与规划系统110控制或管理,尤其当在自动驾驶模式下操作时。感知与规划系统110包括必要的硬件(例如,处理器、存储器、存储装置)和软件(例如,操作系统、规划和路线安排程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。可替代地,感知与规划系统110可与车辆控制系统111集成在一起。
例如,作为乘客的用户可例如经由用户接口来指定行程的起始位置和目的地。感知与规划系统110获得行程相关数据。例如,感知与规划系统110可从MPOI服务器中获得位置和路线信息,MPOI服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且MPOI服务器提供地图服务和某些位置的POI。可替代地,此类位置和MPOI信息可本地高速缓存在感知与规划系统110的永久性存储装置中。
当自动驾驶车辆101沿着路线移动时,感知与规划系统110也可从交通信息系统或服务器(TIS)获得实时交通信息。应注意,服务器103至104可由第三方实体进行操作。可替代地,服务器103至104的功能可与感知与规划系统110集成在一起。基于实时交通信息、MPOI信息和位置信息以及由传感器系统115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划系统110可规划最佳路线并且根据所规划的路线例如经由控制系统111来驾驶车辆101,以安全且高效到达指定目的地。
服务器103可以是数据分析系统,从而为自动驾驶车辆101或各种客户执行数据分析服务。在一个实施方式中,数据分析系统103包括数据收集器121和机器学习引擎122。数据收集器121从自动驾驶车辆101或从各种自动驾驶或人为驾驶的车辆收集驾驶统计数据123。驾驶统计数据123包括指示所发出的驾驶指令(例如,油门、制动、转向指令)以及由车辆的传感器在不同的时间点捕捉到的车辆的响应(例如,速度、加速、减速、方向)的信息。驾驶统计数据123还可包括描述不同时间点下的驾驶环境的信息,例如,路线(包括起始位置和目的地位置)、MPOI、道路状况、天气状况等。
基于驾驶统计数据123,出于各种目的,机器学习引擎122生成或训练一组规则、算法和/或预测模型124。在一个实施方式中,算法124可包括用于感知、预测、决策、规划和/或控制过程的模型、规则或算法。然后可以将算法和模型124上传到ADV上,以在自动驾驶过程中实时使用。例如,控制系统111或感知和规划系统110可以是神经网络,神经网络使用算法和模型124以及传感器系统115感测的实时局部环境数据来感知障碍物,预测其它车辆的运动,以及规划和控制自动驾驶车辆101的运动。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
图2是示出根据一个实施方式的用于自动驾驶的系统架构的框图。系统架构200可以表示如图1所示的自动驾驶系统的系统架构。参考图2,系统架构200包括但不限于应用层201、规划和控制(PNC)层202、感知层203、装置驱动程序层204、固件层205和硬件层206。应用层201可以包括与自动驾驶车辆的用户或乘客交互的用户界面或配置应用,例如与用户界面系统113相关联的功能。PNC层202可以包括感知和规划系统110以及控制系统111的功能。感知层203可以至少包括感知和规划系统110的功能。固件层205可以至少表示传感器系统115的功能,固件层205可以以现场可编程门阵列(FPGA)的形式实现。硬件层206可以表示自动驾驶车辆的硬件,诸如控制系统111。层201-203可以经由装置驱动程序层204与固件层205和硬件层206通信。
PNC层202和感知层203可以在神经网络上运行,该神经网络的模型(诸如算法和模型124)是由本公开的实施方式生成的。该模型可以通过评估神经网络的信道核的稀疏度来离线生成,以合并一个或多个层的稀疏信道,并基于合并后的稀疏信道重新训练信道模型,以生成修改后的信道模型。可以将与修改后的信道模型的合并后的稀疏信道相关联的稀疏度与稀疏推断阈值进行比较,以在神经网络的操作期间控制推断层的操作。
图3是根据一个实施方式的主机计算系统中的神经网络(NN)内核330的架构,其中,NN模型从外部存储器被下载到NN内核330的SRAM中。NN内核330可以是自动驾驶车辆101的控制系统111或感知和规划系统110的一部分,并且主机计算系统可以是自动驾驶车辆101的处理器或服务器103-104。
NN内核330包括NN引擎332和NN SRAM336。NN引擎332为一个或多个过程(诸如自动驾驶车辆101的感知、预测、决策、规划或控制)运行推断层的NN算法和模型。NN引擎332可以访问存储在NN SRAM 336中的NN模型。NN SRAM 336的一部分存储器(配置后的权重存储器334)可以划分为存储NN模型的模型权重的一部分或存储NN模型的元数据。
主机计算系统包括DSP或RISC 310,以及包括DDR(双倍数据速率)存储器316(诸如DDR DRAM、SRAM 320和OPM(一次性可编程存储器)326)的存储器。由于NN模型的尺寸较大,当NN内核离线时,NN模型可以存储在NN内核330外部的DDR存储器316中。NN模型可以存储为可执行的可加载文件(ELF)。DDR控制模块318生成控制信号以访问和刷新DDR存储器316。
主机计算系统包括来自传感器系统115的传感器,诸如摄像机211。DMA模块312允许摄像机211和其它外围装置具有对DDR存储器316的直接存储器访问(DMA)能力。单独的DMA模块322为NN内核330提供DMA能力,以从DDR存储器316下载NN模型。诸如AXI(高级可扩展接口)总线314的总线可通信地联接NN内核330、DSP或RISC 310、存储器子组件和摄像机211。外部主机340也可通过诸如PCIe(高速外围组件互连)342的接口与该主机计算系统通信。
当激活NN内核330以运行NN算法时,DMA模块322可以将NN模型从DDR存储器316下载到NN SRAM 336中。NN模型可以作为ELF下载。每个ELF可以包含模型权重、元数据和模型权重的哈希值以及用于在线验证的元数据的哈希值。在一个实施方式中,可以首先将NN模型从DDR存储器316复制到NN内核330外部的SRAM320中,然后从SRAM 320复制到NN SRAM336中。为了保护NN SRAM 336免受主机计算系统的未授权访问,对NN SRAM 336的外部访问仅通过加密模块324来完成。加密模块324可以验证NN模型的连续的推断层,直到NN内核330完成所有推断层为止。
图4示出了根据一个实施方式的具有多个推断层以及用于推断层的信道核的神经网络400的模型。神经网络400可以通过使用信道核的一个或多个层,处理输入信道数据401(诸如由ADV 101的传感器系统115捕获的视频和电磁图像),以导出特征图输出。在一个实施方式中,神经网络400可以是卷积神经网络(CNN),其中信道输入的不同元件共享信道核以生成输出信道。在一个实施方式中,输入信道数据可以是RGB视频数据的帧。
神经网络模型的每一层可以计算来自前一层的输入信道数据401的表示,以使用信道核的矩阵或张量来推断一个或多个输出信道。例如,输入信道401可以乘以第一层的信道0核410、信道1核411、…信道N核413,以分别生成第一层的信道0输出420、信道1输出421、…信道N输出423。在RGB视频数据的示例中,信道0核410、信道1核411、…信道N核413中的每一个可以包括三个矩阵,它们分别与RGB数据相乘并相加,以生成第一层的相应输出信道。
为了推断第二层的输出信道,可以将第一层的一个或多个输出信道乘以第二层的信道0核430、信道1核431、信道2核432、…、信道K核434,以分别生成第二层的信道0输出440、信道1输出441、信道2输出442、…信道K输出444。第二层的信道0核430、信道1核431、信道2核432、…信道K核434中的每一个可以包括与第一层的输出信道数相同数量的矩阵,用于推断第二层的输出信道。将第二层的信道核的矩阵分别乘以第一层的相应输出信道,并相加以生成第二层的相应输出信道。用于第一层的输出信道的数量N可以不同于用于第二层的输出信道的数量K。神经网络400可以包括附加的推断层,并且可以被训练为生成用于不同层的信道核。信道核可以具有不同的稀疏度。为了加速推断操作,公开了方法来合并一个或多个层的稀疏信道并重新训练合并后的信道,以生成修改后的神经网络模型。
图5示出了根据一个实施方式的离线方法,该离线方法根据信道核的稀疏度为层重新布置信道,并且在生成修改后的神经网络模型时通过将相关联的信道核进行级联来将稀疏信道合并为一个信道。在一个实施方式中,该方法可以通过确定构成每个信道核的矩阵中的非零元素的数量来确定信道核的稀疏度。具有大量的零且因此具有较低稀疏度的信道核是稀疏信道。在一个实施方式中,信道核的稀疏度可以通过对构成信道核的矩阵中的元素的绝对值求和并对求和的值归一化后来确定。通过考虑矩阵元素的值而不是简单地计算非零矩阵元素的数量,在矩阵中具有大量接近零的参数的信道核也可以被视为稀疏信道。在一个实施方式中,将信道核的稀疏度与阈值进行比较,以确定相应的信道是密集的还是稀疏的。如果信道核的稀疏度高于阈值,则将相应信道视为密集信道。否则,视为稀疏信道。
图5示出了与被视为密集信道的信道对应的信道0(510)、信道3(513)和信道N-1(515)等的信道核;与被视为稀疏信道的信道对应的信道1(511)、信道2(512)、信道4(514)和信道N(516)等的信道核。在一个实施方式中,该方法可以根据其对应的信道核的稀疏度来重新排列信道,以将密集信道与稀疏信道分开地分组。例如,信道3(513)和信道N-1(515)的信道核与其它密集信道的信道核一起被重新布置,以将所有密集信道组合在一起。信道1(511)、信道2(512)和信道4(514)的信道核与其它稀疏信道的信道核一起重新排列,以将所有稀疏信道组合在一起。在一个实施方式中,该方法可以通过重新索引信道或对应的信道核来重新排列信道。
该方法可以通过将稀疏信道的信道核级联为合并后的信道核520来将稀疏信道合并为一个信道。重新布置信道以将所有稀疏信道分组在一起,可以促进稀疏信道的合并。然而,该方法不限于此,因为稀疏信道可以被合并而无需重新布置。在一个实施方式中,级联稀疏信道的信道核以产生合并后的信道核520可以包括对来自稀疏信道的信道核的具有相同矩阵索引的矩阵元素求和。可以对神经网络模型的每一层或前几层执行稀疏信道的合并。
在合并稀疏信道之后,该方法可以重新训练合并后的信道核520,同时保持用于密集信道的信道核固定,以生成修改后的神经网络模型。例如,该方法可以禁止密集信道的反向传播,并且可以仅从合并后的稀疏信道向后传播错误,以在重新训练期间调整合并后的信道核520的矩阵元素,直到神经网络模型满足某些训练错误需求为止。在重新训练之后,该方法可以量化密集信道的信道核和合并后的稀疏信道的合并后的信道核520,以生成用于推断的修改后的神经网络模型。
合并后的信道核520的稀疏度可以在重新训练期间改变,使得合并后的稀疏信道可以保持稀疏或者可以变成密集信道。该方法可以在重新训练之后确定合并后的信道核520的稀疏度,并且可以将稀疏度存储到修改后的神经网络模型的元数据中。在一个实施方式中,该方法可以将与合并后的稀疏信道相关联的稀疏信道标记存储到元数据中,以将合并后的稀疏信道与在重新训练期间其信道核保持固定的密集信道区分开。在一个实施方式中,该方法还可以将用于密集信道的信道核的稀疏度存储到元数据中。为了减少用于存储稀疏信道或合并后的稀疏信道的信道核的内存需求,该方法可以以压缩的稀疏行(CSR)或压缩的稀疏列(CSC)格式存储信道核的非零元素。
图6示出了根据离线模型生成方法的一个实施方式的在用于每一层的稀疏信道被合并为一个信道之后,用于重新训练的神经网络模型的多个推断层的信道的布置。层1包括密集信道的信道0(610)、信道1(611)、…信道M(612)的信道核以及已经被重新训练的合并后的稀疏信道的信道(M+1)613的信道核。
该方法可以基于合并后的稀疏信道的信道核的稀疏度来控制针对层1的推断操作。例如,该方法可以从元数据中读取信道(M+1)613的信道核的稀疏度,并且可以将稀疏度与稀疏推断阈值进行比较以确定是否要推断合并后的稀疏信道。如果与信道(M+1)613相关联的稀疏度大于稀疏推断阈值,则该方法可以推断层1的合并后的稀疏信道。否则,该方法不推断合并后的稀疏信道。如果仅针对合并后的稀疏信道做出关于是否推断信道的决定,则该方法可以通过从元数据读取的稀疏信道标记来识别合并后的稀疏信道及其关联的稀疏度。
在一个实施方式中,该方法还可以将密集信道0(610)、信道1(611)、…信道M(612)的信道核的稀疏度与稀疏推断阈值进行比较,以确定是否推断密集信道。可以将稀疏推断阈值设置为低于在离线模型训练期间用于确定信道是否为密集信道的阈值,从而推断出所有密集信道。图6示出了与层1的密集信道相关联的稀疏度都大于稀疏推断阈值,但是与信道(M+1)613相关联的稀疏度小于稀疏推断阈值。因此,对于第1层,将推断所有密集信道,但不推断合并后的稀疏信道。
在一个实施方式中,稀疏推断阈值可以在线或离线动态地调整,以在神经网络模型的推断操作的速度和准确性之间取得平衡。例如,如果从神经网络模型输出的特征图的准确性小于所需的准确性,则该方法可以降低稀疏推断阈值,以使合并后的稀疏信道能够进行推断操作,其代价是神经网络模型的吞吐量的降低。另一方面,如果推断出合并后的稀疏信道,但是神经网络模型的速度小于所需速度,则该方法可以提高稀疏推断阈值,以禁用对合并后的稀疏信道的推断操作,其代价为准确性降低。
层2包括密集信道的信道0(620)、信道1(621)、…信道N(622)的信道核以及已重新训练后的合并后的稀疏信道的信道(N+1)623的信道核。对于层2,该方法可以类似地将信道(N+1)623的信道核的稀疏度与层2的稀疏推断阈值进行比较,以确定是否对合并后的稀疏信道进行推断。在一个实施方式中,该方法可以类似地将密集信道0(620)、信道1(621)、…信道N(622)的信道核的稀疏度与稀疏推断阈值进行比较,以确定是否推断密集信道。不同层的稀疏推断阈值可以不同,以提供微调每个层的推断操作的灵活性。图6示出了与层2的密集信道相关联的稀疏度大于稀疏推断阈值,但是与信道(N+1)623相关联的稀疏度小于稀疏推断阈值。因此,对于层2,与层1一样,对所有密集信道进行推断,但不对合并后的稀疏信道进行推断。
层3包括密集信道的信道0(630)、信道1(631)、…信道K(632)的信道核,以及已重新训练的合并后的稀疏信道的信道(K+1)633的信道核。对于层3,该方法可以将信道(K+1)633的信道核的稀疏度与层3的稀疏推断阈值进行比较,以确定是否对合并后的稀疏信道进行推断。在一个实施方式中,该方法可以将密集信道0(630)、信道1(631)、……信道K(632)的信道核的稀疏度与稀疏推断阈值进行比较,以确定是否推断密集信道。图6示出了与层3的密集信道相关联的稀疏度以及与信道(K+1)633相关联的稀疏度均大于稀疏推断阈值。因此,对于层3,包括合并后的稀疏信道在内的所有信道都被推断。
图7是示出根据一个实施方式的用于神经网络模型的离线训练和生成的方法700的流程图,该神经网络模型用于将层的稀疏信道合并为一个信道。方法700可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,方法700可以由DSP或RISC 310或外部主机340执行。神经网络模型可以是图4的卷积神经网络或模型400。
在操作701处,方法700训练神经网络模型以生成用于模型的不同层的信道核。信道核可以具有不同的稀疏度。
在操作703处,方法700根据用于每个层的信道稀疏度度量对信道核进行排序。在一个实施方式中,方法700可以通过确定构成每个信道核的矩阵中的非零元素的数量来确定信道核的稀疏度。在一个实施方式中,可通过将构成信道核的矩阵中的元素的绝对值相加并归一化后的值来确定信道核的稀疏度。在一个实施方式中,将信道核的稀疏度与阈值进行比较,以确定相应的信道是密集的还是稀疏的。如果信道核的稀疏度高于阈值,则将相应信道视为密集信道。否则,视为稀疏信道。在一个实施方式中,方法700可以根据其对应的信道核的稀疏度来重新排列信道,以将稀疏信道与密集信道分开进行分组。
在操作705处,方法700通过将稀疏信道的信道核级联为合并后的信道核来将稀疏信道合并为一个信道。例如,方法700可以对来自稀疏信道的信道核的具有相同矩阵索引的矩阵元素求和以生成合并后的信道核。可以对神经网络模型的每一层或前几层执行稀疏信道的合并。
在操作707处,方法700重新训练合并后的信道核,同时保持用于密集信道的信道核固定,以生成修改后的神经网络模型。例如,方法700可以禁用密集信道的反向传播,并且可以仅从合并后的稀疏信道向后传播错误,以在重新训练期间调整合并后的信道核的矩阵元素,直到神经网络模型满足某些训练错误需求为止。
在操作709处,方法700生成神经网络模型的最终信道核。例如,方法700可以量化密集信道的信道核和合并后的稀疏信道的合并后的信道核。
在操作711处,方法700确定已经被重新训练的合并后的信道核的信道稀疏度度量,并将信道稀疏度度量存储到神经网络模型的元数据中。合并后的信道核的信道稀疏度度量在重新训练期间可能已更改,因此合并后的稀疏信道可能保持稀疏或变为密集信道。在一个实施方式中,方法700可以将与合并后的稀疏信道相关联的稀疏信道标记存储到元数据中,以将合并后的稀疏信道与密集信道区分开。在一个实施方式中,方法700还可将密集信道的信道核的信道稀疏度度量存储到元数据中。
图8是示出根据一个实施方式的基于包括合并后的稀疏信道的神经网络模型的信道核的稀疏度度量来控制在线推断操作的方法800的流程图。方法800可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,方法800可以由神经网络引擎332执行。神经网络模型可以是卷积神经网络或图4的模型400。
在操作801处,方法800读取神经网络模型并加载层的元数据。例如,方法800可以将层的元数据从DDR 316加载到神经网络内核330的SRAM 336中,该层包含层的合并后的稀疏信道和密集信道的信道核的信道稀疏度度量。
在操作803处,方法800将信道的信道核的信道稀疏度度量与稀疏推断阈值进行比较,以确定是否推断信道。在一个实施方式中,方法800可以将合并后的稀疏信道的合并后的信道核的信道稀疏度度量与该层的稀疏推断阈值进行比较。在一个实施方式中,如果仅将与合并后的稀疏信道相关联的信道稀疏度度量与该层的稀疏推断阈值进行比较,则方法800可以通过从元数据读取的稀疏信道标记来识别合并后的稀疏信道及其关联的稀疏度度量。在一个实施方式中,方法800可将密集信道的信道核的信道稀疏度度量与稀疏推断阈值进行比较,以确定是否推断密集信道。在一个实施方式中,稀疏推断阈值可被动态地调整以在神经网络模型的推断操作的速度和准确性之间取得平衡
在操作805处,如果该信道的信道核的信道稀疏度度量小于或等于该层的稀疏推断阈值,则方法800不推断该信道。例如,如果与合并后的稀疏信道相关联的信道稀疏度度量小于稀疏推断阈值,则不对合并后的稀疏信道执行推断。
在操作807处,如果该信道的信道核的信道稀疏度度量大于该层的稀疏推断阈值,则方法800推断该信道。例如,如果与合并后的稀疏信道相关联的信道稀疏度度量大于稀疏推断阈值,则可以将合并后的信道核加载到神经网络内核300中。可以将合并后的信道核乘以该层的输入信道,以推断合并后的稀疏信道的信道输出。
在操作809处,方法800确定是否已经推断出神经网络模型的所有层。如果已经推断出所有层,则方法800在操作813处终止。
在操作811处,如果还有至少一层要推断,则该方法加载下一层的元数据。可以重复操作803、805和807,以基于包括合并后的稀疏信道的下一层的信道核的信道稀疏度度量来控制推断操作。在一个实施方式中,可以针对神经网络模型的每一层来控制推断操作。在一个实施方式中,可以仅针对神经网络模型的前几层来控制推断操作,并且可以仅针对这几层来重复操作803、805和807。
数据处理系统可以执行上述任何过程或方法,例如,离线训练和生成将层的稀疏信道合并为一个信道的神经网络模型,或基于合并后的稀疏信道的信道核的稀疏度度量控制在线推断操作。数据处理系统可包括许多不同的部件。这些部件可实施为集成电路(IC)、集成电路的部分、分立电子装置或适用于电路板(诸如,计算机系统的主板或插入卡)的其它模块或者实施为以其它方式并入计算机系统的机架内的部件。
数据处理系统可以包括一个或多个处理器、一个或多个存储器以及经由总线连接的装置。处理器可表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器可表示一个或多个通用处理器,诸如,微处理器、中央处理单元(CPU)等。更具体地,处理器可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如,专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。
本文所述的处理模块/单元/逻辑、部件以及其它特征可实施为分立硬件部件或集成在硬件部件(诸如,ASICS、FPGA、DSP或类似装置)的功能中。此外,处理模块/单元/逻辑可实施为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑可以以硬件装置和软件部件的任何组合来实施。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,处理逻辑包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (20)
1.用于操作神经网络模型的推断层的计算机实施的方法,所述方法包括:
读取所述神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定出对应于所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,启用所述一个信道的推断操作;或者
响应于确定出对应于所述一个信道的所述信道核的所述信道稀疏度度量小于或等于所述稀疏推断阈值,禁用所述一个信道的推断操作。
2.根据权利要求1所述的方法,其中,所述稀疏推断阈值根据所述推断操作的所需速度或准确性进行动态地调整。
3.根据权利要求1所述的方法,还包括:
读取所述神经网络模型的附加推断层的元数据;以及
将与所述附加推断层的一个信道相对应的信道核的信道稀疏度度量与第二稀疏推断阈值进行比较;以及
响应于确定与所述附加推断层的所述一个信道相对应的所述信道核的所述信道稀疏度度量大于所述第二稀疏推断阈值,控制所述附加推断层的所述一个信道的推断操作。
4.根据权利要求1所述的方法,还包括:
训练所述神经网络模型,以生成与所述推断层的多个原始信道相对应的多个原始信道核;
根据所述多个原始信道核的信道稀疏度度量对所述推断层的所述多个原始信道核进行排序,以确定所述推断层的对应的所述原始信道是密集信道还是稀疏信道;
将所述推断层的所有稀疏信道合并为合并后的稀疏信道,以生成合并后的信道核;以及
重新训练所述合并后的信道核,以生成对应于所述合并后的稀疏信道的重新训练的合并后的信道核,同时保持与所述推断层的所有密集信道对应的所述原始信道核固定。
5.根据权利要求4所述的方法,还包括:
将所述推断层的所述多个信道生成为包括所述推断层的所有密集信道和所述合并后的稀疏信道;
确定所述重新训练的合并后的信道核的信道稀疏度度量;以及
将与所述合并后的稀疏信道相对应的所述重新训练的合并后的信道核的所述信道稀疏度度量以及与所述推断层的所有密集信道相对应的所述原始信道核的所述信道稀疏度度量存储到所述元数据中。
6.根据权利要求5所述的方法,其中,将与所述多个信道中的所述一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较包括:
将对应于所述合并后的稀疏信道的所述重新训练的合并后的信道核的所述信道稀疏度度量与所述稀疏推断阈值进行比较。
7.根据权利要求5所述的方法,还包括:
将与所述推断层的所述密集信道中的一个信道相对应的所述原始信道核的所述信道稀疏度度量与所述稀疏推断阈值进行比较;以及
响应于确定与所述密集信道的所述一个信道相对应的所述原始信道核的所述信道稀疏度度量大于所述稀疏推断阈值,控制所述推断层的所述密集信道的所述一个信道的推断操作。
8.根据权利要求5所述的方法,其中,根据所述多个原始信道核的信道稀疏度度量对所述推断层的所述多个原始信道核进行排序,以确定所述推断层的对应的所述原始信道是密集信道还是稀疏信道包括:
重新排列所述推断层的所述多个原始信道,以将所有密集信道和所有稀疏信道分别进行分组。
9.根据权利要求5所述的方法,其中,将所述推断层的所有稀疏信道合并为合并后的稀疏信道,以生成合并后的信道核包括:
将与所述推断层的所有稀疏信道相对应的所述多个原始信道核进行合并,以生成所述合并后的信道核。
10.数据处理系统,包括:
处理器;
存储器,所述存储器联接至所述处理器,以存储指令,所述指令在由所述处理器执行时致使所述处理器执行操作,所述操作包括:
读取神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定出对应于所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,启用所述一个信道的推断操作;或者
响应于确定处对应于所述一个信道的所述信道核的所述信道稀疏度度量小于或等于所述稀疏推断阈值,禁用所述一个信道的推断操作。
11.根据权利要求10所述的数据处理系统,其中,所述稀疏推断阈值根据所述推断操作的所需速度或准确性进行动态地调整。
12.根据权利要求10所述的数据处理系统,其中,所述操作还包括:
读取所述神经网络模型的附加推断层的元数据;以及
将与所述附加推断层的一个信道相对应的信道核的信道稀疏度度量与第二稀疏推断阈值进行比较;以及
响应于确定与所述附加推断层的所述一个信道相对应的所述信道核的所述信道稀疏度度量大于所述第二稀疏推断阈值,控制所述附加推断层的所述一个信道的推断操作。
13.根据权利要求10所述的数据处理系统,其中,所述操作还包括:
训练所述神经网络模型,以生成与所述推断层的多个原始信道相对应的多个原始信道核;
根据所述多个原始信道核的信道稀疏度度量对所述推断层的所述多个原始信道核进行排序,以确定所述推断层的对应的所述原始信道是密集信道还是稀疏信道;
将所述推断层的所有稀疏信道合并为合并后的稀疏信道,以生成合并后的信道核;以及
重新训练所述合并后的信道核,以生成对应于所述合并后的稀疏信道的重新训练的合并后的信道核,同时保持与所述推断层的所有密集信道对应的所述原始信道核固定。
14.根据权利要求13所述的数据处理系统,其中,所述操作还包括:
将所述推断层的所述多个信道生成为包括所述推断层的所有密集信道和所述合并后的稀疏信道;
确定所述重新训练的合并后的信道核的信道稀疏度度量;以及
将与所述合并后的稀疏信道相对应的所述重新训练的合并后的信道核的所述信道稀疏度度量以及与所述推断层的所有密集信道相对应的所述原始信道核的所述信道稀疏度度量存储到所述元数据中。
15.根据权利要求14所述的数据处理系统,其中,将与所述多个信道中的所述一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较包括:
将对应于所述合并后的稀疏信道的所述重新训练的合并后的信道核的所述信道稀疏度度量与所述稀疏推断阈值进行比较。
16.根据权利要求14所述的数据处理系统,其中,所述操作还包括:
将与所述推断层的所述密集信道中的一个信道相对应的所述原始信道核的所述信道稀疏度度量与所述稀疏推断阈值进行比较;以及
响应于确定与所述密集信道的所述一个信道相对应的所述原始信道核的所述信道稀疏度度量大于所述稀疏推断阈值,控制所述推断层的所述密集信道的所述一个信道的推断操作。
17.根据权利要求14所述的数据处理系统,根据所述多个原始信道核的信道稀疏度度量对所述推断层的所述多个原始信道核进行排序,以确定所述推断层的对应的所述原始信道是密集信道还是稀疏信道包括:
重新排列所述推断层的所述多个原始信道,以将所有密集信道和所有稀疏信道分别进行分组。
18.根据权利要求14所述的数据处理系统,其中,将所述推断层的所有稀疏信道合并为合并后的稀疏信道,以生成合并后的信道核包括:
将与所述推断层的所有稀疏信道相对应的所述多个原始信道核进行合并,以生成所述合并后的信道核。
19.具有存储在其中的指令的非暂时性机器可读介质,所述指令在由处理器执行时使所述处理器执行神经网络模型的推断层的操作,所述操作包括:
读取所述神经网络模型的推断层的元数据,所述推断层包括多个信道,并且所述元数据包括与所述多个信道相对应的多个信道核的信道稀疏度度量;
将与所述多个信道中的一个信道相对应的所述信道核的所述信道稀疏度度量与稀疏推断阈值进行比较;以及
响应于确定出对应于所述一个信道的所述信道核的所述信道稀疏度度量大于所述稀疏推断阈值,启用所述一个信道的推断操作;或者
响应于确定出对应于所述一个信道的所述信道核的所述信道稀疏度度量小于或等于所述稀疏推断阈值,禁用所述一个信道的推断操作。
20.根据权利要求19所述的非暂时性机器可读介质,其中,所述操作还包括:
训练所述神经网络模型,以生成与所述推断层的多个原始信道相对应的多个原始信道核;
根据所述多个原始信道核的信道稀疏度度量对所述推断层的所述多个原始信道核进行排序,以确定所述推断层的对应的所述原始信道是密集信道还是稀疏信道;
将所述推断层的所有稀疏信道合并为合并后的稀疏信道,以生成合并后的信道核;
重新训练所述合并后的信道核,以生成对应于所述合并后的稀疏信道的重新训练的合并后的信道核,同时保持与所述推断层的所有密集信道对应的所述原始信道核固定;
将所述推断层的所述多个信道生成为包括所述推断层的所有密集信道和所述合并后的稀疏信道;
确定所述重新训练的合并后的信道核的信道稀疏度度量;以及
将与所述合并后的稀疏信道相对应的所述重新训练的合并后的信道核的所述信道稀疏度度量以及与所述推断层的所有密集信道相对应的所述原始信道核的所述信道稀疏度度量存储到所述元数据中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/734,268 | 2020-01-03 | ||
US16/734,268 US20210209461A1 (en) | 2020-01-03 | 2020-01-03 | Methods for neural network sparsity channel generation and inference |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113078974A CN113078974A (zh) | 2021-07-06 |
CN113078974B true CN113078974B (zh) | 2023-08-18 |
Family
ID=76608998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011039200.XA Active CN113078974B (zh) | 2020-01-03 | 2020-09-28 | 用于神经网络稀疏信道生成和推断的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210209461A1 (zh) |
CN (1) | CN113078974B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021263193A1 (en) * | 2020-06-27 | 2021-12-30 | Unicorn Labs Llc | Smart sensor |
US12088369B2 (en) * | 2022-08-22 | 2024-09-10 | Samsung Electronics Co., Ltd | Method and apparatus for learning-based channel matrix prediction |
WO2024065530A1 (en) * | 2022-09-29 | 2024-04-04 | Intel Corporation | Methods and apparatus to perform artificial intelligence-based sparse computation based on hybrid pattern and dynamic encoding |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9438861B2 (en) * | 2009-10-06 | 2016-09-06 | Microsoft Technology Licensing, Llc | Integrating continuous and sparse streaming data |
CN102497337B (zh) * | 2011-12-11 | 2014-08-20 | 天津大学 | 一种基于稀疏度自适应的压缩感知无线通信信道估计方法 |
CN109034385A (zh) * | 2017-06-12 | 2018-12-18 | 辉达公司 | 用稀疏数据训练神经网络的系统和方法 |
US11093832B2 (en) * | 2017-10-19 | 2021-08-17 | International Business Machines Corporation | Pruning redundant neurons and kernels of deep convolutional neural networks |
US11080611B2 (en) * | 2017-12-22 | 2021-08-03 | Intel Corporation | Compression for deep learning in case of sparse values mapped to non-zero value |
US20190362235A1 (en) * | 2018-05-23 | 2019-11-28 | Xiaofan Xu | Hybrid neural network pruning |
US11080542B2 (en) * | 2018-07-27 | 2021-08-03 | International Business Machines Corporation | Sparse region-of-interest pooling for object detection |
CN109711532B (zh) * | 2018-12-06 | 2023-05-12 | 东南大学 | 一种针对硬件实现稀疏化卷积神经网络推断的加速方法 |
CN110163340A (zh) * | 2019-03-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 使用卷积神经网络进行计算的方法、装置和计算机可读存储介质 |
-
2020
- 2020-01-03 US US16/734,268 patent/US20210209461A1/en active Pending
- 2020-09-28 CN CN202011039200.XA patent/CN113078974B/zh active Active
Non-Patent Citations (1)
Title |
---|
Molchanov等.PRUNING CONVOLUTIONAL NEURAL NETWORKSFOR RESOURCE EFFICIENT INFERENCE.《ICLR》.2017,1-17. * |
Also Published As
Publication number | Publication date |
---|---|
US20210209461A1 (en) | 2021-07-08 |
CN113078974A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113078974B (zh) | 用于神经网络稀疏信道生成和推断的方法 | |
US11137762B2 (en) | Real time decision making for autonomous driving vehicles | |
US10997729B2 (en) | Real time object behavior prediction | |
CN107697070B (zh) | 驾驶行为预测方法和装置、无人车 | |
CN108604095B (zh) | 确定操作自动驾驶车辆的转向率的方法、介质及处理系统 | |
CN108139884B (zh) | 用于操作自动驾驶车辆的方法和系统 | |
US11465650B2 (en) | Model-free reinforcement learning | |
CN110850854A (zh) | 自动驾驶员代理和为自动驾驶员代理提供策略的策略服务器 | |
CN110850861A (zh) | 基于注意的分层变道深度强化学习 | |
CN114787822A (zh) | 智能图像传感器堆叠上的分布式神经网络处理 | |
CN111353599B (zh) | 深度神经网络的正确性保持优化 | |
CN110691957A (zh) | 基于深度卷积神经网络的路径规划系统和方法 | |
CN112784885B (zh) | 基于人工智能的自动驾驶方法、装置、设备、介质及车辆 | |
CN112650977B (zh) | 保护神经网络模型的方法 | |
WO2022017307A1 (zh) | 自动驾驶场景生成方法、装置及系统 | |
WO2022133090A1 (en) | Adaptive generation and assessment of autonomous vehicle critical scenarios | |
US20230159047A1 (en) | Learning-based critic for tuning a motion planner of autonomous driving vehicle | |
CN115439339A (zh) | 图像矫正 | |
CN112784867A (zh) | 利用合成图像训练深度神经网络 | |
WO2022175093A1 (en) | Apparatus, system and method for translating sensor data | |
CN118171723A (zh) | 智能驾驶策略的部署方法、装置、设备、存储介质和程序产品 | |
CN113379654A (zh) | 动态路由的块鉴别器 | |
US11745747B2 (en) | System and method of adaptive distribution of autonomous driving computations | |
US20230376832A1 (en) | Calibrating parameters within a virtual environment using reinforcement learning | |
CN118475892A (zh) | 用于基于Pareto支配的学习的系统和方法 |
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 |