CN112905442A - 随机模型的生成方法、装置及设备 - Google Patents
随机模型的生成方法、装置及设备 Download PDFInfo
- Publication number
- CN112905442A CN112905442A CN201911228656.8A CN201911228656A CN112905442A CN 112905442 A CN112905442 A CN 112905442A CN 201911228656 A CN201911228656 A CN 201911228656A CN 112905442 A CN112905442 A CN 112905442A
- Authority
- CN
- China
- Prior art keywords
- model
- height
- directed graph
- width
- random
- 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 82
- 238000012545 processing Methods 0.000 claims abstract description 72
- 238000012795 verification Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 13
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 9
- 238000012360 testing method Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 17
- 238000013461 design Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 210000002569 neuron Anatomy 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000003062 neural network model Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000005429 filling process Methods 0.000 description 3
- 230000005477 standard model Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping 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
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种随机模型的生成方法、装置及设备,方法包括:通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;对所述有向图进行填充节点处理,生成所述随机模型。本实施例提供的通过获取用于生成随机模型的第一宽度和第一高度,基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图,而后对所述有向图进行填充节点处理,从而可以产生结构不同、参数不同的随机模型,并且,所生成的随机模型可以作为产品的测试用例,不仅保证了随机模型的实用性,并且也可以保证产品的质量和效果,进一步提高了该随机模型的生成方法的实用性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种随机模型的生成方法、装置及设备。
背景技术
随着科学技术的飞行发展,深度学习模型的应用越来越广泛。但是,深度学习模型的结构差异不大,这对于与深度学习模型相关的产品而言,产品能够利用到的测试用模型结构比较少,例如:模型保护工具只能通过少量的模型结构进行测试验证,这样无法确定模型保护工具的质量和效果。
发明内容
本发明实施例提供了一种随机模型的生成方法、装置及设备,能够产生结构不同、参数不同的随机模型,所生成的随机模型可以作为产品的测试用例,从而提高了随机模型的实用性,并保证了产品的质量和效果。
第一方面,本发明实施例提供了一种随机模型的生成方法,包括:
通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
对所述有向图进行填充节点处理,生成所述随机模型。
第二方面,本发明实施例提供了一种随机模型的生成装置,包括:
第一获取模块,用于通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
第一生成模块,用于基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
第一处理模块,用于对所述有向图进行填充节点处理,生成所述随机模型。
第三方面,本发明实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的随机模型的生成方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的随机模型的生成方法。
第五方面,本发明实施例提供了一种随机模型的生成装置,包括:
第二获取模块,用于获取模型生成请求,所述模型生成请求中包括用于生成随机模型的第一宽度和第一高度;
第二生成模块,用于基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
第二处理模块,用于根据所述有向图生成与所述模型生成请求相对应的随机模型。
本实施例提供的随机模型的生成装置,通过第二获取模块获取客户端发送的获取模型生成请求,第二生成模块可以根据模型生成请求中的第一宽度和第一高度随机生成结构不同、参数不同的有向图,从而使得第二处理模块可以基于有向图生成随机模型,所生成的随机模型可以作为产品的测试用例,不仅保证了随机模型的实用性,并且也可以保证产品的质量和效果,进一步提高了该随机模型的生成方法的实用性,有利于市场的推广与应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一种随机模型的生成方法的流程图一;
图1b为本发明实施例提供的一种随机模型的示意图;
图2a为本发明实施例提供的基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图的流程图;
图2b为本发明实施例提供的随机生成与所述随机模型相对应的有向图的示意图;
图3为本发明实施例提供的对所述有向图进行填充节点处理,生成所述随机模型的流程图;
图4为本发明实施例提供的确定所述有向图中包括的节点的数量信息以及位置信息的流程图;
图5为本发明实施例提供的基于所述数量信息和位置信息,将所述有向图填充上与所述节点相对应的操作节点的流程图;
图6为本发明实施例提供的根据所述输入输出关系对所述有向图填充与所述节点相对应的操作节点的流程图;
图7为本发明实施例提供的在所述有向图中节点的位置信息处,填充满足所述节点类型的操作节点的流程图一;
图8为本发明实施例提供的在所述有向图中节点的位置信息处,填充满足所述节点类型的操作节点的流程图二;
图9为本发明实施例提供的基于所述节点类型确定所述操作节点的节点参数的流程图;
图10为本发明实施例提供的一种随机模型的生成方法的流程图二;
图11为本发明实施例提供的利用所述验证参数对所述随机模型进行合法性验证的流程图;
图12为本发明实施例提供的一种随机模型的生成方法的流程图三;
图13为本发明实施例提供的通过随机数产生器获取用于生成随机模型的第一宽度和第一高度的流程图;
图14为本发明应用实施例提供的一种随机模型的生成方法的场景示意图;
图15为本发明应用实施例提供的一种随机模型的生成方法的流程示意图一;
图16为本发明应用实施例提供的一种随机模型的生成方法的流程示意图二;
图17为本发明实施例提供的一种随机模型的生成装置的结构示意图;
图18为与图17所示实施例提供的随机模型的生成装置对应的电子设备的结构示意图;
图19为本发明实施例提供的另一种随机模型的生成装置的结构示意图;
图20为与图19所示实施例提供的随机模型的生成装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
为了便于理解本申请的技术方案,下面对现有技术进行简要说明:
虽然现在深度学习应用的领域非常广泛,但是深度学习模型的结构差异不大,这对一些模型相关产品(例如:模型保护工机)来讲,可用于测试的模型结构就比较少,而模型相关产品往往需要大量结构各异、参数不同的测试用例来保证产品自身的稳定性。目前主要的方式是通过收集相关领域中的标准模型,通过修改标准模型的结构和参数达到产生随机模型的目的。
然而,上述通过修改标准模型的结构和参数而生成的随机模型实际是伪随机模型,其结构不能从根本上发生改变,通常是模型中某个操作节点或者某些操作节点OP的替换,例如:卷积操作节点替换成池化操作节点,或者是部分结构的删除等,而且,上述的伪随机模型的产生过程是半自动进行的,效率低且容易导致模型结构异常,进而容易导致所生成的随机模型不可用。
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1a为本发明实施例提供的一种随机模型的生成方法的流程图一;参考附图1a所示,为了解决上述技术问题,本实施例提供了一种随机模型的生成方法,该生成方法的执行主体是随机模型的生成装置,可以理解的是,该生成装置可以实现为软件、或者软件和硬件的组合。具体的,该随机模型的生成方法可以包括:
S101:通过随机数产生器获取用于生成随机模型的第一宽度和第一高度。
其中,所产生的随机模型可以是神经网络模型,对于神经网络模型而言,如图1b所示,其可以是由多个神经元节点(也可以称为操作节点)构成的网络结构,并且,对于该网络结构而言,具有两个超参数,即高度参数(也可以称为深度参数)和宽度参数,其中,高度参数用于标识网络结构的层数,宽度参数用于标识一层网络结构中神经元的最多个数。具体的,如图1b所示,输入层x、隐含层(包括:h1层、h2层和h3层)以及输出层h4,此时,对于该神经网络模型而言,模型的高度为4,即模型的高度=网络层数-1;而神经网络模型中的每个网络层均可以包括若干个神经元节点,识别包括个数最多的神经元节点的网络层,确定该网络层中包括的神经元个数,例如,该网络层中包括有10个神经元,则可以确定该神经网络模型的宽度为10。
基于上述陈述内容,在对随机模型生成的过程中,可以先获取用于生成随机模型的第一宽度和第一高度,该第一宽度为随机模型可以达到的最大宽度信息或者最大宽度范围,第一高度为随机模型可以达到的最大高度信息或者最大高度范围,也即,在基于第一宽度和第一高度生成随机模型时,可以通过随机数产生器在第一宽度和第一高度所限定的范围内随机生成模型宽度和模型高度,此时,随机模型的模型宽度小于或等于第一宽度,且随机模型的模型高度小于或等于第一高度。
另外,本实施例对于第一宽度和第一高度的具体获取方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:第一宽度和第一高度可以预先配置的参数,该参数可以存储在预设区域中,通过访问预设区域可以获取到用于生成随机模型的第一宽度和第一高度;或者,第一宽度和第一高度可以是用户输入或者指定的参数,具体的,可以获取用户针对随机模型的生成装置输入的执行操作时,而后根据用户输入的执行操作获得用于生成随机模型的第一宽度和第一高度。其中,当获取到的第一宽度和第一高度的数值越大时,可以生成的随机模型的复杂度越高;当获取到的第一宽度和第一高度的数值越小时,可以生成的随机模型的复杂度越低。
需要说明的是,本领域技术人员也可以采用其他的方式来获取第一宽度和第一高度,只要能够保证第一宽度和第一高度获取的准确可靠性即可,在此不再赘述。
S102:基于第一宽度和第一高度,随机生成与随机模型相对应的有向图。
S103:对有向图进行填充节点处理,生成随机模型。
其中,在获取到第一宽度和第一高度之后,可以基于第一宽度和第一宽度,随机生成与随机模型相对应的有向图,该有向图用于表示与随机模型相对应的图结构。具体的,本实施例对于随机生成与随机模型相对应的有向图的具体实现过程不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,参考附图2a所示,本实施例中的基于第一宽度和第一高度,随机生成与随机模型相对应的有向图可以包括:
S201:基于第一宽度和第一高度,利用随机数产生器随机生成与随机模型相对应的模型宽度和模型高度,其中,模型宽度小于或等于第一宽度,模型高度小于或等于第一高度。
S202:根据模型宽度和模型高度生成与随机模型相对应的有向图。
具体的,在获取到第一宽度和第一高度之后,可以利用随机数产生器在第一宽度和第一高度允许的范围内,随机生成与随机模型相对应的模型宽度和模型高度,而后基于模型宽度和模型高度生成与随机模型相对应的有向图。举例来说:在第一宽度为5、第一高度为20时,则可以利用随机数产生器在第一宽度和第一高度允许的范围内,随机生成与随机模型相对应的模型宽度和模型高度,例如,模型宽度为4,模型高度为10;或者,模型宽度为3,模型高度为15等等,而后基于模型高度和模型高度可以生成相对应的有向图,此时,该有向图的宽度即为模型宽度,该有向图的高度即为模型高度。
举例来说,在第一宽度为5、第一高度为20时,可以利用随机数产生器在上述第一宽度和第一高度允许的范围内,随机生成与随机模型相对应的模型宽度和模型高度的一个数据组合,如:模型宽度为4,模型高度为7,此时,由于模型高度用于标识网络结构的层数,模型宽度用于标识一层网络结构中神经元节点的最多个数,因此,可以确定该随机模型的网络结构的层数为模型高度+1,即为8层,并且,8层网络结构中的每一层网络结构中最多包括4个神经元节点,如图2b所示,本实施例中所生成的有向图中的h1网络层和h4网络层均包括4个神经元节点,其他的网络层中的神经元节点均小于4,从而生成了与模型高度和模型宽度相对应的有向图。可以理解的是,在模型宽度为4,模型高度为7时,还可以生成其他的有向图结构,并不限于上述举例说明,从而有效地保证了随机模型产生的随机化程度。
在另一些实例中,根据模型宽度和模型高度生成与随机模型相对应的有向图可以包括:根据模型宽度和模型高度,生成与至少一个随机模型相对应的至少一个有向图,获取用户针对任意的有向图所输入的执行操作,根据所述执行操作确定与一随机模型相对应的有向图。
举例来说,在模型宽度为4,模型高度为7时,可以生成多个不同的有向图,而不同的有向图可以对应不同的随机模型,例如:多个有向图包括有向图一、有向图二、有向图三和有向图四,上述的多个有向图的结构均满足模型宽度为4和模型高度为7的条件。此时,若获取到用户针对有向图三输入确定操作,则可以确定根据模型高度和模型宽度确定的与一随机模型相对应的有向图为有向图三,此时,所确定的随机模型的模型结构即为有向图三的结构,而后,可以对有向图三的结构进行填充节点操作,从而可以生成随机模型。本实施例中,可以根据模型宽度和模型高度生成多个待选择的有向图,而后,通过获取用户输入的执行操作来选择相应的有向图,从而实现了基于与用户的交互操作来选择与随机模型相对应的有向图,从而保证了所生成的有向图可以满足用户的使用需求和设计需求,进一步提高了有向图生成的质量和效率。
当然的,本领域技术人员也可以采用其他的方式来随机生成与随机模型相对应的有向图,只要能够保证对与随机模型相对应的有向图进行生成的准确可靠性即可。例如:可以基于第一高度和第一宽度生成可以允许的最大随机模型所对应的最大有向图,此时,最大有向图的高度为第一高度,最大有向图的宽度为第一宽度,而后对最大有向图中的节点进行随机删减操作,从而可以生成与随机模型相对应的有向图。
另外,由于有向图中包括多个空白的节点位置,因此,在获取到与随机模型相对应的有向图之后,可以对有向图进行填充节点处理,其中,填充节点处理是指在空白的节点位置处,填充上可以实现相应功能的操作节点;从而可以生成随机模型,此时,所生成的随机模型的模型宽度小于或等于第一宽度,且模型高度小于或等于第一高度。
本实施例提供的随机模型的生成方法,通过获取用于生成随机模型的第一宽度和第一高度,基于第一宽度和第一高度,随机生成与随机模型相对应的有向图,而后对有向图进行填充节点处理,从而可以产生结构不同、参数不同的随机模型,并且,所生成的随机模型可以作为产品的测试用例,不仅保证了随机模型的实用性,并且也可以保证产品的质量和效果,进一步提高了该随机模型的生成方法的实用性,有利于市场的推广与应用。
图3为本发明实施例提供的对有向图进行填充节点处理,生成随机模型的流程图;在上述实施例的基础上,继续参考附图3所示,本实施例对于生成随机模型的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的对有向图进行填充节点处理,生成随机模型可以包括:
S301:确定有向图中包括的节点的数量信息以及位置信息。
S302:基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点,生成随机模型。
在获取到有向图之后,可以对有向图进行分析识别,从而可以确定有向图中包括的节点的数量信息以及位置信息,而后可以基于节点的数量信息和位置信息,将有向图填充上与节点相对应的操作节点,该操作节点可以实现相对应的数据处理操作,从而生成了相对应的随机模型。
本实施例中,通过确定有向图中包括的节点的数量信息以及位置信息,而后基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点,从而可以生成功能随机、结构随机的随机模型,有效地保证了随机模型生成的随机性和可靠性。
图4为本发明实施例提供的确定有向图中包括的节点的数量信息以及位置信息的流程图;在上述实施例的基础上,继续参考附图4所示,本实施例对于确定有向图中包括的节点的数量信息以及位置信息的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,参考附图4所示,本实施例中的确定有向图中包括的节点的数量信息以及位置信息可以包括:
S401:根据所述模型高度将有向图随机划分为若干个子图。
在获取到模型高度之后,可以根据模型高度将有向图随机划分为若干个子图,该子图为有向图中的一部分。具体的,可以将模型高度与预设高度进行分析比较,在模型高度大于预设高度时,则可以基于模型高度将有向图随机划分为若干个子图,子图的子图高度小于模型高度。或者,在所述模型高度小于或等于预设高度时,则所述模型宽度调整为1。其中,预设高度可以是预先配置的高度信息,用于标识每个子图的最小高度;具体应用时,本领域技术人员可以根据不同的应用场景和应用需求来设置不同的预设高度,例如:预设高度可以为1、2、3或者5等等。
S402:获取每个子图的子图高度,并根据所述子图高度确定所述子图的子图宽度。
在获取到子图高度之后,可以对子图高度进行分析识别,从而可以确定子图的子图宽度,具体的,根据所述子图高度确定所述子图的子图宽度可以包括:
S4021:在所述子图高度大于预设高度时,则随机生成所述子图的子图宽度。或者,
S4022:在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
S403:在子图宽度为1时,则确定子图中包括子图节点的数量信息以及位置信息。
S404:根据所有子图中包括子图节点的数量信息和位置信息确定有向图中包括的节点的数量信息以及位置信息。
进一步的,在子图宽度为1时,则可以确定该子图中包括的子图节点的数量信息以及位置信息;重复上述操作,可以获取到有向图中的所有子图中包括的子图节点的数量信息和位置信息,而后基于所有子图中包括的子图节点的数量信息和位置信息即可确定有向图中包括的节点的数量信息和位置信息。
举例来说,在模型宽度为4,模型高度为10,预设高度为3时,在根据模型高度对有向图进行划分时,可以获取到子图一、子图二和子图三,其中,子图一的子图宽度为3,子图高度为4;子图二的子图宽度为1,子图高度为4;子图三的子图宽度为2,子图高度为2;在获取到上述三个子图之后,可以分别对三个子图进行分析识别,通过分析可知,子图一的子图高度大于预设高度,则可以对子图一进行子图划分处理。子图二的子图宽度为1,因此,则可以确定子图二中包括的子图节点的数量信息和位置信息;子图三的子图高度小于预设高度,则可以将子图三的子图宽度由2调整为1,而后可以确定子图三中包括的子图节点的数量信息和位置信息。
进一步的,在获取每个所述子图的子图高度之后,若子图高度大于预设高度,为了能够准确地识别中子图中包括的子图节点的数量信息和位置信息,则可以继续根据子图高度对的子图进行划分处理,具体的,本实施例中的方法还可以包括:
S405:对所述子图高度进行分析识别。
S406:在所述子图高度大于预设高度时,则将所述子图随机划分为若干个子图单元。或者,
S407:在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
具体的,在将有向图划分为若干个子图之后,若子图的子图高度大于预设高度,则可以将子图作为一个新的有向图进行划分处理,即可以将子图随机划分为若干个子图单元,而后对每个子图单元所对应的子图单元高度进行分析识别,直至通过子图单元的宽度和高度可以确定每个子图单元中所包括的节点的数量信息和位置信息为止。而在子图的子图高度小于或等于预设高度时,可以将子图的子图宽度设置为1,从而可以准确、快速地确定子图中包括的子图节点的数量。
本实施例中,通过根据模型高度将有向图随机划分为若干个子图,获取每个子图的子图高度,并可以基于子图高度确定每个子图的子图宽度,而后基于子图的子图宽度和子图高度来确定每个子图中包括的子图节点的数量信息和位置信息,统计所有子图的子图节点的数量信息和位置信息,即可获取到有向图中包括的节点的数量信息以及位置信息,这样有效地保证了对有向图中包括的节点的数量信息以及位置信息进行获取的准确可靠性,进一步提高了随机模型生成的质量和效率。
在上述实施例的基础上,继续参考附图4所示,本实施例对于将有向图随机划分为若干个子图的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的根据模型高度将有向图随机划分为若干个子图可以包括:
S501:在模型高度大于预设高度时,则基于模型高度将有向图随机划分为若干个子图,子图的子图高度小于模型高度。或者,
S502:在所述模型高度小于或等于预设高度时,则所述模型宽度调整为1。
具体的,在获取到模型高度之后,可以对模型高度进行分析识别,在模型高度大于预设高度时,则可以基于模型高度将有向图随机划分为若干个子图,此时,子图的子图高度小于模型高度;在模型高度小于或等于预设高度时,则可以将有向图的模型宽度调整为1。举例来说:在预设高度为3、模型宽度为3,且模型高度为6时,此时的模型高度大于预设高度,则可以基于模型高度将有向图随机划分为若干个子图,例如,可以将有向图随机划分为第一子图和第二子图,第一子图的子图高度为2,第二子图的子图高度为4,而后对第一子图和第二子图的子图高度来生成子图的子图宽度,其中,第一子图的子图宽度可以为1,第二子图的子图宽度可以为随机宽度,需要注意的是,随机宽度可以小于或等于模型宽度。
进一步的,对于第一子图而言,由于第一子图的子图高度小于预设高度,此时,为了便于确定有向图中包括的节点的数量信息以及位置信息,可以将第一子图的子图宽度设置为1,此时,第一子图中节点的数量信息以及位置信息即可确定。总结来说,在基于模型高度将有向图随机划分为若干个子图之后,若子图的子图高度小于或等于预设高度,则将子图的子图宽度设置为1。
而对于上述的第二子图而言,由于第二子图的子图高度大于预设高度,因此,可以基于子图高度继续对第二子图进行划分处理,从而可以获取到与第二子图相对应的若干子图单元,在子图单元的子图高度小于或等于预设高度时,则将子图单元的子图宽度设置为1;在子图单元的子图高度大于预设高度时,则对子图单元的子图宽度进行随机设置。重复上述的分析识别操作,直至子图的子图高度小于或等于预设高度为止,以便可以识别出有向图中包括的节点的数量信息以及位置信息。
总结来说,在基于模型高度将有向图随机划分为若干个子图之后,若子图的子图高度大于预设高度,则继续基于子图高度对子图进行划分处理,获得与子图相对应的若干个子图单元,若子图单元的子图高度小于或等于预设高度,则设置该子图单元的子图宽度为1;若子图单元的子图高度大于预设高度,则可以基于子图高度生成该子图单元的子图宽度。而后再次对子图单元进行划分处理,直至子图单元的子图高度小于或等于预设高度为止,此时,则可以确定子图单元中节点的数量信息和位置信息位置。
本实施例中,在模型高度大于预设高度时,基于模型高度将有向图随机划分为若干个子图,而后基于每个子图的子图高度生成子图的子图宽度,有效地保证了将有向图划分为若干个子图的随机性,进一步提高了随机模型生成的随机程度和稳定可靠性。
图5为本发明实施例提供的基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点的流程图;在上述实施例的基础上,继续参考附图5所示,本实施例对于基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点可以包括:
S601:基于数量信息和位置信息,确定有向图中每个节点的输入输出关系。
S602:根据输入输出关系对有向图填充与节点相对应的操作节点,并生成与操作节点相对应的代码信息。
其中,在获取到有向图中节点的数量信息和位置信息之后,可以基于数量信息和位置信息来确定有向图中每个节点的输入输出关系,输入输出关系可以包括以下至少之一:输入节点数量、输出节点数量、输入节点位置和输出节点位置。在获取到输入输出关系之后,可以根据输入输出关系对有向图填充与节点相对应的操作节点,并生成与操作节点相对应的代码信息,以使得操作节点可以实现相对应的数据处理操作。
另外,在根据输入输出关系对有向图填充与节点相对应的操作节点时,本实施例对于根据输入输出关系对有向图填充与节点相对应的操作节点,并生成与操作节点相对应的代码信息的具体实现过程不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,参考附图6所示,本实施例中的根据输入输出关系对有向图填充与节点相对应的操作节点可以包括:
S701:根据输入输出关系确定与操作节点相对应的节点类型。
S702:在有向图中节点的位置信息处,填充满足节点类型的操作节点。
对于操作节点而言,预先设置有不同的节点类型,例如:节点类型可以包括正常操作节点、合并操作节点、双分支操作节点、不敏感操作节点以及控制流操作节点等等,其中,正常操作节点对应有一个输入节点和一个输出节点,合并操作节点对应有多个输入节点和一个输出节点,双分支操作节点对应有两个输入节点和一个输出节点,不敏感操作节点可以是指对输入数据维度不敏感的操作节点,控制流操作节点可以是指与控制流或者控制逻辑相对应的操作节点。
由于不同的输入输出关系可以对应有不同节点类型的操作节点,因此,在获取到输入输出关系之后,可以根据输入输出关系确定与操作节点相对应的节点类型,而后在有向图中节点的位置信息处,填充满足节点类型的操作节点,其中,操作节点的参数可以随机生成,从而实现了对有向图进行填充节点的操作,保证了随机模型生成的质量和效果。
具体的,在满足节点类型的操作节点的个数为多个时,参考附图7所示,本实施例中的在有向图中节点的位置信息处,填充满足节点类型的操作节点可以包括:
S801:获取满足节点类型的至少一个预设操作节点。
S802:在至少一个预设操作节点中随机确定一目标操作节点。
S803:在有向图中节点的位置信息处,填充目标操作节点。
具体的,在填充满足节点类型的操作节点时,可以先根据节点类型确定满足该节点类型的至少一个预设操作节点,该预设操作节点可以是预先配置好的操作节点,而后在至少一个预设操作节点中随机确定一目标操作节点,并将目标操作节点填充在有向图中的相应节点的位置信息处,从而保证了对有向图进行填充节点操作的稳定可靠性。
另外,在填充满足节点类型的操作节点时,为了保证所填充的操作节点可以实现相应的数据处理操作,可以填充与该操作节点相对应的节点参数。具体的,参考附图8所示,本实施例中的在有向图中节点的位置信息处,填充满足节点类型的操作节点可以包括:
S901:基于节点类型确定操作节点的节点参数。
S902:在有向图中节点的位置信息处,填充满足节点类型和节点参数的操作节点。
其中,在获取到节点类型之后,可以基于节点类型确定关于操作节点相对应的节点参数,具体的,参考附图9所示,本实施例中的基于节点类型确定操作节点的节点参数可以包括:
S1001:基于节点类型确定与操作节点相对应的预设参数范围,预设参数范围内包括多个预设参数。
S1002:在多个预设参数中,随机确定一预设参数为操作节点的节点参数。
其中,预先设置有节点类型与预设参数范围之间的映射关系,因此,在获取到节点类型之后,可以基于节点类型确定与操作节点相对应的预设参数范围,该预设参数范围中可以包括有多个预设参数,而后为了保证随机模型生成的随机程度,可以在多个预设参数中随机确定一预设参数作为操作节点的节点参数,这样有效地保证了操作节点的节点参数的随机程度。
在确定操作节点的节点参数之后,可以在有向图中节点的位置信息处,填充满足节点类型和节点参数的操作节点,从而有效地实现了对有向图进行填充节点的操作,进一步保证了随机模型生成的随机程度和可靠性。
图10为本发明实施例提供的一种随机模型的生成方法的流程图二;在上述任意一个实施例的基础上,参考附图10所示,为了保证所生成的随机模型的实用性,在生成随机模型之后,本实施例中的方法还可以包括:
S1101:获取用于对随机模型进行验证的验证参数。
S1102:利用验证参数对随机模型进行合法性验证。
其中,验证参数可以是预先配置的,其可以包括用于对随机模型进行验证的输入参数。在生成随机模型之后,即可以根据随机模型来获取验证参数,而后可以利用验证参数对随机模型进行合法性验证。具体的,参考附图11所示,在验证参数包括输入参数时,本实施例中的利用验证参数对随机模型进行合法性验证可以包括:
S1201:基于输入参数控制随机模型执行数据处理操作。
S1202:在随机模型生成与输入参数相对应的处理结果时,则确定随机模型通过验证。或者,
S1203:在随机模型未生成与输入参数相对应的处理结果时,则确定随机模型未通过验证。
具体的,在验证参数包括输入参数时,可以基于输入参数控制随机模型执行数据处理操作,即将验证参数中所包括的输入参数输入至随机模型中,使得随机模型基于输出参数进行相应的数据处理操作,在随机模型执行数据处理操作之后,若随机模型可以生成与输入参数相对应的处理结果,则说明随机模型可以基于输入参数进行正常的数据处理操作,进而可以确定随机模型通过验证;若随机模型未生成与输入参数相对应的处理结果,则说明随机模型无法基于输入参数进行正常的数据处理操作,进而可以确定随机模型未通过验证。
进一步的,在确定随机模型未通过验证之后,本实施例中的方法还可以包括:
S1204:基于有向图中包括的节点的数量信息和位置信息,重新将有向图填充上与节点相对应的操作节点。
在确定随机模型无法进行正常的数据处理操作之后,可以基于有向图中包括的节点的数量信息和位置信息,重新将有向图填充上与节点相对应的新的操作节点,从而可以生成新的随机模型,此时新的随机模型与之前生成的随机模型的图结构相同、参数不同。
本实施例中,通过获取用于对随机模型进行验证的验证参数,而后利用验证参数对随机模型进行合法性验证,有效地实现了对随机模型进行合法性验证的准确可靠性,进一步提高了随机模型使用的稳定可靠性。
图12为本发明实施例提供的一种随机模型的生成方法的流程图三;在上述实施例的基础上,继续参考附图12所示,在确定随机模型未通过验证之后,本实施例中的方法还可以包括:
S1301:统计随机模型未通过验证的次数信息。
S1302:在次数信息大于或等于预设次数时,则重新基于第一宽度和第一高度,随机生成与随机模型相对应的有向图。
具体的,在对随机模型进行合法性验证的过程中,为了保证验证的质量和效率,在确定随机模型未通过验证之后,可以统计该随机模型未通过验证的次数信息,在次数信息大于或等于预设阈值时,例如:次数信息大于20次,或者,次数信息大于50次,或者,次数信息大于100次等等,则说明该随机模型未通过验证的原因可能与随机模型的图结构相关,因此,则可以重新基于第一宽度和第一高度,随机生成与随机模型相对应的有向图,而后可以对重新随机生成的有向图进行填充节点操作,生成新的随机模型,此时新的随机模型与之前的随机模型的图结构不同。
图13为本发明实施例提供的通过随机数产生器获取用于生成随机模型的第一宽度和第一高度的流程图;参考附图13所示,本实施例中的通过随机数产生器获取用于生成随机模型的第一宽度和第一高度可以包括:
S1011:获取模型生成请求。
S1012:根据模型生成请求,通过随机数产生器获取用于生成随机模型的第一宽度和第一高度。
其中,模型生成请求用于生成随机模型,在获取到模型生成请求之后,根据模型生成请求可以通过随机数产生器获取用于生成随机模型的第一宽度和第一宽度的操作,该第一宽度为随机模型可以达到的最大宽度信息,第一高度为随机模型可以达到的最大高度信息。
另外,本实施例对于模型生成请求的具体获取方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:模型生成请求可以是用户直接输入至随机模型的生成装置,或者,模型生成请求也可以是通过其他装置发送至生成装置,或者,用户可以对随机模型的生成装置输入相应的执行操作,从而根据执行操作生成模型生成请求等等。当然的,本领域技术人员也可以采用其他的方式来获取到模型生成请求,只要能够保证模型生成请求获取的准确可靠性即可,在此不再赘述。
具体应用时,参考附图14-图16所示,本应用实施例提供了一种随机模型的生成方法,该方法可以自动生成随机模型的有向图结构,并根据有向图结构随机填充符合约束条件的操作节点OP,随机生成OP的参数,从而生成随机模型;最后调用TensorFlow推理框架运行生成的随机模型,从而保证随机模型的合法性和可用性。具体的,该方法可以包括:网络结构随机生成部分、OP填充部分以及代码生成部分、模型验证部分;下面对各个部分的实现过程进行详细说明:
一、随机模型结构生成;
对于随机模型的结构而言,该随机模型的结构可以通过一个有向图来表示,随机模型中的OP与有向图中的节点一一对应,因此,随机模型结构的随机生成即为有向图的随机生成,用户可以通过设定有向图的第一宽度和第一高度影响最终产生的图结构。具体的,包括以下步骤:
step1:初始化随机数产生器,用于产生随机数;
通过初始化的随机数产生器获取用户设置的有向图的第一高度和第一宽度。
step2:在第一高度和第一宽度中,通过随机数产生器随机设置有向图的高度和宽度。
step3:基于有向图的高度和宽度产生有向图;
具体的,以预设高度为1为例进行说明,有向图的随机生成采用分而治之的策略,如果有向图的高度大于1,则在高度上将有向图划分为若干个子图,对于每个子图,根据子图高度生成子图的宽度;如果子图的宽度为1,则根据该子图的高度和宽度填充节点;否则,继续对子图执行分而治之的策略,直至与有向图相对应的所有子图处理完毕后,即生成了随机的有向图。
二、对有向图进行填充操作节点OP操作
在获取到有向图之后,可以获取到有向图中每个节点的输入输出关系,根据输入输出关系对有向图中不同位置的节点随机填充符合要求的OP。一般情况下,根据输入输出关系,可以将OP划分为以下几类:
序号 | 类型名称 | 输入输出关系 | 操作节点 |
1 | 正常操作节点 | 一个输入,一个输出 | Conv,Relu |
2 | 合并操作节点 | 多个输入,一个输出 | Concat |
3 | 双分支操作节点 | 两个输入,一个输出 | Multiply,Add等 |
4 | 不敏感操作节点 | 对输入数据维度不敏感 | Reverse,Transpose |
5 | 控制流操作节点 | 控制流 | While_Loop |
在对有向图进行填充节点操作时,可以遍历有向图的所有节点,并根据该节点对输入输出关系的要求从满足要求的OP集合中随机选取一个OP对节点进行填充。
另外,在对有向图进行填充节点操作时,还可以针对有向图中每个OP生成相对应的执行代码,以使得该OP可以实现相对应的数据处理功能。此外,在执行到某一OP时,可以自动解析构造该OP所需要的所有参数,并根据参数的类型,从合理的取值范围内随机选取该OP所对应的参数信息,从而确保与OP相对应的参数信息的随机性和合理性。
三、随机模型的验证
在生成随机模型之后,可以对随机模型进行合法性验证,并且还可以根据随机模型的合法性验证结果进行不同处理。具体的,可以调用预先设置的用于进行合法性验证的推理框架,通过推理框架执行随机模型,如果推理框架能够输出结果,则表示该随机模型正常,将该随机模型返回给用户;如果在执行过程中出错(例如:未输出结果),则表明该随机模型异常,则可以对有向图进行重新的随机填充节点操作,在有向图中填充新的OP;如果重复多次(例如:50次、60次、70次、80次或者100次等等)之后,随机模型仍然异常,则可以放弃该随机模型的有向图结构,重新随机生成新的有向图结构。
在上述实现过程中,可以使用一个全局的随机数据产生器来控制随机产生的数据或者参数,通过保存全局随机数据产生器的初始化信息,可以快速恢复随机产生的模型,这样可以大大地减少存储随机模型所需要的硬盘空间,有利于持续不断地产生新的随机模型用于测试。
本应用实施例提供的随机模型的生成方法,可以自动生成与随机模型相对应的有向图,并对有向图随机填充符合约束条件的操作节点OP,随机生成OP的参数,从而实现了可以生成结构随机、参数随机的随机模型;另外,通过调用TensorFlow推理框架运行生成的随机模型,保证了生成的随机模型能够正常运行得到相应结果,从而提高了随机模型的合法性和可用性。
图17为本发明实施例提供的一种随机模型的生成装置的结构示意图;参考附图17所示,本实施例提供了一种随机模型的生成装置,该生成装置可以执行上述图1所示的随机模型的生成方法,具体的,该生成装置可以包括:
第一获取模块11,用于通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
第一生成模块12,用于基于第一宽度和第一高度,随机生成与随机模型相对应的有向图;
第一处理模块13,用于对有向图进行填充节点处理,生成随机模型。
进一步的,在第一生成模块12基于第一宽度和第一高度,随机生成与随机模型相对应的有向图时,该第一生成模块12可以用于执行:基于第一宽度和第一高度,利用随机数产生器随机生成与随机模型相对应的模型宽度和模型高度,其中,模型宽度小于或等于第一宽度,模型高度小于或等于第一高度;根据模型宽度和模型高度生成与随机模型相对应的有向图。
进一步的,在第一处理模块13对有向图进行填充节点处理,生成随机模型时,该第一处理模块13可以用于执行:确定有向图中包括的节点的数量信息以及位置信息;基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点,生成随机模型。
进一步的,在第一处理模块13确定有向图中包括的节点的数量信息以及位置信息时,该第一处理模块13可以用于执行:根据模型高度将有向图随机划分为若干个子图;获取每个所述子图的子图高度,并根据所述子图高度确定所述子图的子图宽度;在子图宽度为1时,则确定子图中包括子图节点的数量信息以及位置信息;根据所有子图中包括子图节点的数量信息和位置信息确定有向图中包括的节点的数量信息以及位置信息。
进一步的,在第一处理模块13根据所述模型高度将所述有向图随机划分为若干个子图时,该第一处理模块13可以用于执行:在所述模型高度大于预设高度时,则基于所述模型高度将所述有向图随机划分为若干个子图,所述子图的子图高度小于所述模型高度;或者,在所述模型高度小于或等于预设高度时,则所述模型宽度调整为1。
进一步的,在第一处理模块13获取每个所述子图的子图高度,并根据所述子图高度确定所述子图的子图宽度时,该第一处理模块13可以用于执行:在所述子图高度大于预设高度时,则随机生成所述子图的子图宽度;或者,在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
进一步的,在获取每个所述子图的子图高度之后,本实施例中的第一处理模块13还可以用于执行:对所述子图高度进行分析识别;在所述子图高度大于预设高度时,则将所述子图随机划分为若干个子图单元;或者,在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
进一步的,在第一处理模块13根据模型宽度和模型高度,将有向图随机划分为若干个子图时,该第一处理模块13可以用于执行:在模型宽度大于1且模型高度大于预设高度时,则基于模型高度将有向图随机划分为若干个子图,子图的子图高度小于模型高度;对于每个子图,随机生成子图的子图宽度。
进一步的,在第一处理模块13基于数量信息和位置信息,将有向图填充上与节点相对应的操作节点时,该第一处理模块13可以用于执行:基于数量信息和位置信息,确定有向图中每个节点的输入输出关系;根据输入输出关系对有向图填充与节点相对应的操作节点,并生成与操作节点相对应的代码信息。
进一步的,在第一处理模块13根据输入输出关系对有向图填充与节点相对应的操作节点时,该第一处理模块13可以用于执行:根据输入输出关系确定与操作节点相对应的节点类型;在有向图中节点的位置信息处,填充满足节点类型的操作节点。
进一步的,在第一处理模块13在有向图中节点的位置信息处,填充满足节点类型的操作节点时,该第一处理模块13可以用于执行:获取满足节点类型的至少一个预设操作节点;在至少一个预设操作节点中随机确定一目标操作节点;在有向图中节点的位置信息处,填充目标操作节点。
进一步的,在第一处理模块13在有向图中节点的位置信息处,填充满足节点类型的操作节点时,该第一处理模块13可以用于执行:基于节点类型确定操作节点的节点参数;在有向图中节点的位置信息处,填充满足节点类型和节点参数的操作节点。
进一步的,在第一处理模块13基于节点类型确定操作节点的节点参数时,该第一处理模块13可以用于执行:基于节点类型确定与操作节点相对应的预设参数范围,预设参数范围内包括多个预设参数;在多个预设参数中,随机确定一预设参数为操作节点的节点参数。
进一步的,在生成随机模型之后,本实施例中的第一获取模块11和第一处理模块13还可以用于执行以下步骤:
第一获取模块11,用于获取用于对随机模型进行验证的验证参数;
第一处理模块13,用于利用验证参数对随机模型进行合法性验证。
进一步的,验证参数包括输入参数;在第一处理模块13利用验证参数对随机模型进行合法性验证时,该第一处理模块13可以用于执行:基于输入参数控制随机模型执行数据处理操作;在随机模型生成与输入参数相对应的处理结果时,则确定随机模型通过验证;或者,在随机模型未生成与输入参数相对应的处理结果时,则确定随机模型未通过验证。
进一步的,在确定随机模型未通过验证之后,本实施例中的第一处理模块13还可以用于执行:基于有向图中包括的节点的数量信息和位置信息,重新将有向图填充上与节点相对应的操作节点。
进一步的,在确定随机模型未通过验证之后,本实施例中的第一处理模块13还可以用于执行:统计随机模型未通过验证的次数信息;在次数信息大于或等于预设次数时,则重新基于第一宽度和第一高度,随机生成与随机模型相对应的有向图。
进一步的,在第一获取模块11通过随机数产生器获取用于生成随机模型的第一宽度和第一高度时,该第一获取模块11用于执行:获取模型生成请求;根据所述模型生成请求,通过所述随机数产生器获取用于生成随机模型的第一宽度和第一高度。
图17所示装置可以执行图1a-图16所示实施例的方法,本实施例未详细描述的部分,可参考对图1a-图16所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1a-图16所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图17所示随机模型的生成装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图18所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储相对应电子设备执行上述图1a-图16所示实施例中提供的随机模型的生成方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:
通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
基于第一宽度和第一高度,随机生成与随机模型相对应的有向图;
对有向图进行填充节点处理,生成随机模型。
进一步的,第一处理器21还用于执行前述图1a-图16所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1a-图16所示方法实施例中随机模型的生成方法所涉及的程序。
图19为本发明实施例提供的另一种随机模型的生成装置的结构示意图;参考附图19所示,本实施例提供了另一种随机模型的生成装置,该生成装置可以执行上述图13所示的随机模型的生成方法,具体的,该生成装置可以包括:
第二获取模块31,用于获取模型生成请求,模型生成请求中包括用于生成随机模型的第一宽度和第一高度;
第二生成模块32,用于基于第一宽度和第一高度,随机生成与随机模型相对应的有向图;
第二处理模块33,用于根据所述有向图生成与模型生成请求相对应的随机模型。
图19所示装置可以执行图13-图16所示实施例的方法,本实施例未详细描述的部分,可参考对图13-图16所示实施例的相关说明。该技术方案的执行过程和技术效果参见图13-图16所示实施例中的描述,在此不再赘述。
本实施例提供的随机模型的生成装置,通过第二获取模块获取客户端发送的获取模型生成请求,第二生成模块可以根据模型生成请求中的第一宽度和第一高度随机生成结构不同、参数不同的有向图,从而使得第二处理模块可以基于有向图生成随机模型,所生成的随机模型可以作为产品的测试用例,不仅保证了随机模型的实用性,并且也可以保证产品的质量和效果,进一步提高了该随机模型的生成方法的实用性,有利于市场的推广与应用。
在一个可能的设计中,图19所示随机模型的生成装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图20所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,第二存储器42用于存储相对应电子设备执行上述图13-图16所示实施例中提供的随机模型的生成方法的程序,第二处理器41被配置为用于执行第二存储器42中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器41执行时能够实现如下步骤:
获取模型生成请求,模型生成请求中包括用于生成随机模型的第一宽度和第一高度;
基于第一宽度和第一高度,随机生成与随机模型相对应的有向图;
根据所述有向图生成与模型生成请求相对应的至少一个随机模型。
进一步的,第二处理器41还用于执行前述图13-图16所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图13-图16所示方法实施例中随机模型的生成方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种随机模型的生成方法,其特征在于,包括:
通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
对所述有向图进行填充节点处理,生成所述随机模型。
2.根据权利要求1所述的方法,其特征在于,基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图,包括:
基于所述第一宽度和第一高度,利用所述随机数产生器随机生成与所述随机模型相对应的模型宽度和模型高度,其中,所述模型宽度小于或等于第一宽度,所述模型高度小于或等于第一高度;
根据所述模型宽度和所述模型高度生成与所述随机模型相对应的有向图。
3.根据权利要求1所述的方法,其特征在于,对所述有向图进行填充节点处理,生成所述随机模型,包括:
确定所述有向图中包括的节点的数量信息以及位置信息;
基于所述数量信息和位置信息,将所述有向图填充上与所述节点相对应的操作节点,生成所述随机模型。
4.根据权利要求3所述的方法,其特征在于,确定所述有向图中包括的节点的数量信息以及位置信息,包括:
根据所述模型高度将所述有向图随机划分为若干个子图;
获取每个所述子图的子图高度,并根据所述子图高度确定所述子图的子图宽度;
在所述子图宽度为1时,则确定所述子图中包括子图节点的数量信息以及位置信息;
根据所有子图中包括子图节点的数量信息和位置信息确定所述有向图中包括的节点的数量信息以及位置信息。
5.根据权利要求4所述的方法,其特征在于,根据所述模型高度将所述有向图随机划分为若干个子图,包括:
在所述模型高度大于预设高度时,则基于所述模型高度将所述有向图随机划分为若干个子图,所述子图的子图高度小于所述模型高度;或者,
在所述模型高度小于或等于预设高度时,则所述模型宽度调整为1。
6.根据权利要求4所述的方法,其特征在于,根据所述子图高度确定所述子图的子图宽度,包括:
在所述子图高度大于预设高度时,则随机生成所述子图的子图宽度;或者,
在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
7.根据权利要求4所述的方法,其特征在于,在获取每个所述子图的子图高度之后,所述方法还包括:
对所述子图高度进行分析识别;
在所述子图高度大于预设高度时,则将所述子图随机划分为若干个子图单元;或者,
在所述子图高度小于或等于预设高度时,则将所述子图的子图宽度设置为1。
8.根据权利要求3所述的方法,其特征在于,基于所述数量信息和位置信息,将所述有向图填充上与所述节点相对应的操作节点,包括:
基于所述数量信息和位置信息,确定所述有向图中每个节点的输入输出关系;
根据所述输入输出关系对所述有向图填充与所述节点相对应的操作节点,并生成与所述操作节点相对应的代码信息。
9.根据权利要求8所述的方法,其特征在于,根据所述输入输出关系对所述有向图填充与所述节点相对应的操作节点,包括:
根据所述输入输出关系确定与所述操作节点相对应的节点类型;
在所述有向图中节点的位置信息处,填充满足所述节点类型的操作节点。
10.根据权利要求9所述的方法,其特征在于,在所述有向图中节点的位置信息处,填充满足所述节点类型的操作节点,包括:
获取满足所述节点类型的至少一个预设操作节点;
在至少一个预设操作节点中随机确定一目标操作节点;
在所述有向图中节点的位置信息处,填充所述目标操作节点。
11.根据权利要求9所述的方法,其特征在于,在所述有向图中节点的位置信息处,填充满足所述节点类型的操作节点,包括:
基于所述节点类型确定所述操作节点的节点参数;
在所述有向图中节点的位置信息处,填充满足所述节点类型和所述节点参数的操作节点。
12.根据权利要求11所述的方法,其特征在于,基于所述节点类型确定所述操作节点的节点参数,包括:
基于所述节点类型确定与所述操作节点相对应的预设参数范围,所述预设参数范围内包括多个预设参数;
在多个所述预设参数中,随机确定一预设参数为所述操作节点的节点参数。
13.根据权利要求3-12中任意一项所述的方法,其特征在于,在生成所述随机模型之后,所述方法还包括:
获取用于对所述随机模型进行验证的验证参数;
利用所述验证参数对所述随机模型进行合法性验证。
14.根据权利要求13所述的方法,其特征在于,所述验证参数包括输入参数;利用所述验证参数对所述随机模型进行合法性验证,包括:
基于所述输入参数控制所述随机模型执行数据处理操作;
在所述随机模型生成与所述输入参数相对应的处理结果时,则确定所述随机模型通过验证;或者,
在所述随机模型未生成与所述输入参数相对应的处理结果时,则确定所述随机模型未通过验证。
15.根据权利要求14所述的方法,其特征在于,在确定所述随机模型未通过验证之后,所述方法还包括:
基于所述有向图中包括的节点的数量信息和位置信息,重新将所述有向图填充上与所述节点相对应的操作节点。
16.根据权利要求14所述的方法,其特征在于,在确定所述随机模型未通过验证之后,所述方法还包括:
统计所述随机模型未通过验证的次数信息;
在所述次数信息大于或等于预设次数时,则重新基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图。
17.根据权利要求1-12中任意一项所述的方法,其特征在于,通过随机数产生器获取用于生成随机模型的第一宽度和第一高度,包括:
获取模型生成请求;
根据所述模型生成请求,通过所述随机数产生器获取用于生成随机模型的第一宽度和第一高度。
18.一种随机模型的生成装置,其特征在于,包括:
第一获取模块,用于通过随机数产生器获取用于生成随机模型的第一宽度和第一高度;
第一生成模块,用于基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
第一处理模块,用于对所述有向图进行填充节点处理,生成所述随机模型。
19.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1-16中任意一项所述的随机模型的生成方法。
20.一种随机模型的生成装置,其特征在于,包括:
第二获取模块,用于获取模型生成请求,所述模型生成请求中包括用于生成随机模型的第一宽度和第一高度;
第二生成模块,用于基于所述第一宽度和所述第一高度,随机生成与所述随机模型相对应的有向图;
第二处理模块,用于根据所述有向图生成与所述模型生成请求相对应的随机模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911228656.8A CN112905442A (zh) | 2019-12-04 | 2019-12-04 | 随机模型的生成方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911228656.8A CN112905442A (zh) | 2019-12-04 | 2019-12-04 | 随机模型的生成方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905442A true CN112905442A (zh) | 2021-06-04 |
Family
ID=76111030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911228656.8A Pending CN112905442A (zh) | 2019-12-04 | 2019-12-04 | 随机模型的生成方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905442A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021316A1 (en) * | 2003-04-23 | 2005-01-27 | Bela Bollobas | Modeling directed scale-free object relationships |
WO2015071968A1 (ja) * | 2013-11-13 | 2015-05-21 | 株式会社日立製作所 | 分析システム |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
CN106507275A (zh) * | 2016-10-14 | 2017-03-15 | 清华大学 | 一种无线传感器网络的鲁棒分布式滤波方法和装置 |
WO2017046635A1 (en) * | 2015-09-14 | 2017-03-23 | Telefonaktiebolaget Lm Ericsson (Publ) | High-availability multi-component cloud application placement using stochastic availability models |
CN106682990A (zh) * | 2016-12-09 | 2017-05-17 | 武汉中软通证信息技术有限公司 | 一种建立嫌疑人人际关系模型的方法和系统 |
-
2019
- 2019-12-04 CN CN201911228656.8A patent/CN112905442A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021316A1 (en) * | 2003-04-23 | 2005-01-27 | Bela Bollobas | Modeling directed scale-free object relationships |
WO2015071968A1 (ja) * | 2013-11-13 | 2015-05-21 | 株式会社日立製作所 | 分析システム |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
WO2017046635A1 (en) * | 2015-09-14 | 2017-03-23 | Telefonaktiebolaget Lm Ericsson (Publ) | High-availability multi-component cloud application placement using stochastic availability models |
CN106507275A (zh) * | 2016-10-14 | 2017-03-15 | 清华大学 | 一种无线传感器网络的鲁棒分布式滤波方法和装置 |
CN106682990A (zh) * | 2016-12-09 | 2017-05-17 | 武汉中软通证信息技术有限公司 | 一种建立嫌疑人人际关系模型的方法和系统 |
Non-Patent Citations (2)
Title |
---|
喻建平: "点度精确的随机网络模型", 《计算机工程与应用》 * |
李丛丛: "基于Prüfer编码的随机图模型生成算法", 《陕西师范大学学报(自然科学版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6696001B2 (ja) | リスク情報を出力し、リスク情報を構築するための方法及びデバイス | |
US10585789B2 (en) | Intelligent generation of log messages by a SaaS offering in a continuous pipeline | |
CN113516246A (zh) | 参数优化方法、量子芯片的控制方法及装置 | |
US11487824B2 (en) | Automated database query filtering for spatial joins | |
US20180060888A1 (en) | Erosion rate prediction post loss of exclusivity | |
US11017874B2 (en) | Data and memory reorganization | |
CN112905442A (zh) | 随机模型的生成方法、装置及设备 | |
US20200394117A1 (en) | Software application validation | |
CN113761746B (zh) | 一种代数环的识别方法及装置 | |
WO2023066073A1 (en) | Distributed computing for dynamic generation of optimal and interpretable prescriptive policies with interdependent constraints | |
CN106875152A (zh) | 一种任务创建方法及装置 | |
CN107122303B (zh) | 一种测试方法及装置 | |
CN109241322A (zh) | 代码生成方法、代码生成装置和电子设备 | |
US9875290B2 (en) | Method, system and computer program product for using an intermediation function | |
CN114818514A (zh) | 用于确定储气库的库容量的方法及处理器 | |
US11074508B2 (en) | Constraint tracking and inference generation | |
US20230010147A1 (en) | Automated determination of accurate data schema | |
CN118261247B (zh) | 一种基于知识图谱的标识解析推荐方法、设备及存储介质 | |
US20230032912A1 (en) | Automatically detecting outliers in federated data | |
US20230043505A1 (en) | Deep learning software model modification | |
US11500864B2 (en) | Generating highlight queries | |
US20230036410A1 (en) | Digital twin functional and non-functional simulation testing | |
US20230185791A1 (en) | Prioritized data cleaning | |
Cain | Optimisation of data collection strategies for model-based evaluation and decision-making | |
AU2021363719B2 (en) | Generating and updating a performance report |
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 |