CN117709402A - 模型构建方法、装置、平台、电子设备及存储介质 - Google Patents
模型构建方法、装置、平台、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117709402A CN117709402A CN202211068160.0A CN202211068160A CN117709402A CN 117709402 A CN117709402 A CN 117709402A CN 202211068160 A CN202211068160 A CN 202211068160A CN 117709402 A CN117709402 A CN 117709402A
- Authority
- CN
- China
- Prior art keywords
- model
- variable
- information
- basic
- filling
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 48
- 238000003062 neural network model Methods 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000006243 chemical reaction Methods 0.000 claims abstract description 51
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 238000003491 array Methods 0.000 claims description 9
- 239000000945 filler Substances 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 description 32
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 210000000225 synapse Anatomy 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 210000004556 brain Anatomy 0.000 description 5
- 210000001787 dendrite Anatomy 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000019771 cognition Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000005036 nerve Anatomy 0.000 description 2
- 239000002858 neurotransmitter agent Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- -1 electric synapses Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 210000004498 neuroglial cell Anatomy 0.000 description 1
- 230000004007 neuromodulation Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/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/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种模型构建方法、装置、平台、电子设备及存储介质,所述方法包括在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。本发明实施例的技术方案降低了神经网络模型构建的复杂度。
Description
技术领域
本发明涉及一种数据处理技术领域,尤其涉及一种模型构建方法、装置、平台、电子设备及存储介质。
背景技术
类脑计算系统是构建新型高性能计算硬件与软件系统,模仿大脑生物神经系统的结构与工作原理,支撑类脑高性能并行计算。类脑智能和认知计算以脉冲神经网络为基础,结合生物脑中的多种神经递质、神经调质、受体、电突触、化学突触、树突、神经元、胶质细胞的丰富工作机制进行计算建模,构造成的神经环路、神经核团、脑区和全脑模型,能够模拟生物脑的诸多认知机制和行为。
现今的搭建神经网络模型的方式较为复杂,用户体验度低,因此,需要一种模型构建方法以解决上述的技术问题。
发明内容
本发明实施例提供一种模型构建方法、装置、平台、电子设备及存储介质,实现了对神经网络模型的描述和转换,简化了构建神经网络模型的复杂度。
第一方面,本发明实施例提供了一种模型构建方法,包括:
在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
第二方面,本发明实施例还提供了一种模型构建装置,所述装置包括:
模型描述模块,用于在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
模型转换模块,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
第三方面,本发明实施例还提供了一种模型构建平台,所述平台执行如本发明实施例的模型构建方法,所述平台包括:前端部分、核心部分和后端部分,其中:
所述前端部分,用于用于代理所述平台外部与所述核心部分和/或所述后端部分进行交互;
所述核心部分,用于响应所述前端部分和/或所述后端部分的请求,在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
所述后端部分,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
第四方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例中的模型构建方法。
第五方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任一实施例中的模型构建方法。
通过本发明实施例的技术方案,在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,模型描述数据包括第一模型和/或预先存储的基础模型的信息;基础模型和/或第一模型用于构建神经网络模型。第一模型为用户自定义的模型。在需要进行模型转换的情况下,进入模型转换阶段,将源模型转换为可执行模型。本发明实施例的技术方案简化了模型构建时的复杂度,提高了模型构建速度,进而提高了用户体验度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中模型构建方法的流程示意图;
图2为另一实施例中模型构建装置的结构示意图;
图3为另一实施例中的模型构建平台的结构示意图;
图4为另一实施例中的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在阐述本发明实施例的技术方案之前,首先对本发明实施例的应用场景进行示例性说明:
神经网络模型由大量、简单的处理单元(神经元)互相连接而形成的复杂网络模型,反映了人脑功能的许多基本特征,神经网络模型具有大规模并行、分布式存储和处理、自组织、自适应和自学能力。现有技术中的神经网络模型的构建和训练需要在性能更加优异的GPU、CPU等上运行。用户在构建神经网络模型时,需要考虑后端硬件设备的分配情况,加大了用户构建神经网络模型的复杂度,降低了用户体验度。本发明实施例提出一种模型构建方法,可以解决上述的技术问题,使得用户在构建模型时,无需考虑后端硬件设备情况,只需要描述源模型即可,当描述完成后,在需要进行模型转换的情况下,将源模型转换为可执行模型,本发明实施例的技术方案降低了模型构建复杂度,提高了用户体验度。
在一本发明实施例中,提供了一种模型构建方法,图1为本发明实施例提供的模型构建方法的流程示意图。该方法可以由模型构建装置来执行,该装置可以通过软件和/或硬件的形式实现。比如,软件的应用程序与后端硬件设备的结合实现该装置。模型包括但不限于神经元模型、突触模型、树突模型、可塑性模型、神经调制机制模型等。
神经元模型包括但不限于脉冲神经元模型、深度神经元模型、发放率神经元模型;举例来说,神经元模型可以包括LIF(leaky integrate-and-fire)、Hodgkin-Huxley、激活函数ReLU等模型,既可以采用偏微分方程,也可以用欧拉方式或其它函数描述其动力学。
如图1所示,本发明实施例的模型构建方法具体包括如下步骤:
S110、在模型描述阶段,基于模型描述信息得到神经网络模型的源模型。
其中,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息。所述基础模型和/或所述第一模型用于构建神经网络模型。所述第一模型为用户自定义的模型。基础模型是指预先存储的具有结构信息和变量信息的模型。基础模型是指构建神经网络模型的最小处理单元或者最小处理单元的组合单元,比如,源模型可以是神经元模型、神经元组模型、突触模型、突触组模型、树突模型等。第一模型是指用户自己定义的模型,比如,用户编写的与源模型相关的第一模型的编程代码。模型描述信息用于描述神经网络模型,也即本发明实施例中的源模型。本发明实施例中的源模型是指未分配存储空间的神经网络模型。
具体的,基于模型描述信息描述出源模型,本步骤不需要考虑源模型占用内存情况,提高源模型获取的效率。可选的,源模型可以是由至少一个基础模型构成,也可以是由至少一个第一模型构成,还可以是由至少一个源模型和至少一个第一模型构成。
S120、在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
本发明实施例中,在需要进行模型转换的情况下,可以是指用户输入了模型转换指令的情况。本发明实施例中的可执行模型包括将源模型分配了存储空间的源模型,也即在将源模型分配了存储空间之后,可以得到可执行模型。
具体的,将源模型转换为可执行模型,将可执行模型作为构建完成的神经网络模型。当然,若是用户需要的是源模型,也可以不进行模型转换,直接得到源模型,将源模型作为用户需要构建的神经网络模型。
本发明实施例的技术方案,通过基于模型描述信息得到源模型,模型描述信息包括第一模型和/或预先存储的源模型的信息,源模型和/或第一模型用于构建神经网络模型,第一模型为用户自定义的模型。在需要进行模型转换的情况下,将源模型转换为可执行模型,本发明实施例的技术方案简化了模型构建时的复杂度,提高了模型构建速度,进而提高了用户体验度。
在另一本发明实施例中,所述在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型,包括:若所述模型描述信息为第一模型的信息,则编译所述第一模型,得到可执行模型,和/或若所述模型描述信息为基础模型的信息,则获取所述基础模型对应的可执行模型。
本发明实施例中,针对不同的模型描述信息具有不同的转换方式,在模型描述信息为第一模型的情况下,编译第一模型,得到可执行模型,在模型描述信息为源模型的情况下,获取源模型对应的可执行模型。由于源模型为预先存储的模型,所以,在获取了源模型的结构信息以及变量信息,可以得到对应的可执行模型。由于第一模型是用户编写的编程代码,对编程代码进行编译,得到可执行模型。
在另一本发明实施例中,在得到可执行模型后,运行可执行模型,可以测试构建的可执行模型。
在所述模型描述信息为预先存储的源模型的信息的情况下,所述基于模型描述信息得到神经网络模型的源模型之前,还包括:获取模型构建信息中的至少一个基础模型的模型标识,以及所述基础模型的至少一个变量的变量标识;基于所述模型标识,调取与所述模型标识对应的基础模型;基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项;所述变量注册表中包括至少一个变量注册项,所述变量注册项用于描述变量;所述基于模型描述信息得到神经网络模型的源模型,包括:至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型。
其中,模型构建信息是指用户输入的、用于构建模型的信息,包括至少一个基础模型的模型标识和每个基础模型的变量的变量标识。需要说明的是,本发明实施例中基础模型包括多个变量,可以根据用户需要,获取多个变量中的至少一个。因此,模型构建信息中的变量标识为至少一个。变量注册表中包括至少一个变量注册项,变量注册项用于描述变量。变量注册表是指预先存储的基础模型的各个变量的表。变量注册表包括变量标识和与变量标识对应的变量注册项。变量标识可以是变量名称、变量编号等。变量注册项是指描述变量的内容,基础模型中各个变量的信息存储在对应的变量注册表中。可选的,在本发明实施例中一个基础模型对应着一个变量注册表。
具体的,获取模型构建信息中的至少一个基础模型的模型标识和每个基础模型对应的变量标识。预先存储有基础模型,基于模型标识可以从存储基础模型的模型存储区中调取与模型标识对应的基础模型。基于至少一个变量标识从基础模型对应的变量注册表中调取与至少一个变量标识一一对应的变量注册项。根据至少一个基础模型和基础模型的变量注册项描述源模型,对于源模型的描述,无需考虑神经网络模型后续运算的情况,用户只需要将需要描述的源模型以模型构建信息的方式表述出来即可,简化了用户的操作。示例性的,基础模型为一个神经元,包括两个变量,分别描述神经元的输入端口和输出端口,则根据神经元、输入端口和输出端口可以描述神经网络模型的源模型。需要说明的是,本步骤中的源模型是指根据基础模型和基础模型的变量注册项描述的模型。
通过本发明实施例的技术方案,只需要在接收到模型构建信息时,获取模型构建信息中的基础模型的模型标识和基础模型的变量的变量标识,就可以根据模型标识快速的调取基础模型,并根据变量标识快速调取基础模型的变量注册表中的变量注册项。由此,后续就可以根据至少一个基础模型和基础模型的变量注册项,快速的描述源模型。在需要进行模型转换的情况下,将源模型转换为可执行模型,本发明实施例的技术方案简化了模型构建时的复杂度,提高了模型构建速度,进而提高了用户体验度。
可选的,在需要进行模型转换的情况下,可以是指接收到用户输入的模型转换指令的情况下。
在另一本发明实施例中,在所述模型构建信息中还包括变量的至少一个目标变量注册子项的情况下,所述方法还包括:获取所述变量的至少一个目标变量注册子项;所述基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项之后,还包括:检测所述变量注册项是否存在与目标变量注册子项相对应的初始变量注册子项;所述变量注册项中包括至少一个初始变量注册子项,所述初始变量注册子项包括变量类型和数据类型的至少一项;若是,基于目标变量注册子项更新所述初始变量注册子项,得到新的变量注册项,若否,在所述变量注册项增加所述至少一个目标变量注册子项,得到新的变量注册项。
其中,变量注册项包括多个初始变量注册子项,初始变量注册子项可以是变量类型、数量类型、是否可持久化、是否共享等。变量类型包括单变量、张量变量等。数据类型是指与变量类型对应的数据的类型,比如,单变量的数据类型为数值,张量变量的数据类型为多维数组等。是否持久化包括该变量是否在源模型中始终不变,是否共享包括变量是否共享给其他的模型。
具体的,在获取了模型构建信息的目标变量注册子项后,检测变量的初始变量注册项中是否存在与目标变量注册子项相对应的初始变量注册子项,若是,基于目标变量注册子项更新初始变量注册子项,得到新的变量注册项。若否,在变量注册项中增加目标变量注册子项,得到新的变量注册项。通过本方法,可实现用户对现有的基础模型的变量进行调整,以得到适合构建的神经网络模型的基础模型,进而提高了神经网络模型构建的灵活度。
在另一本发明实施例中,在本发明实施例中,存储在模型存储区中的基础模型可以是一类具有相同变量数量的模型的统称,比如,神经元模型对应的变量注册表中包括三个变量,而在实际调取该神经元模型时,可以调取其中的两个变量,或者,可以调取其中的一个变量,这样的话,当调取出两个变量时,基于神经元模型和两个变量描述第一神经网络模型,当调取出一个变量时,基于该神经元模型和一个变量描述出第二神经网络模型。应当理解,这里的第一神经网络模型和第二神经网络模型是不同的。这样存储的基础模型和基础模型的变量注册表,可以减少资源占用。
在另一本发明实施例中,所述至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型,包括:暂存所述基础模型和所述基础模型对应的所述变量注册项,以得到源模型。
本发明实施例中,暂时存储至少一个基础模型和基础模型对应的至少一个变量注册项,用以描述神经网络模型,也即得到源模型。以便在进行源模型转换时,可以根据存储的基础模型和变量注册项对源模型进行转换。需要说明的是,在模型描述阶段,只需要存储基于模型标识调取的基础模型,和基于变量标识调取的变量注册项即可,方便用户操作,并且,也提高了神经网络模型描述的效率。
在另一本发明实施例中,所述同步填充方式即在描述变量待填充内容时随即进行填充,包括:如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
在另一本发明实施例中,所述异步填充方式即在描述变量待填充内容之后的任一时刻进行填充,包括:如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
在另一本发明实施例中,所述方法还包括:采用同步填充方式对所述基础模型和/或第一模型的变量进行填充,或者采用异步填充方式对所述基础模型和/或第一模型的变量进行填充。
在一种实施例中,所述模型描述信息包括变量待填充内容。
在一种实施例中,所述变量填充器可以根据指定的变量待填充内容和/或指定的填充方式生成待填充数据值。所述变量待填充内容、填充方式都是相对更抽象的上位概念,而待填充数据值是具体的。
在一种可能的实现方式,指定填充方式包括同步填充方式和/或异步填充方式。其中,同步填充方式是指确定了指定变量的变量待填充内容时,系统便为指定变量分配存储空间(若已获分配存储空间则无需再次分配),并进行填充;异步填充方式则是指确定了指定变量的变量待填充内容时,不会立即填充,而是在更晚的时候(例如模型编译阶段)给指定变量分配存储空间后(若已获分配存储空间则无需再次分配)方才进行填充。从存储空间分配时机角度,同步填充方式下立即分配存储空间,而异步填充方式下可以延迟分配存储空间。以异步填充方式为例,声明一个变量时,可能尚未为该变量实际分配存储空间,但是可以在声明该变量的API中指定变量填充器和/或填充方式,即确定了变量待填充内容,当该变量获得分配存储空间时,再进行填充,有利于使源模型与硬件细节解耦。
本发明实施例中,通过同步填充方式或者异步填充方式进行变量的填充,可以根据系统在对变量进行填充时的实际情况进行适应性的改变。通过同步填充方式或者异步填充方式对变量进行填充,提高了变量填充的灵活性。
比如,基础模型中的变量为单变量,则在模型描述阶段,可以对基础模型和/或第一模型的变量进行待填充数据值的赋值。再如,在得到可执行模型并且完成了初始化后,或者,运行了可执行模型后,接收到用户的变量更新的待填充数据值,则将待填充数据值直接填充到已经分配了存储空间的基础模型和/或第一模型的变量中。
数据值包括数据类型对应的具体的值。比如,张量变量的数量类型为多维数组,数据值是指多维数组的具体数据值。应当理解,本发明实施例中的变量注册项中的数据类型是指多维数组、数值、字符串等,当然,数据类型中包括具体的数据值,比如,数据类型为数值,具体数值为2。当然,数据值不局限于数据类型对应的值,用户可以根据实际情况对变量注册项中的变量注册子项进行增加和删减,或者对第一模型的变量进行调整等。所以,数据值也会发生相应的变化。本发明实施例中的存储空间可以是GPU、CPU等的内存空间。
需要说明的是,本发明实施例中的基础模型包括至少一个变量,若是某个基础模型包括了张量变量和单变量,该基础模型根据张量变量进行存储空间分配,并进行待填充数据值的填充,并且,调取单变量的待填充数据值,完成该基础模型的初始化。同理,第一模型与基础模型的上述操作相同,这里不再赘述。
在另一本发明实施例中,所述变量注册项包括多个变量注册子项,所述张量变量的所述变量注册子项中的待填充数据值包括多维数组;所述按照所述变量对应的变量注册项,调用所述待填充数据值对已经分配有存储空间的基础模型和/或第一模型的变量进行填充,包括:在基础模型的变量类型为张量变量的情况下,按照变量注册子项中的多维数组,对基础模型进行存储空间的分配,并将分配了存储空间的基础模型进行多维数组的填充。
本发明实施例中,在基础模型的变量类型为张量变量的情况下,按照变量注册子项中的多维数组,对基础模型进行存储空间的分配,并将分配了存储空间的基础模型进行多维数组的填充,通过这种填充方式可以为张量变量进行多维数组的填充,实现在可执行模型运行前的准备工作。针对多维数组对基础模型进行存储空间的分配,保证了存储空间分配的合理性。
在另一本发明实施例中,所述将分配了存储空间的基础模型进行多维数组的填充,包括:通过常量填充、拷贝填充、均匀随机填充、正态随机填充和局部卷积填充中的至少一种变量填充方式对基础模型进行多维数组进行填充。
在另一本发明实施例中,所述将分配了存储空间的基础模型进行多维数组的填充,包括:通过变量填充器对分配了存储空间的基础模型进行多维数组的填充。
本发明实施例中,预先设置了变量填充器,变量填充器可以根据指定方式合作或者默认方式进行变量的填充,在这里为多维数组的填充。通过变量填充器对分配了存储空间的基础模型进行多维数组的填充。
可选的,本发明实施例中的变量填充器可以根据用户指定的数值区间,对基础模型的变量进行随机数值的填充,也即用户在输入模型构建信息中,不仅输入了变量标识,也输入了变量的变量注册子项,对变量注册子项中的内容进行限定或者更新。在进行待填充数据值的填充时,可以根据变量注册子项中的具体待填充数据值或者数值区间对基础模型进行待填充数据值的填充。
在另一本发明实施例中,在所述模型描述信息为基础模型,并在从所述模型构建信息中获取到多个基础模型的模型标识的情况下,所述方法还包括:获取各个基础模型之间的拓扑结构信息;所述至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型,包括:基于各个基础模型、每个基础模型对应的变量注册项以及拓扑结构信息得到所述源模型。
本发明实施例中,拓扑结构信息用于描述基础模型之间的连接方式,基础模型之间数据的传输方式,数据的格式等。通过拓扑结构信息可以将独立的基础模型连接起来。具体的,在从模型构建信息中获取到多个基础模型的模型标识,并获取各个基础模型之间的拓扑结构信息。基于各个基础模型,每个基础模型对应的变量注册项以及各个基础模型之间的拓扑结构信息,描述神经网络模型,也即得到源模型。通过本方法可以得到各种不同框架、不同结构的源模型。
在另一本发明实施例中,所述拓扑结构信息包括端口信息和/或数据传输的模型信息;模型信息包括所述基础模型的输入模型信息和输出模型信息中的至少一个项;若基础模型为端口模型,则拓扑结构信息包括端口信息;若基础模型为容器模型,则拓扑结构信息包括所述模型信息。
本发明实施例中,端口模型包括端口和模型主体,端口模型可以是指具有端口的基础模型。在本发明实施例中模型主体可以是指神经元、突触、神经元组、突触组等。端口包括输入端口、输出端口、引用端口、连接端口等。端口信息用于描述基础模型之间的连接方式,比如基础模型A的输出端口连接基础模型B的输入端口。端口信息包括输入端口信息、输出端口信息、引用端口信息和连接端口信息中的至少一项。引用端口提供给端口模型的一种引用其它端口模型变量的机制,双方具有严格的绑定关系。引用端口用于在至少两个端口模型对象间共享信息。连接端口是一种模型管理接口,绑定到连接模型。连接端口用于将其它端口模型动态绑定到另一个端口模型。容器模型包括将一个或者多个组成部分放置在一个容器中。比如,将一个或者多个神经元放置在一个容器中,得到容器1,将容器1以及多个神经元放置在容器3中。将容器1和容器3放置在容器4中等。组成部分可以是单个的神经元,也可以是容器等。模型信息用于确定输入模型和输出模型,输入模型信息可以是输入模型的标识,以确定对应的输入模型,输出模型信息也可以是输出模型的标识,以确定输出模型。可选地,预先在容器模型中设置了输入模型的模型类型和输出模型的模型类型。示例性的,当容器模型A的输入模型的模型类型,与容器模型C的输出模型类型的模型类型相同时,可以将二者连接。
具体的,本发明实施例中,在基础模型为端口模型的情况下,获取端口模型的端口信息,在基础模型为容器模型的情况下,获取模型类型。通过确定端口模型和容器模型的拓扑结构,实现通过多个基础模型描述源模型。需要说明的是,当容器模型设置了输入端口和输出端口的时候,此时的容器模型可以是指端口模型。
可选的,对于端口模型而言,可以通过端口模型范式来描述源模型。端口模型描述范式包括端口模型类、端口模型模板中的至少一种,以基于端口模型类、端口模型模板中的至少一种端口模型描述范式确定端口模型。端口模型描述范式,是指将基础模型的一至多个组成部分安排在一至多个端口模型中,端口模型之间可以通过一至多个端口进行关联,以便于变量引用或共享,形成嵌套、级联、循环等组织方式。此种方式下,信息流向更加清晰,模型组织形式更加灵活,模块化程度更好,更易于不同合作者之间进行合作开发,将各自的模型按照一定规范形成模块,进一步组织成更大的模型,并且用户不必关注硬件底层细节。以端口模型类确定端口模型举例说明,对于神经元来说,基于端口模型类便能够衍生得到神经元端口模型,该神经元端口模型中的端口至少包括输入端口、输出端口,其模型主体配置为漏积分函数、单变量作为神经元的阈值、单变量作为神经元的膜电位,以及配置输入端口接受一至多个神经元的输入、输出端口连接至一至多个神经元。
可选的,对于容器模型,基于容器模型、变量注册项以及拓扑结构信息,描述源模型,可以采用容器模型范式描述源模型,即将基础模型的一至多个组成部分安排在一至多个容器中,通过容器进行模型的管理、调度。容器模型范式包括容器类、容器模板中的至少一种,以基于容器类、容器模板中的至少一种容器模型描述范式,形成位于不同层次的容器模型。容器间可以形成级联、树状、扁平状、嵌套等组织形式。容器模型包括节点容器,也即神经元容器,根据变量对基础模型进行描述可以构建出节点容器,节点容器类型包括但不限于:神经元模型、突触模型和树突模型等。将创建的节点容器连接形成网络模型,也即源模型。
此种方式下,有利于实现任意颗粒度的源模型,更加有利于硬件底层关于源模型的转换,使得用户设计目标模型时,设计更符合硬件特性的操作,以便于后端部分能够更加合理地安排内存等硬件资源的调用。
在一种可能的实现方式,网络拓扑结构包括但不限于:顺馈结构、反馈结构、跨层结构、侧向结构、循环结构、自循环结构、神经元与神经元直连结构、突触与突触直连结构、突触与树突直连结构。
在另一本发明实施例中,所述将所述源模型转换为可执行模型之后,还包括:接收到模型更新信息的情况下,基于模型更新信息更新所述源模型,得到新的源模型,并判定新的源模型与所述源模型中的各个基础模型和/或拓扑结构信息是否相同,若否,基于新的源模型各个基础模型和/或拓扑结构信息,得到对应的新的可执行模型。
本发明实施例中的模型更新信息可以是对基础模型结构的更新,比如,在原有的基础模型的基础上,增加了一些神经元等,也可以是对基础模型的删减,比如,删除了源模型中的至少一个基础模型,还可以是对各个基础模型之间的拓扑结构的更新。比如,基础模型A与基础模型B连接,更新为基础模型A与基础模型C连接。具体的,在得到了可执行模型后,接收到模型更新信息,基于模型更新信息对源模型进行更新,得到新的源模型,并将在更新了源模型后,判断新的源模型中的各个基础模型和或者各个基础模型之间的拓扑结构是否发生改变,若是,则需要重新为各个基础模型分配内存空间,数据值的填充和/或数据值的调用等操作,得到新的可执行模型。本步骤可以提高模型构建的灵活性,用户若是得到可执行模型后,发现效果不理想,可以实现对当前的源模型进行更新,并得到转换后的可执行模型,提高可执行模型的获取的灵活性。
在另一本发明实施例中,所述将所述源模型转换为可执行模型之后,还包括:当检测到接收的基础模型/第一模型的变量的更新信息时,基于变量的更新信息更新所述所述基础模型/第一模型中的变量,得到更新的基础模型/第一模型;所述更新信息包括增加变量、删减变量和更新变量的数据值中的至少一项。
其中,对于源模型来说,对于变量注册子项的更新,可以是对变量是否共享的调整,变量的数据类型的具体数据值的更新等。对变量的增加,在原来的基础模型的变量的基础上,增加了多个第一变量等。应当理解,若是增加了第一变量,更新信息中包括了基础模型的模型标识,基础模型中增加的第一变量的变量标识,以及第一变量对应的变量注册项。对变量的删减,可以是设置了删减标识符,当更新信息中存在某一变量标识以及删减标识符时,将基础模型中与变量标识对应的变量注册项删除。当然,对于第一模型也可以获取对于第一模型的变量的修改信息。
具体的,得到可执行模型后,检测到用户输入的任一变量的更新信息,基于更新信息更新基础模型中的变量,得到新的基础模型。比如,更新信息中包括任一变量的变量注册子项的更新,可以是更新基础模型中该变量的相对应的变量注册子项的数据值。应当理解,这里的数据值可以是指数据类型对应的具体数据值,也可以是指是否共享中的是Y或者F等,这里的Y表示是,F表示否。在得到可执行模型后,当检测到变量的更新信息时,可以对变量进行更新,并判断是否需要重新对基础模型分配存储空间,若是,则重新分配存储空间,并进行数据值的填充,再次转换。本步骤提高了神经网络模型构建的灵活性。可选的,也可以在源模型转换为可执行模型的过程中,接收用户的变量的更新信息。
在另一本发明实施例中,提供了一种模型构建装置,图2为本发明实施例提供的模型构建装置的结构示意图,本发明实施例所提供的模型构建装置可执行本发明任意实施例所提供的模型构建方法,具备执行方法相应的功能模块和有益效果。该装置包括:模型描述模块210和模型转换模块220;其中:
模型描述模块210,用于在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
模型转换模块220,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
进一步的,在本发明实施例中,所述模型转换模块还用于:
若所述模型描述信息为第一模型的信息,则编译所述第一模型,得到可执行模型,和/或若所述模型描述信息为基础模型的信息,则获取所述基础模型对应的可执行模型。
进一步的,在本发明实施例中,所述装置还包括:
变量注册项获取模块,用于获取模型构建信息中的至少一个基础模型的模型标识,以及所述基础模型的至少一个变量的变量标识;基于所述模型标识,调取与所述模型标识对应的基础模型;基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项;所述变量注册表中包括至少一个变量注册项,所述变量注册项用于描述变量;
所述模型描述模块210还用于:至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型。
进一步的,在本发明实施例中,所述装置还包括:
变量填充模块,用于采用同步填充方式对所述基础模型和/或第一模型的变量进行填充,或者采用异步填充方式对所述基础模型和/或第一模型的变量进行填充。
进一步的,在本发明实施例中,所述变量填充模块包括:同步填充子模块,用于在描述变量待填充内容时随即进行填充,同步填充子模块,还用于:如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
进一步的,在本发明实施例中,所述变量填充模块包括:异步填充子模块,用于在描述变量待填充内容之后的任一时刻进行填充,异步填充子模块,还用于如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
进一步的,在本发明实施例中,所述变量注册项包括多个变量注册子项,所述张量变量的所述变量注册子项中的待填充数据值包括多维数组;
所述变量填充模块还用于:在基础模型的变量类型为张量变量的情况下,按照变量注册子项中的多维数组,对基础模型进行存储空间的分配,并将分配了存储空间的基础模型进行多维数组的填充。
进一步的,在本发明实施例中,所述变量填充模块还用于:
通过常量填充、拷贝填充、均匀随机填充、正态随机填充和局部卷积填充中的至少一种变量填充方式对基础模型进行多维数组进行填充。
进一步的,在本发明实施例中,所述变量填充模块还用于:
通过变量填充器对分配了存储空间的基础模型进行多维数组的填充。
进一步的,在本发明实施例中,在所述模型描述信息为基础模型,并从所述模型构建信息中获取到多个基础模型的模型标识的情况下,所述装置还包括:
信息获取模块,用于获取各个基础模型之间的拓扑结构信息;
所述模型描述模块210还用于:
基于各个基础模型、每个基础模型对应的变量注册项以及拓扑结构信息得到所述源模型。
进一步的,在本发明实施例中,所述拓扑结构信息包括端口信息和/或数据传输的模型信息;模型信息包括所述基础模型的输入模型信息和输出模型信息中的至少一个项;若基础模型为端口模型,则拓扑结构信息包括端口信息;若基础模型为容器模型,则拓扑结构信息包括所述模型信息。
进一步的,在本发明实施例中,所述端口信息包括输入端口信息、输出端口信息、引用端口信息和连接端口信息中的至少一项。
进一步的,在本发明实施例中,所述装置还包括:
模型更新模块,用于接收到模型更新信息的情况下,基于模型更新信息更新所述源模型,得到新的源模型,并判定新的源模型与所述源模型中的各个基础模型和/或拓扑结构信息是否相同,若否,基于新的源模型各个基础模型和/或拓扑结构信息,得到对应的新的可执行模型。
进一步的,在本发明实施例中,所述装置还包括:
变量更新模块,用于当检测到接收的基础模型/第一模型的变量的更新信息时,基于变量的更新信息更新所述所述基础模型/第一模型中的变量,得到更新的基础模型/第一模型;所述更新信息包括增加变量、删减变量和更新变量的数据值中的至少一项。
进一步的,在本发明实施例中,所述模型描述模块210还用于:
暂存所述基础模型和所述基础模型对应的所述变量注册项,以得到所述源模型。
进一步的,在本发明实施例中,所述装置还包括:
变量注册子项获取模块,用于获取所述变量的至少一个目标变量注册子项;
变量注册项更新模块,用于检测所述变量注册项是否存在与目标变量注册子项相对应的初始变量注册子项;所述变量注册项中包括至少一个初始变量注册子项,所述初始变量注册子项包括变量类型和数据类型的至少一项;若是,基于目标变量注册子项更新所述初始变量注册子项,得到新的变量注册项,若否,在所述变量注册项增加所述至少一个目标变量注册子项,得到新的变量注册项。
通过本发明实施例的技术方案,在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,模型描述数据包括第一模型和/或预先存储的基础模型的信息;基础模型和/或第一模型用于构建神经网络模型。第一模型为用户自定义的模型。在需要进行模型转换的情况下,进入模型转换阶段,将源模型转换为可执行模型。本发明实施例的技术方案简化了模型构建时的复杂度,提高了模型构建速度,进而提高了用户体验度。
值得注意的是,上述装置所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
在另一本发明实施例中,提供了一种模型构建平台,图3为本发明实施例所提供的一种模型构建平台的结构示意图,所述平台用于在构建神经网络模型时,执行如上述任一实施例中的模型构建方法,所述平台包括:前端部分310、核心部分320和后端部分330,其中:
所述前端部分310,用于代理所述平台外部与所述核心部分和/或所述后端部分进行交互;
所述核心部分320,用于响应所述前端部分和/或所述后端部分的请求,在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
所述后端部分330,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
就前端部分310来说,系统外部(例如用户、其他系统)将通过前端部分310实现与平台的交互,以此调用平台的至少一种功能。比如,调取平台配置的模型。
本发明实施例提供的前端部分310,可以实现接收用户输入的请求,可选地,可以显示用户所构建的神经网络模型,也可以显示神经网络模型的运行状态。核心部分320,基于模型描述信息得到源模型,后端部分330在需要进行模型转换的请况下,将源模型转换为可执行模型。本发明实施例的模型构建平台的前端部分310、核心部分320和后端部分330的分工明确,相互配合实现神经网络模型的构建,提高了构建的效率,并且由于核心部分320只是进行模型的描述,并不需要考虑模型转换的相关事宜,后端部分330将源模型转换为可执行模型,本发明实施例的模型构建平台,方便用户操作,简化了模型构建的过程,降低了模型构建的复杂度,提高了用户体验度。
后端部分的硬件设备包括但不限于GPU、TPU、神经拟态芯片、人工智能芯片等。
在另一本发明实施例中,提供了一种电子设备,图4为本发明实施例提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明实施例实施方式的示例性电子设备50的框图。图4显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备50以通用计算设备的形式表现。电子设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元501,系统存储器502,连接不同系统组件(包括系统存储器502和处理单元501)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备50典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器502可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)504和/或高速缓存存储器505。电子设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统506可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线503相连。存储器502可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块507的程序/实用工具508,可以存储在例如存储器502中,这样的程序模块507包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块507通常执行本发明所描述的实施例中的功能和/或方法。
电子设备50也可以与一个或多个外部设备509(例如键盘、指向设备、显示器510等)通信,还可与一个或者多个使得用户能与该电子设备50交互的设备通信,和/或与使得该电子设备50能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口511进行。并且,电子设备50还可以通过网络适配器512与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器512通过总线503与电子设备50的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元501通过运行存储在系统存储器502中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的模型构建方法。
在另一本发明实施例中,还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种模型构建方法,所述方法包括:
在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (35)
1.一种模型构建方法,其特征在于,所述方法包括:
在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
2.根据权利要求1所述的模型构建方法,其特征在于,所述在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型,包括:
若所述模型描述信息为第一模型的信息,则编译所述第一模型,得到可执行模型,
和/或
若所述模型描述信息为基础模型的信息,则获取所述基础模型对应的可执行模型。
3.根据权利要求2所述的模型构建方法,其特征在于,在所述模型描述信息为预先存储的源模型的信息的情况下,所述基于模型描述信息得到神经网络模型的源模型之前,还包括:
获取模型构建信息中的至少一个基础模型的模型标识,以及所述基础模型的至少一个变量的变量标识;
基于所述模型标识,调取与所述模型标识对应的基础模型;
基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项;所述变量注册表中包括至少一个变量注册项,所述变量注册项用于描述变量;
所述基于模型描述信息得到神经网络模型的源模型,包括:
至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型。
4.根据权利要求3所述的模型构建方法,其特征在于,所述方法还包括:
采用同步填充方式对所述基础模型和/或第一模型的变量进行填充,
或者
采用异步填充方式对所述基础模型和/或第一模型的变量进行填充。
5.根据权利要求4所述的模型构建方法,其特征在于,所述同步填充方式即在描述变量待填充内容时随即进行填充,包括:
如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;
基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
6.根据权利要求4所述的模型构建方法,其特征在于,所述异步填充方式即在描述变量待填充内容之后的任一时刻进行填充,包括:
如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;
基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
7.根据权利要求5所述的模型构建方法,其特征在于,所述变量注册项包括多个变量注册子项,所述张量变量的所述变量注册子项中的待填充数据值包括多维数组;
调用所述待填充数据值对已经分配有存储空间的基础模型和/或第一模型的变量进行填充,包括:
在基础模型的变量类型为张量变量的情况下,按照变量注册子项中的多维数组,对基础模型进行存储空间的分配,并将分配了存储空间的基础模型进行多维数组的填充。
8.如权利要求7所述的模型构建方法,其特征在于,所述将分配了存储空间的基础模型进行多维数组的填充,包括:
通过常量填充、拷贝填充、均匀随机填充、正态随机填充和局部卷积填充中的至少一种变量填充方式对基础模型进行多维数组进行填充。
9.根据权利要求7所述的模型构建方法,其特征在于,所述将分配了存储空间的基础模型进行多维数组的填充,包括:
通过变量填充器对分配了存储空间的基础模型进行多维数组的填充。
10.根据权利要求3所述的模型构建方法,其特征在于,在所述模型描述信息为基础模型,并从所述模型构建信息中获取到多个基础模型的模型标识的情况下,所述方法还包括:
获取各个基础模型之间的拓扑结构信息;
所述至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型,包括:
基于各个基础模型、每个基础模型对应的变量注册项以及拓扑结构信息得到所述源模型。
11.根据权利要求9所述的模型构建方法,其特征在于,所述拓扑结构信息包括端口信息和/或数据传输的模型信息;模型信息包括所述基础模型的输入模型信息和输出模型信息中的至少一个项;
若基础模型为端口模型,则拓扑结构信息包括端口信息;
若基础模型为容器模型,则拓扑结构信息包括所述模型信息。
12.根据权利要求11所述的模型构建方法,其特征在于,所述端口信息包括输入端口信息、输出端口信息、引用端口信息和连接端口信息中的至少一项。
13.根据权利要求10所述的模型构建方法,其特征在于,所述将所述源模型转换为可执行模型之后,还包括:
接收到模型更新信息的情况下,基于模型更新信息更新所述源模型,得到新的源模型,并判定新的源模型与所述源模型中的各个基础模型和/或拓扑结构信息是否相同,若否,基于新的源模型各个基础模型和/或拓扑结构信息,得到对应的新的可执行模型。
14.根据权利要求1所述的模型构建方法,其特征在于,所述将所述源模型转换为可执行模型之后,还包括:
当检测到接收的基础模型/第一模型的变量的更新信息时,基于变量的更新信息更新所述所述基础模型/第一模型中的变量,得到更新的基础模型/第一模型;所述更新信息包括增加变量、删减变量和更新变量的数据值中的至少一项。
15.根据权利要求3所述的模型构建方法,其特征在于,所述至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型,包括:
暂存所述基础模型和所述基础模型对应的所述变量注册项,以得到所述源模型。
16.根据权利要求3所述的模型构建方法,其特征在于,在所述模型构建信息中还包括变量的至少一个目标变量注册子项的情况下,所述方法还包括:
获取所述变量的至少一个目标变量注册子项;
所述基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项之后,还包括:
检测所述变量注册项是否存在与目标变量注册子项相对应的初始变量注册子项;所述变量注册项中包括至少一个初始变量注册子项,所述初始变量注册子项包括变量类型和数据类型的至少一项;
若是,基于目标变量注册子项更新所述初始变量注册子项,得到新的变量注册项,
若否,在所述变量注册项增加所述至少一个目标变量注册子项,得到新的变量注册项。
17.一种模型构建装置,其特征在于,所述装置包括:
模型描述模块,用于在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
模型转换模块,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
18.根据权利要求17所述的模型构建装置,其特征在于,所述模型转换模块还用于:
若所述模型描述信息为第一模型的信息,则编译所述第一模型,得到可执行模型,和/或若所述模型描述信息为基础模型的信息,则获取所述基础模型对应的可执行模型。
19.根据权利要求18所述的模型构建装置,其特征在于,所述装置还包括:
变量注册项获取模块,用于获取模型构建信息中的至少一个基础模型的模型标识,以及所述基础模型的至少一个变量的变量标识;基于所述模型标识,调取与所述模型标识对应的基础模型;基于至少一个所述变量标识,从与基础模型对应的变量注册表中调取与至少一个所述变量标识对应的变量注册项;所述变量注册表中包括至少一个变量注册项,所述变量注册项用于描述变量;
所述模型描述模块还用于:至少基于所述基础模型和所述基础模型对应的所述变量注册项得到所述源模型。
20.根据权利要求19所述的模型构建装置,其特征在于,所述装置还包括:
变量填充模块,用于采用同步填充方式对所述基础模型和/或第一模型的变量进行填充,或者采用异步填充方式对所述基础模型和/或第一模型的变量进行填充。
21.根据权利要求20所述的模型构建装置,其特征在于,所述变量填充模块包括:
同步填充子模块,用于在描述变量待填充内容时随即进行填充,
同步填充子模块,还用于:如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;
基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
22.根据权利要求20所述的模型构建装置,其特征在于,所述变量填充模块包括:
异步填充子模块,用于在描述变量待填充内容之后的任一时刻进行填充,
异步填充子模块,还用于如果所述基础模型和/或第一模型的变量尚未分配存储空间,则分配存储空间;
基于所述变量待填充内容,获取待填充数据值,对所述基础模型和/或第一模型的变量进行填充。
23.根据权利要求20所述的模型构建装置,其特征在于,所述变量注册项包括多个变量注册子项,所述张量变量的所述变量注册子项中的待填充数据值包括多维数组;
所述变量填充模块还用于:在基础模型的变量类型为张量变量的情况下,按照变量注册子项中的多维数组,对基础模型进行存储空间的分配,并将分配了存储空间的基础模型进行多维数组的填充。
24.根据权利要求23所述的模型构建装置,其特征在于,所述变量填充模块还用于:
通过常量填充、拷贝填充、均匀随机填充、正态随机填充和局部卷积填充中的至少一种变量填充方式对基础模型进行多维数组进行填充。
25.根据权利要求23所述的模型构建装置,其特征在于,所述变量填充模块还用于:
通过变量填充器对分配了存储空间的基础模型进行多维数组的填充。
26.根据权利要求19所述的模型构建装置,其特征在于,在所述模型描述信息为基础模型,并从所述模型构建信息中获取到多个基础模型的模型标识的情况下,所述装置还包括:
信息获取模块,用于获取各个基础模型之间的拓扑结构信息;
所述模型描述模块还用于:
基于各个基础模型、每个基础模型对应的变量注册项以及拓扑结构信息得到所述源模型。
27.根据权利要求26所述的模型构建装置,其特征在于,所述拓扑结构信息包括端口信息和/或数据传输的模型信息;模型信息包括所述基础模型的输入模型信息和输出模型信息中的至少一个项;若基础模型为端口模型,则拓扑结构信息包括端口信息;若基础模型为容器模型,则拓扑结构信息包括所述模型信息。
28.根据权利要求27所述的模型构建装置,其特征在于,所述端口信息包括输入端口信息、输出端口信息、引用端口信息和连接端口信息中的至少一项。
29.根据权利要求26所述的模型构建装置,其特征在于,所述装置还包括:
模型更新模块,用于接收到模型更新信息的情况下,基于模型更新信息更新所述源模型,得到新的源模型,并判定新的源模型与所述源模型中的各个基础模型和/或拓扑结构信息是否相同,若否,基于新的源模型各个基础模型和/或拓扑结构信息,得到对应的新的可执行模型。
30.根据权利要求17所述的模型构建装置,其特征在于,所述装置还包括:
变量更新模块,用于当检测到接收的基础模型/第一模型的变量的更新信息时,基于变量的更新信息更新所述所述基础模型/第一模型中的变量,得到更新的基础模型/第一模型;所述更新信息包括增加变量、删减变量和更新变量的数据值中的至少一项。
31.根据权利要求19所述的模型构建装置,其特征在于,所述模型描述模块210还用于:
暂存所述基础模型和所述基础模型对应的所述变量注册项,以得到所述源模型。
32.根据权利要求19所述的模型构建装置,其特征在于,所述装置还包括:
变量注册子项获取模块,用于获取所述变量的至少一个目标变量注册子项;
变量注册项更新模块,用于检测所述变量注册项是否存在与目标变量注册子项相对应的初始变量注册子项;所述变量注册项中包括至少一个初始变量注册子项,所述初始变量注册子项包括变量类型和数据类型的至少一项;若是,基于目标变量注册子项更新所述初始变量注册子项,得到新的变量注册项,若否,在所述变量注册项增加所述至少一个目标变量注册子项,得到新的变量注册项。
33.一种模型构建平台,其特征在于,所述平台执行如权利要求1-16的模型构建方法,所述平台包括:前端部分、核心部分和后端部分,其中:
所述前端部分,用于代理所述平台外部与所述核心部分和/或所述后端部分进行交互;
所述核心部分,用于响应所述前端部分和/或所述后端部分的请求,在模型描述阶段,基于模型描述信息得到神经网络模型的源模型,所述模型描述数据包括第一模型和/或预先存储的基础模型的信息;所述基础模型和/或所述第一模型用于构建神经网络模型;所述第一模型为用户自定义的模型;
所述后端部分,用于在需要进行模型转换的情况下,进入模型转换阶段,将所述源模型转换为可执行模型。
34.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-16中任一所述的模型构建方法。
35.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-16中任一所述的模型构建方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211068160.0A CN117709402A (zh) | 2022-09-02 | 2022-09-02 | 模型构建方法、装置、平台、电子设备及存储介质 |
PCT/CN2023/116452 WO2024046463A1 (zh) | 2022-09-02 | 2023-09-01 | 模型构建方法、装置、平台、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211068160.0A CN117709402A (zh) | 2022-09-02 | 2022-09-02 | 模型构建方法、装置、平台、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117709402A true CN117709402A (zh) | 2024-03-15 |
Family
ID=90100452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211068160.0A Pending CN117709402A (zh) | 2022-09-02 | 2022-09-02 | 模型构建方法、装置、平台、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117709402A (zh) |
WO (1) | WO2024046463A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886663B2 (en) * | 2013-10-08 | 2018-02-06 | Qualcomm Incorporated | Compiling network descriptions to multiple platforms |
CN108182473A (zh) * | 2017-12-12 | 2018-06-19 | 中国科学院自动化研究所 | 基于类脑脉冲神经网络的全尺度分布式全脑模拟系统 |
CN110322010B (zh) * | 2019-07-02 | 2021-06-25 | 深圳忆海原识科技有限公司 | 用于类脑智能与认知计算的脉冲神经网络运算系统及方法 |
CN111222637B (zh) * | 2020-01-17 | 2023-11-28 | 上海商汤智能科技有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN112686375A (zh) * | 2021-01-07 | 2021-04-20 | 北京灵汐科技有限公司 | 一种神经网络模型的生成方法及装置 |
CN114757334A (zh) * | 2022-03-23 | 2022-07-15 | 河北工业大学 | 模型构建方法及装置、存储介质及电子设备 |
-
2022
- 2022-09-02 CN CN202211068160.0A patent/CN117709402A/zh active Pending
-
2023
- 2023-09-01 WO PCT/CN2023/116452 patent/WO2024046463A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024046463A1 (zh) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
Agha | Actors: a model of concurrent computation in distributed systems | |
CN111708641B (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
US11070623B2 (en) | Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence | |
Mechalikh et al. | PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments | |
CN108932588A (zh) | 一种前后端分离的水电站群优化调度系统及方法 | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN114841345A (zh) | 一种基于深度学习算法的分布式计算平台及其应用 | |
WO2024046458A1 (zh) | 层次化系统、运算方法、装置、电子设备及存储介质 | |
CN101356503B (zh) | 数据处理系统和数据处理方法 | |
CN111610977B (zh) | 一种编译方法和相关装置 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
US11748622B1 (en) | Saving intermediate outputs of a neural network | |
US8930960B2 (en) | Methods and systems for object interpretation within a shared object space | |
CN117709402A (zh) | 模型构建方法、装置、平台、电子设备及存储介质 | |
Tobler | Gpuless–serverless gpu functions | |
US20220318656A1 (en) | Model parameter sharing between inference application instances in processing unit of information processing system | |
CN115328679A (zh) | 异构函数库的自动化集成方法、计算设备及其系统 | |
CN115567526A (zh) | 数据监控方法、装置、设备及介质 | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及系统 | |
CN111400300B (zh) | 一种边缘设备管理方法、装置及管理设备 | |
US7756691B2 (en) | Establishing relationships between components in simulation systems | |
CN117709389A (zh) | 具有变量管理功能的神经网络运算系统、方法及平台 | |
CN117709401A (zh) | 模型管理装置及用于神经网络运算的层次化系统 | |
Anisimov et al. | Development and Prospects of the PARCS-WCF System |
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 |