CN116341609A - 一种网络模型运行方法、系统、电子设备及存储介质 - Google Patents
一种网络模型运行方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116341609A CN116341609A CN202310196137.8A CN202310196137A CN116341609A CN 116341609 A CN116341609 A CN 116341609A CN 202310196137 A CN202310196137 A CN 202310196137A CN 116341609 A CN116341609 A CN 116341609A
- Authority
- CN
- China
- Prior art keywords
- memory area
- layer
- configuration information
- parameter configuration
- model
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000015654 memory Effects 0.000 claims abstract description 183
- 230000002093 peripheral effect Effects 0.000 claims abstract description 79
- 230000006870 function Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种网络模型运行方法、系统、电子设备及存储介质,方法包括:根据外设存储模块存储的模型各层参数配置信息确定目标空间,根据目标空间从本地内存中申请目标内存区;从外设存储模块每读取一层参数配置信息,从外设存储模块读取该层参数配置信息对应的模型参数并存储到目标内存区;利用目标内存区存储的模型参数和该层参数配置信息执行一次运算。通过将模型部署到外设存储模块,提前申请的目标内存区,以满足网络模型中参数占用空间最大的网络层,在运行模型过程中,通过重复使用相同的内存区域,可以节省内存的使用,能够在MCU上实现层次结构较深的大型网络模型的运行。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种网络模型运行方法、系统、电子设备及存储介质。
背景技术
目前,越来越多的物联网设备采用人工智能技术实现无人工干预的自主决策,使产品与所处环境之间实现更合乎逻辑、更接近人类的交互。大部分物联网设备都是以MCU(微控制单元,Microcontroller Unit)作为主控制器,而大部分MCU与传统意义上的CPU(中央处理器,Central Process Unit)相比,内存硬件资源相对受限,例如RAM(Random AccessMemory,随机存取存储器)、FLASH等内存受限。借助轻量级人工智能推理框架,用户可以在MCU上部署深度学习网络模型。
然而,大部分的物联网设备,由于MCU的内存资源受限,导致无法运行太大的深度学习网络模型,使得在PC端或者服务端训练好的大型网络模型无法在资源受限的MCU上进行部署运行。
发明内容
本申请的目的是针对上述现有技术的不足提出的一种网络模型运行方法、系统、电子设备及存储介质,该目的是通过以下技术方案实现的。
本申请的第一方面提出了一种网络模型运行方法,所述方法包括:
根据外设存储模块存储的模型各层参数配置信息确定目标空间,并根据所述目标空间从本地内存中申请目标内存区;
从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区;
利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,并清除所述目标内存区存储的模型参数。
在本申请的一些实施例中,所述根据外设存储模块存储的模型各层参数配置信息确定目标空间,包括:
从所述外设存储模块读取各层参数配置信息;利用各层参数配置信息包含的算子函数确定各层输出数据量,从各层输出数据量中选取最大输出数据量;从各层参数配置信息包含的参数所需空间中选取最大的参数所需空间;将所述最大输出数据量所需的输出数据空间和最大参数所需空间确定为目标空间。
在本申请的一些实施例中,所述目标内存区包括参数内存区、输入内存区和输出内存区;所述根据所述目标空间从本地内存中申请目标内存区,包括:
按照所述最大参数所需空间,从本地内存中申请参数内存区;按照预设的输入数据量,从本地内存中申请输入内存区;按照所需的输出数据空间,从本地内存中申请输出内存区。
在本申请的一些实施例中,所述从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区,包括:
如果读取的是模型第一层参数配置信息,则将第一层参数配置信息对应的模型参数存储到参数内存区,将已获取到的输入数据存储到输入内存区;如果读取的是除模型第一层参数配置信息之外的其他层参数配置信息,则将其他层参数配置信息对应的模型参数存储到参数内存区,并将输出内存区中存储的输出数据作为输入数据移至输入内存区。
在本申请的一些实施例中,所述利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,包括:
根据参数内存区存储的模型参数和输入内存区存储的输入数据,调用该层参数配置信息包含的算子函数执行运算;将运算得到的输出数据存储到输出内存区。
在本申请的一些实施例中,在根据外设存储模块存储的模型各层参数配置信息确定目标空间之前,所述方法还包括:
接收到上电指令时,检测相关外设模块是否正常,所述相关外设模块包括外设存储模块;若相关外设模块均正常,则执行根据外设存储模块存储的模型各层参数配置信息确定目标空间的步骤。
本申请的第二方面提出了一种网络模型运行系统,所述系统包括:
外设存储模块,用于存储已训练模型包含的各个网络层的参数配置信息和模型参数;
数据源模块,用于将采集或者传输的数据作为模型的输入数据发送至MCU模块;
MCU模块,用于根据所述外设存储模块存储的模型各层参数配置信息确定目标空间,并根据所述目标空间从本地内存中申请目标内存区;从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区,并利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,并清除所述目标内存区存储的模型参数。
在本申请的一些实施例中,所述目标内存区包括参数内存区、输入内存区和输出内存区;所述MCU模块,具体用于在从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区过程中,当读取的是模型第一层参数配置信息时,将第一层参数配置信息对应的模型参数存储到参数内存区,并将所述数据源模块发送的输入数据存储到输入内存区;当读取的是除模型第一层参数配置信息之外的其他层参数配置信息时,将其他层参数配置信息对应的模型参数存储到参数内存区,并将输出内存区中存储的输出数据作为输入数据移至输入内存区。
本申请的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序以实现如上述第一方面所述方法的步骤。
本申请的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行以实现如上述第一方面所述方法的步骤。
基于上述第一方面和第二方面所述的网络模型运行方法及系统,本申请至少具有如下有益效果或优点:
由于网络模型中每一网络层的参数占用内存比较大并且各不相同,随着网络模型深度加深,网络层也会增加,本申请通过将训练好的网络模型的模型参数和参数配置信息部署到外设存储模块,在运行网络模型之前,通过根据各层参数配置信息确定目标空间,提前根据目标空间申请目标内存区,以满足网络模型中参数占用空间最大的网络层,然后在运行网络模型过程中,从外设存储模块每读取一层参数配置信息,便将该层参数配置信息对应的模型参数存储到目标内存区,并利用目标内存区存储的模型参数和该层参数配置信息执行一次运算,这样通过重复使用相同的内存区域,可以节省内存的使用,能够在MCU上实现层次结构较深的大型网络模型的运行。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请根据一示例性实施例示出的一种网络模型运行系统的结构示意图;
图2为本申请根据一示例性实施例示出的一种网络模型运行方法的实施例流程图;
图3为本申请根据一示例性实施例示出的一种电子设备的硬件结构示意图;
图4为本申请根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的系统和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了解决物联网设备使用MCU作为主控制器带来的无法运行太大深度网络模型的问题,本申请提出一种网络模型运行系统,参见图1所示,在MCU模块上外挂有外设存储模块,同时MCU模块还外接数据源模块,作为数据采集或数据传输的通道。
其中,外设存储模块用来存储已训练模型包含的各个网络层的参数配置信息和具体的模型参数,外设存储模块与MCU模块之间可以通过SPI(Serial PeripheralInterface,串行外设接口)或者SDIO(安全数字输入输出接口,Secure Digital Input andOutput)进行数据交互。
示意性的,外设存储模块可以采用TF卡或者FLASH。MCU模块可以理解为包含MCU芯片和MCU外围电路的电路模块。
在具体实施时,外设存储模块上存储的各层参数配置信息均包含需要调用的算子函数名和参数所需空间大小等,每层参数配置信息以XML或者JSON格式存储在外设存储模块上。而每层的模型参数包括权重和偏置,并且每层的权重和偏置均以文本文件方式存储在外设存储模块上。例如,权重Wn(n=1、2、3、4……),n代表网络模型的层序号,Wn代表相应层序号的权重,偏置Bn(n=1、2、3、4……),Bn代表相应层序号的偏置。
数据源模块用来将采集或者传输的数据作为模型输入端的输入数据发送至MCU模块,该数据源模块可以是相关传感器或者通信模块,例如摄像头或者WIFI(wirelessfidelity,无线保真)模块等。
MCU模块通过与外设存储模块进行交互实现网络模型的运行,具体是提前根据外设存储模块存储的模型各层参数配置信息确定目标空间,并根据目标空间申请目标内存区,然后在运行网络模型过程中,从外设存储模块每读取一层参数配置信息,便从外设存储模块读取该层参数配置信息对应的模型参数并存储到申请的目标内存区,进而利用目标内存区存储的模型参数和该层参数配置信息执行一次运算后,清除掉目标内存区存储的模型参数,便于存储下一网络层的模型参数。
在本申请实施例中,申请的目标内存区具体包括参数内存区、输入内存区和输出内存区。基于此,MCU模块在从外设存储模块每读取一层参数配置信息,从外设存储模块读取该层参数配置信息对应的模型参数并存储到目标内存区过程中,当读取的是模型第一层参数配置信息时,在将第一层参数配置信息对应的模型参数存储到参数内存区后,是将数据源模块发送的输入数据存储到输入内存区;当读取的是除模型第一层参数配置信息之外的其他层参数配置信息时,将其他层参数配置信息对应的模型参数存储到参数内存区后,是将输出内存区中存储的输出数据作为输入数据移至输入内存区。
需要说明的是,为了便于MCU模块在运行模型过程中调用相关算子函数,可以将算子函数库部署在MCU模块上。
具体地,算子函数库可以采用CMSIS-NN(Cortex Microcontroller SoftwareInterface Standard,ARM Cortex微控制器软件接口标准),CMSIS-NN是一组高效的神经网络算子库,用于最大化Arm Cortex处理器内核的性能,同时最小化内核中神经网络的内存占用。该算子库包含以下内容:
卷积层
激活函数
全连接层
SVDF(Singular Value Decomposition Filter,奇异值分解滤波器)层
池化层
Softmax层
基本数学运算
基于上述描述可知,由于外设存储模块的大小不受限,因此可以在外设存储模块上部署层次结构较深的大型网络模型,MCU模块在开始运行网络模型前,提前申请能满足网络模型中参数占用空间最大那一网络层的目标内存区,MCU模块在运行网络模型过程中,依次读取外设存储模块中的参数配置信息和相应的模型参数依次运算求解,从而重复使用相同的内存区域,也即目标内存区,节省了内存的使用,虽然这种依次读取每层参数依次运行的方式会牺牲掉时间,但是却能够在MCU上实现层次结构较深的大型网络模型的运行。
为了使本领域技术人员更好的理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图2为本申请根据一示例性实施例示出的一种网络模型运行方法的实施例流程图,所述方法应用于上述图1所示系统的MCU模块,参见图2所示,所述方法包括如下步骤:
步骤201:根据外设存储模块存储的模型各层参数配置信息确定目标空间,并根据目标空间申请目标内存区。
在执行步骤201之前,在整个系统上电后,需要对整个系统进行初始化自检,具体实现为:接收到上电指令时,检测相关外设模块是否正常,若相关外设模块均正常,则再执行步骤201,而若有一个外设模块异常,说明硬件有问题,结束当前流程。
其中,参见上述图1所示的系统,相关外设模块包括外设存储模块和数据源模块。
在步骤201中,由于网络模型中各网络层的参数占用内存比较大且各不相同,为了简化逻辑,根据各层参数配置信息确定的目标空间是模型中最大网络层的参数需要占用的空间。
基于此,针对根据外设存储模块存储的模型各层参数配置信息确定目标空间的具体实现过程是:通过从外设存储模块读取各层参数配置信息,然后利用各层参数配置信息包含的算子函数确定各层输出数据量,从各层输出数据量中选取最大输出数据量,以及从各层参数配置信息包含的参数所需空间中选取最大的参数所需空间,从而将最大输出数据量所需的输出数据空间和最大的参数所需空间确定为目标空间。
其中,参数所需空间大小指的是相应层的模型参数需占用的空间大小,选取出来的目标空间所对应的网络层是模型包含的所有网络层中占用空间最大的一层。
具体地,通过将某一网络层的模型参数和输入数据代入算子函数并执行该算子函数,所获得的算子函数返回结果即为该网络层的输出数据量。
值得注意的是,网络层包含的模型参数越多,算子函数返回结果的数据量越大,因此包含最大输出数据量所需的输出数据空间和最大的参数所需空间的目标空间为模型中最大网络层所需的空间大小。
可选的,针对根据目标空间申请目标内存区的过程,可以按照最大的参数所需空间,从本地内存中申请参数内存区,以及按照预设的输入数据量,从本地内存中申请输入内存区,以及按照所需的输出数据空间,从本地内存中申请输出内存区。
其中,目标内存区包括参数内存区、输入内存区和输出内存区,参数内存区用来存储网络层的模型参数,输入内存区用来存储输入数据,输出内存区用来存储输出数据。
进一步地,由于模型参数包括权重和偏置,因此参数内存区还可以进一步包括权重内存区和偏置内存区。
步骤202:从外设存储模块每读取一层参数配置信息,从外设存储模块读取该层参数配置信息对应的模型参数并存储到目标内存区。
在本申请实施例中,在运行模型过程中,从模型的第一层开始依次运行,运行完一层再运行下一层,因此每次从外设存储模块读取的是一层参数配置信息和模型参数进行运算。
在一具体实施方式中,如果读取的是模型第一层参数配置信息,则将第一层参数配置信息对应的模型参数存储到参数内存区后,是将已获取到的输入数据存储到输入内存区;而如果读取的是除模型第一层参数配置信息之外的其他层参数配置信息,则将其他层参数配置信息对应的模型参数存储到参数内存区后,是将输出内存区中存储的输出数据作为输入数据移至输入内存区。
其中,已获取到的输入数据是指数据源模块发送的数据。而如果读取的是除第一层参数配置信息之外的其他层参数配置信息,由于运行上一层有输出数据存储到输出内存区,并且上一层输出数据是作为当前要运行这一层的输入数据,因此需要将输出内存区中存储的输出数据作为输入数据移至输入内存区,以便于运行当前读取到的这一层。
步骤203:利用目标内存区存储的模型参数和该层参数配置信息执行一次运算,并清除目标内存区存储的模型参数。
在一可选实现方式中,针对利用目标内存区存储的模型参数和该层参数配置信息执行一次运算的过程,可以根据参数内存区存储的模型参数和输入内存区存储的输入数据,调用该层参数配置信息包含的算子函数执行运算,然后将运算得到的输出数据存储到输出内存区。
其中,具体执行运算逻辑是将模型参数和输入数据代入算子函数后执行该算子函数,从而可以获取到该算子函数返回的运算结果,即输出数据。
针对上述步骤201至步骤203的过程,下面对网络模型的具体运行流程详细说明如下:
1.整个系统上电,初始化自检,检测相关外设模块(包括外设存储模块、传感器或通信模块)是否正常,如果有不正常的外设模块,则直接结束,说明硬件有问题,如果均正常,则执行步骤2。
2.从外设存储模块读取模型中各层参数配置信息,并找到最大的参数所需空间和最大输出数据量所需的输出数据空间,记录下来。
3.按照预设的输入数据量、步骤2中所记录的最大的参数所需空间、最大输出数据量所需的输出数据空间申请对应的输入内存区、参数内存区和输出内存区,用来分别存储对应数据。
4.如果步骤3申请失败,则异常结束。
5.从外设存储模块读取模型第1层参数配置信息,并将第1层模型参数存储到参数内存区,继而调用第1层参数配置信息包含的算子函数执行运算,将运算得到的输出数据存储到输出内存区。
6.将步骤5得到的输出数据从输出内存区搬运到输入内存区作为输入数据,并将输出内存区清0。
7.继续读取模型的下一层参数配置信息,并将下一层模型参数存储到参数内存区,,继而调用下一层参数配置信息包含的算子函数执行运算,将运算得到的输出数据存储到输出内存区。
8.继续执行步骤6,依次循环,直到读取到最后一层参数配置信息,然后运算得到输出结果。
至此,完成上述图2所示的网络模型运行流程,由于网络模型中每一网络层的参数占用内存比较大并且各不相同,随着网络模型深度加深,网络层也会增加,本申请通过将训练好的网络模型的模型参数和参数配置信息部署到外设存储模块,在运行网络模型之前,通过根据各层参数配置信息确定目标空间,提前根据目标空间申请目标内存区,以满足网络模型中参数占用空间最大的网络层,然后在运行网络模型过程中,从外设存储模块每读取一层参数配置信息,便将该层参数配置信息对应的模型参数存储到目标内存区,并利用目标内存区存储的模型参数和该层参数配置信息执行一次运算,这样通过重复使用相同的内存区域,可以节省内存的使用,能够在MCU上实现层次结构较深的大型网络模型的运行。
本申请实施方式还提供一种与前述实施方式所提供的网络模型运行方法对应的电子设备,以执行上述网络模型运行方法。
图3为本申请根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。处理器602通过读取并执行存储器603中与网络模型运行方法的控制逻辑对应的机器可执行指令,可执行上文描述的网络模型运行方法,该方法的具体内容参见上述实施例,此处不再累述。
本申请中提到的存储器603可以是任何电子、磁性、光学或其它物理存储系统,可以包含存储信息,如可执行指令、数据等等。具体地,存储器603可以是RAM(Random AccessMemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。通过至少一个通信接口601(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线604可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器603用于存储程序,所述处理器602在接收到执行指令后,执行所述程序。
处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
本申请实施例提供的电子设备与本申请实施例提供的网络模型运行方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的网络模型运行方法对应的计算机可读存储介质,请参考图4所示,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的网络模型运行方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的网络模型运行方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种网络模型运行方法,其特征在于,所述方法包括:
根据外设存储模块存储的模型各层参数配置信息确定目标空间,并根据所述目标空间从本地内存中申请目标内存区;
从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区;
利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,并清除所述目标内存区存储的模型参数。
2.根据权利要求1所述的方法,其特征在于,所述根据外设存储模块存储的模型各层参数配置信息确定目标空间,包括:
从所述外设存储模块读取各层参数配置信息;
利用各层参数配置信息包含的算子函数确定各层输出数据量,从各层输出数据量中选取最大输出数据量;
从各层参数配置信息包含的参数所需空间中选取最大的参数所需空间;
将所述最大输出数据量所需的输出数据空间和最大的参数所需空间确定为目标空间。
3.根据权利要求2所述的方法,其特征在于,所述目标内存区包括参数内存区、输入内存区和输出内存区;
所述根据所述目标空间从本地内存中申请目标内存区,包括:
按照最大的参数所需空间,从本地内存中申请参数内存区;
按照预设的输入数据量,从本地内存中申请输入内存区;
按照所需的输出数据空间,从本地内存中申请输出内存区。
4.根据权利要求3所述的方法,其特征在于,所述从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区,包括:
如果读取的是模型第一层参数配置信息,则将第一层参数配置信息对应的模型参数存储到参数内存区,将已获取到的输入数据存储到输入内存区;
如果读取的是除模型第一层参数配置信息之外的其他层参数配置信息,则将其他层参数配置信息对应的模型参数存储到参数内存区,并将输出内存区中存储的输出数据作为输入数据移至输入内存区。
5.根据权利要求4所述的方法,其特征在于,所述利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,包括:
根据参数内存区存储的模型参数和输入内存区存储的输入数据,调用该层参数配置信息包含的算子函数执行运算;
将运算得到的输出数据存储到输出内存区。
6.根据权利要求1-5任一项所述的方法,其特征在于,在根据外设存储模块存储的模型各层参数配置信息确定目标空间之前,所述方法还包括:
接收到上电指令时,检测相关外设模块是否正常,所述相关外设模块包括外设存储模块;
若相关外设模块均正常,则执行根据外设存储模块存储的模型各层参数配置信息确定目标空间的步骤。
7.一种网络模型运行系统,其特征在于,所述系统包括:
外设存储模块,用于存储已训练模型包含的各个网络层的参数配置信息和模型参数;
数据源模块,用于将采集或者传输的数据作为模型的输入数据发送至MCU模块;
MCU模块,用于根据外设存储模块存储的模型各层参数配置信息确定目标空间,并根据所述目标空间从本地内存中申请目标内存区;从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区,并利用所述目标内存区存储的模型参数和该层参数配置信息执行一次运算,并清除所述目标内存区存储的模型参数。
8.根据权利要求7所述的系统,其特征在于,所述目标内存区包括参数内存区、输入内存区和输出内存区;
所述MCU模块,具体用于在从所述外设存储模块每读取一层参数配置信息,从所述外设存储模块读取该层参数配置信息对应的模型参数并存储到所述目标内存区过程中,当读取的是模型第一层参数配置信息时,将第一层参数配置信息对应的模型参数存储到参数内存区,并将所述数据源模块发送的输入数据存储到输入内存区;当读取的是除模型第一层参数配置信息之外的其他层参数配置信息时,将其他层参数配置信息对应的模型参数存储到参数内存区,并将输出内存区中存储的输出数据作为输入数据移至输入内存区。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序以实现如权利要求1-6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行以实现如权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310196137.8A CN116341609A (zh) | 2023-02-23 | 2023-02-23 | 一种网络模型运行方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310196137.8A CN116341609A (zh) | 2023-02-23 | 2023-02-23 | 一种网络模型运行方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116341609A true CN116341609A (zh) | 2023-06-27 |
Family
ID=86893996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310196137.8A Pending CN116341609A (zh) | 2023-02-23 | 2023-02-23 | 一种网络模型运行方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116341609A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822656A (zh) * | 2023-08-25 | 2023-09-29 | 深圳鲲云信息科技有限公司 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
-
2023
- 2023-02-23 CN CN202310196137.8A patent/CN116341609A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822656A (zh) * | 2023-08-25 | 2023-09-29 | 深圳鲲云信息科技有限公司 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
CN116822656B (zh) * | 2023-08-25 | 2023-12-26 | 深圳鲲云信息科技有限公司 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190095212A1 (en) | Neural network system and operating method of neural network system | |
CN116341609A (zh) | 一种网络模型运行方法、系统、电子设备及存储介质 | |
CN110493342B (zh) | 文件传输方法、装置、电子设备及可读存储介质 | |
CN109426415B (zh) | 一种生成级联选择器的方法及装置 | |
CN112533060B (zh) | 一种视频处理方法及装置 | |
CN106610989B (zh) | 搜索关键词聚类方法及装置 | |
CN112506992A (zh) | Kafka数据的模糊查询方法、装置、电子设备和存储介质 | |
CN109697767B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN109582396B (zh) | 一种任务状态处理方法、装置、系统及存储介质 | |
CN110019497B (zh) | 一种数据读取方法及装置 | |
CN114724103A (zh) | 神经网络处理系统、指令生成方法、装置及电子设备 | |
CN108196844A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN112068948B (zh) | 数据散列方法、可读存储介质和电子设备 | |
CN113987378A (zh) | 一种页面渲染时长监控方法、装置、电子设备及存储介质 | |
CN110704742B (zh) | 一种特征提取方法及装置 | |
CN109710833B (zh) | 用于确定内容节点的方法与设备 | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络系统和方法 | |
US20200026662A1 (en) | Direct memory access | |
CN107135137B (zh) | 网络群组识别方法及装置 | |
CN110908876A (zh) | 一种硬件性能数据的获取方法及装置 | |
CN111475589A (zh) | 图像数据的渲染方法及装置 | |
CN109241066B (zh) | 请求处理方法及装置 | |
CN117850895B (zh) | 基于引导加载程序启动设备的方法、装置及电子设备 | |
CN116629386B (zh) | 模型训练方法及装置 | |
CN115439846B (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 |