CN112101571A - 用于监控深度学习框架下的算子兼容性的方法和装置 - Google Patents
用于监控深度学习框架下的算子兼容性的方法和装置 Download PDFInfo
- Publication number
- CN112101571A CN112101571A CN202011027367.4A CN202011027367A CN112101571A CN 112101571 A CN112101571 A CN 112101571A CN 202011027367 A CN202011027367 A CN 202011027367A CN 112101571 A CN112101571 A CN 112101571A
- Authority
- CN
- China
- Prior art keywords
- operator
- differences
- modified
- description information
- compatibility
- 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
- 238000013135 deep learning Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012544 monitoring process Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000012986 modification Methods 0.000 claims description 11
- 238000012552 review Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 7
- 230000001172 regenerating effect Effects 0.000 claims description 2
- 230000004048 modification Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及一种用于监控深度学习框架下的算子兼容性的方法和装置、计算系统和计算机可读存储介质,涉及深度学习领域。该方法包括:生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,描述信息与算子兼容性相关联;确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同;确定不同是否满足预先设定的规则;以及响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息。
Description
技术领域
本公开涉及深度学习领域,具体涉及一种用于监控深度学习框架下的算子兼容性的方法和装置、计算系统和计算机可读存储介质。
背景技术
深度学习是人工智能领域中的关键技术,开发者通常基于深度学习框架来开展相关工作。算子是从一个函数空间到另一函数空间的映射,是深度学习框架中的基本计算单元,对模型训练、预测和部署发挥重要作用。随着深度学习技术的不断发展,深度学习框架中的算子数量逐渐增多,并且算子处于快速迭代中。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
根据本公开的第一方面,提供了一种用于监控深度学习框架下的算子兼容性的方法,包括:生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,描述信息与算子兼容性相关联;确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同;确定不同是否满足预先设定的规则;以及响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息。
根据本公开的第二方面,提供了一种用于监控深度学习框架下的算子兼容性的装置,包括:第一生成模块,被配置为生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,描述信息与算子兼容性相关联;第一确定模块,被配置为确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同;第二确定模块,被配置为确定不同是否满足预先设定的规则;以及提示模块,被配置为响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息。
根据本公开的第三方面,提供了一种计算系统,包括:处理器;以及存储程序的存储器,程序包括指令,指令在由处理器执行时使得处理器执行上述用于监控深度学习框架下的算子兼容性的方法。
根据本公开的第四方面,提供了一种存储程序的计算机可读存储介质,程序包括指令,指令在由计算系统的处理器执行时,使得计算系统执行上述用于监控深度学习框架下的算子兼容性的方法。
根据本公开的一个或多个实施例,可以确保深度学习框架向前兼容,使得新版本的预测库能够兼容旧版本训练的模型,提高算子兼容性的准确度。
根据本公开的另外一个或多个实施例,可以自动监控深度学习框架下的算子兼容性,从而减少人工审核所需的人力,降低开发成本。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的实施例的用于监控深度学习框架下的算子兼容性的方法的流程图;
图2示出了根据本公开的另一实施例的用于监控深度学习框架下的算子兼容性的方法的流程图;
图3示出了根据本公开的实施例的根据不具备兼容性的信息来确定是否需要对与不同中的至少一个相关联的修改后的算子再修改的流程图;
图4示出了根据本公开的实施例的用于监控深度学习框架下的算子兼容性的装置的结构框图;
图5示出了能够用于实现本公开的实施例的示例性计算系统的结构框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
发明人发现,在深度学习框架的开发过程中,由于算子快速迭代,因此存在对算子的修改等影响深度学习框架的兼容性的问题。这将导致对应于更新或修改后的深度学习框架的新版本的预测库无法兼容旧版本训练的模型,产生运行风险,并可能需要重新训练模型以与新版本的预测库匹配,从而增加开发成本。
此外,如果仅通过人工审核来确定对算子的修改等是否满足深度学习框架下的兼容性要求,不仅会增加开发过程中的人力需求,对审核人员的算子开发能力要求更高,还可能由于人工疏漏而降低判断算子兼容性的准确度。
针对上述技术问题,本公开的一个或多个实施例提供了一种用于监控深度学习框架下的算子兼容性的方法和装置、计算系统和计算机可读存储介质。下面将结合附图详细描述本公开的各种实施例。
图1示出了根据本公开的实施例的用于监控深度学习框架下的算子兼容性的方法100的流程图。如图1所示,方法100可以包括:步骤S110,生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,描述信息与算子兼容性相关联;步骤S120,确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同;步骤S130,确定不同是否满足预先设定的规则;以及步骤S140,响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息。
根据本公开的实施例的用于监控深度学习框架下的算子兼容性的方法,可以确保深度学习框架向前兼容,使得对应于更新或修改后的深度学习框架的新版本的预测库能够兼容旧版本训练的模型,从而可以及时避免风险,节约重新训练模型的时间以及存储新模型的存储空间。此外,该方法还可以缓解人工审核所需的人力,从而降低开发成本。
根据一些实施例,与算子兼容性相关联的描述信息可以包括:算子的输入、输出和属性。根据训练场景需求,每个算子可以具有多个输入、输出和属性,其中,每个输入、输出和属性都具有相对应的名称,以便对多个输入、输出和属性进行区分。除与算子兼容性相关联的描述信息之外,算子还可以具有相对应的算子名称,以对不同算子进行区分。此外,算子名称可以与描述信息形成映射关系,以便实现对描述信息的快速查找。
在一些示例中,如下表1所示,每个输入、输出可以具有“可复制”、“中间变量”和“可有可无”三个特征,并且可以为上述特征设定“真”或“假”的特征值。当特征“可复制”的特征值为“真”时,表示相对应的输入/输出为数组,而当特征“可复制”的特征值为“假”时,表示相对应的输入/输出为非数组(例如,单个数值);当特征“中间变量”的特征值为“真”时,表示相对应的输入/输出为中间变量(例如,在每个算子的内部运算过程中产生的变量),而特征“中间变量”的特征值为“假”时,表示相对应的输入/输出为非中间变量;当特征“可有可无”的特征值为“真”时,表示在算子的运算过程中可以缺少相对应的输入/输出,而特征“可有可无”的特征值为“假”时,表示必须存在相对应的输入/输出以实现算子的运算过程。此外,每个属性可以具有特征“默认值”,并且可以为特征“默认值”设定符合训练场景需求的任意值作为特征值。
表1
需要说明的是,表1所列出的描述信息、描述信息包括的特征及相对应的特征值仅为了说明性目的。描述信息还可以包括与算子兼容性相关联的其他信息,算子的输入、输出和属性还可以具备其他特征,并且对特征值的设定也不限于上表所列出的“真”、“假”或“任意值”,能够表明相对应的描述信息的含义的任何值是可行的,包括但不限于数字(例如“0”、“1”等)或文字(“数组”/“非数组”、“中间变量”/“非中间变量”、“可缺少”/“不可缺少”等)。
根据一些实施例,可以将描述信息存储于字典、表或数组中的至少一个,从而更加方便地调用相关联的描述信息。字典、表(例如,哈希表)或数组可以存储一个或多个与算子相关联的描述信息。例如,可以将所有修改后的算子的描述信息存储于一个字典、表或数组中,由于存储空间相同,因此可以节省访问和调用描述信息的时间。
应当理解,存储描述信息的方式并不仅限于上述列出的字典、表或数组,可以采用任何其他方式将描述信息存储于任何具备存储功能的软件、硬件或其组合中。
根据一些实施例,生成与算子相关联的描述信息可以包括在例如Python、Matlab/Simulink、C/C++等的编程语言环境下:获取至少一个算子及算子名称;根据算子名称获取算子的包括输入、输出和属性等的与兼容性相关联的描述信息;以及生成该描述信息的集合。在步骤S110中,生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息均可采用上述方法。
利用编程语言环境可以快速地自动生成与算子相关联的描述信息,从而避免了手动将与算子相关联的描述信息输入到诸如字典、表或数组等的存储环境中,节约了所需的人力和时间。
根据一些实施例,在步骤S120中,确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同可以包括例如:根据算子名称逐个查找两个描述信息中的诸如输入、输出和属性之间的不同,其中输入、输出可以包括上述特征“可复制”、“中间变量”和“可有可无”,而属性可以包括上述特征“默认值”;以及输出算子名称和与该算子名称相关联的描述信息中的不同。例如,逐个比较原有算子A的诸如输入中的特征“可复制”、“中间变量”和“可有可无”与修改后的算子A的诸如输入中的特征“可复制”、“中间变量”和“可有可无”是否分别相同,如果相同,则继续比较原有算子A的其他描述信息与修改后的算子A的其他描述信息,直至完成对上述两个描述信息中的全部描述信息的比较;如果不同,则提取算子A的算子名称“A”以及描述信息中的不同(例如,输入或输出中的特征“可复制”、“中间变量”和“可有可无”以及属性中的特征“默认值”中的至少一个)。
根据一些实施例,在步骤S120之后,可以在步骤S130中将描述信息中的不同与预先设定的规则进行比较,以确定该不同是否满足预先设定的规则。预先设定的规则可以包括:为确保至少一个修改后的算子具备深度学习框架下的兼容性而需满足的规则。
在一些示例中,预先设定的规则可以包括:针对算子的描述信息中的输入,如果增加了算子的输入,则赋予该新增的输入中的特征“可有可无”以特征值“真”,表示该新增的输入可以缺少,并确定修改后的算子具备深度学习框架下的兼容性;如果删除了算子的输入,则确定修改后的算子不具备深度学习框架下的兼容性;如果改变算子的输入中的特征的特征值(例如,将算子的输入中的特征“可复制”的特征值由“真”修改为“假”、将特征“中间变量”的特征值由“假”修改为“真”、将特征“可有可无”的特征值由“真”修改为“假”等),则确定修改后的算子不具备深度学习框架下的兼容性。
在另一些示例中,预先设定的规则可以包括与针对算子的描述信息中的输入设定的规则类似的针对算子的描述信息中的输出设定的规则,故此不再赘述。
在又一些示例中,预先设定的规则可以包括:针对算子的描述信息中的属性,如果增加了算子的属性,则为该新增的属性的特征“默认值”设定特征值,并确定修改后的算子具备深度学习框架下的兼容性;如果删除了算子的属性,则确定修改后的算子不具备深度学习框架下的兼容性;如果修改了算子的属性中的特征“默认值”的特征值(例如,将“默认值”的特征值由“0”修改为“1”等),则确定修改后的算子不具备深度学习框架下的兼容性。
在再一些示例中,预先设定的规则可以包括:针对新增加的算子(例如,通过步骤S120无法搜索到与修改后的算子相匹配的原有算子时,则确定该修改后的算子为新增加的算子),确定修改后的算子具备深度学习框架下的兼容性。
应当理解,上述示例中的各种预先设定的规则也可以以任何适合的方式组合来使用。另外,也可以根据不同的应用场景需求(例如不同的深度学习框架、不同的训练场景等)来设定其他为确保修改后的算子具备深度学习框架下的兼容性而需满足的规则,而不限于上述示例中所列出的。从而可以在保证深度学习框架下的算子兼容性的同时,丰富可用的应用场景,进一步适用于不同的模型训练、预测和部署。
根据一些实施例,在步骤S140中,响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息可以包括:在确定不同中的不满足预先设定的规则的一处不同后,继续确定其余不同是否满足预先设定的规则,并且提示不具备兼容性的信息;或者在确定不同中的不满足预先设定的规则的一处不同后,停止确定其余不同是否满足预先设定的规则,并且提示不具备兼容性的信息。
根据一些实施例,不具备兼容性的信息可以包括:关于不满足预先设定的规则的不同中的至少一个的信息;以及关于与不同中的至少一个相关联的修改后的算子的信息。
在确定存在不满足预先设定的规则的一处不同后,通过继续判断其余不同是否满足预先设定的规则,然后提示不具备兼容性的信息,可以一次性确定所有不满足预先设定的规则的不同,从而减少了执行监控算子兼容性的方法的次数和时间,以及每次执行该方法产生的结果所占据的存储空间。
在一些示例中,在步骤S110中生成例如包括原有算子A、算子B和算子C等的描述信息和包括修改后的算子A、算子B和算子C等的描述信息。在步骤S120中确定例如对算子A新增了输入、对算子B删除了输出以及对算子C新增了属性等。则在步骤S130-S140中,当检测到例如赋予算子A的新增的输入中的特征“可有可无”以特征值“假”时,确定修改后的算子A不具备深度学习框架下的兼容性,并且继续确定对算子B的修改和算子C的修改等是否满足预先设定的规则。例如,由于删除了算子B的输出,可以确定不满足预先设定的规则,从而确定修改后的算子B也不具备深度学习框架下的兼容性;由于对算子C的新增属性中的特征“默认值”设定了某一特征值(例如“10”),可以确定满足预先设定的规则,从而确定修改后的算子C具备深度学习框架下的兼容性。直至确定不同中的所有不同是否满足预先设定的规则为止。然后可以提示不具备兼容性的修改后的算子的信息,例如算子的名称(此示例中为算子A、算子B等),以及不满足预先设定的规则的不同之处(此示例中为算子A的新增的输入、算子B的删除的输出等)。
在确定存在不满足预先设定的规则的一处不同后,通过停止判断其余不同是否满足预先设定的规则,然后提示不具备兼容性的信息,可以更加快速且直观地定位于不具备兼容性的不同之处,便于开发者及时核查。
继续上述示例,在步骤S130-S140中,当检测到例如赋予算子A的新增的输入中的特征“可有可无”以特征值“假”时,确定修改后的算子A不具备深度学习框架下的兼容性,并提示不具备兼容性的修改后的算子的信息,例如算子的名称(此示例中为算子A),以及不满足预先设定的规则的不同之处(此示例中为算子A的新增的输入)。然后,在根据不具备兼容性的信息解决修改后的算子A导致的兼容性问题后,再次确定对算子B的修改是否满足预先设定的规则、对算子C的修改是否满足预先设定的规则等。
图2示出了根据本公开的另一实施例的用于监控深度学习框架下的算子兼容性的方法200的流程图。根据一些实施例,如图2所示,方法200还可以包括:在步骤S140之后的步骤S150,根据不具备兼容性的信息,确定是否需要对与不同中的至少一个相关联的修改后的算子再修改;以及步骤S160,响应于确定需要对与不同中的至少一个相关联的修改后的算子再修改,重新生成与再修改后的算子相关联的描述信息。
通过对不具备兼容性的算子进行再修改,并重新生成与再修改后的算子相关联的描述信息,可以实现再次监控再修改的算子是否具备兼容性(例如,采用上述方法100中的步骤S110-S140),从而进一步确保了深度学习框架的向前兼容。
图3示出了根据本公开的实施例的根据不具备兼容性的信息来确定是否需要对与不同中的至少一个相关联的修改后的算子再修改的流程图。
根据一些实施例,如图3所示,步骤S150,根据不具备兼容性的信息,确定是否需要对与不同中的至少一个相关联的修改后的算子再修改可以包括:步骤S152,根据不具备兼容性的信息,提示进行人工审核来确定是否需要对与不同中的至少一个相关联的修改后的算子再修改。
通过提示进行人工审核来确定是否需要对不具备兼容性的修改后的算子再修改,可以进一步提高上述用于监控深度学习框架下的算子兼容性的方法的准确度,这在例如删除与算子相关联的描述信息、改变与算子相关联的描述信息中的特征的特征值等情况下将是有利的。
在一些示例中,在深度学习框架的开发期间,当由于对应于旧版本的预测库的深度学习框架中的某些算子的描述信息过于陈旧而修改算子(例如,不再需要某个算子的输出中的一个输出或者修改了某个算子的属性中的一个属性的特征“默认值”后也可以获得正确的预测结果)时,根据上述预先设定的规则可能提示不具备兼容性的信息。此时,可以提示进行人工审核来确定修改后的算子不具备兼容性由以下中的哪一个所导致:确实需要修改算子的描述信息来提高算子本身的性能和算子的操作效率,以适用于各种应用场景;或者修改过程中由于不了解深度学习框架下的兼容性规则或者误操作而导致的修改。针对前者,可以提示人工审核后,由人工确认无须对不具备兼容性的算子进行再修改,由此通过对该算子兼容性的监控。而针对后者,可以提示人工审核后,由人工确认需要对不具备兼容性的算子进行再修改,然后例如重新生成与再修改后的算子相关联的描述信息,以再次监控再修改后的算子是否具备兼容性。
图4示出了根据本公开的实施例的用于监控深度学习框架下的算子兼容性的装置400的结构框图。根据一些实施例,如图4所示,装置400可以包括:第一生成模块410,被配置为生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,描述信息与算子兼容性相关联;第一确定模块420,被配置为确定与至少一个原有算子相关联的描述信息和与至少一个修改后的算子相关联的描述信息之间的不同;第二确定模块430,被配置为确定不同是否满足预先设定的规则;以及提示模块440,被配置为响应于确定不同中的至少一个不满足预先设定的规则,提示不具备兼容性的信息。
根据一些实施例,描述信息可以包括:算子的输入、输出和属性。
根据一些实施例,可以将描述信息存储于字典、表或数组中的至少一个。
根据一些实施例,预先设定的规则可以包括:为确保至少一个修改后的算子具备深度学习框架下的兼容性而需满足的规则。
根据一些实施例,提示模块440可以包括:第一提示子模块,被配置为在确定不同中的不满足预先设定的规则的一处不同后,继续确定其余不同是否满足预先设定的规则,并且提示不具备兼容性的信息;或者第二提示子模块,被配置为在确定不同中的不满足预先设定的规则的一处不同后,停止确定其余不同是否满足预先设定的规则,并且提示不具备兼容性的信息。
根据一些实施例,不具备兼容性的信息可以包括:关于不满足预先设定的规则的不同中的至少一个的信息;以及关于与不同中的至少一个相关联的修改后的算子的信息。
根据一些实施例,用于监控深度学习框架下的算子兼容性的装置400还可以包括:第三确定模块,被配置为根据不具备兼容性的信息,确定是否需要对与不同中的至少一个相关联的修改后的算子再修改;以及第二生成模块,被配置为响应于确定需要对与不同中的至少一个相关联的修改后的算子再修改,重新生成与再修改后的算子相关联的描述信息。
根据一些实施例,第三确定模块可以包括:被配置为根据不具备兼容性的信息,提示进行人工审核来确定是否需要对与不同中的至少一个相关联的修改后的算子再修改的模块。
在上述各种实施例中,装置400及其相应功能模块的具体实施方法和技术效果可以参考图1至图3对应的各种实施例中的相关说明,在此不再赘述。
根据本公开的另一方面,还提供一种计算系统,可以包括:处理器;以及存储程序的存储器,程序包括在由处理器执行时使得处理器执行上述用于监控深度学习框架下的算子兼容性的方法的指令。
根据本公开的另一方面,还提供一种存储程序的计算机可读存储介质,程序包括在由计算系统的处理器执行时,使得计算系统执行上述用于监控深度学习框架下的算子兼容性的方法的指令。
下面将结合图5描述这样的计算系统和计算机可读存储介质的示例。图5示出了能够用于实现本公开的实施例的示例性计算系统2000的结构框图。
计算系统2000是可以应用于本公开的各方面的硬件设备的示例。计算系统2000可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理、机器人、智能电话、车载计算机或其任何组合。上述用于监控深度学习框架下的算子兼容性的方法可以全部或至少部分地由计算系统2000或类似设备或系统实现。
计算系统2000可以包括(可能经由一个或多个接口)与总线2002连接或与总线2002通信的元件。例如,计算系统2000可以包括总线2002、一个或多个处理器2004、一个或多个输入设备2006以及一个或多个输出设备2008。一个或多个处理器2004可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。输入设备2006可以是能向计算系统2000输入信息的任何类型的设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备2008可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算系统2000还可以包括非暂时性存储设备2010或者与非暂时性存储设备2010连接,非暂时性存储设备可以是非暂时性的并且可以实现数据存储的任何存储设备,并且可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁介质,光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何其他存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备2010可以从接口拆卸。非暂时性存储设备2010可以具有用于实现上述方法和步骤的数据/程序(包括指令)/代码。计算系统2000还可以包括通信设备2012。通信设备2012可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算系统2000还可以包括工作存储器2014,其可以是可以存储对处理器2004的工作有用的程序(包括指令)和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。
软件要素(程序)可以位于工作存储器2014中,包括但不限于操作系统2016、一个或多个应用程序2018、驱动程序和/或其他数据和代码。用于执行上述方法和步骤的指令可以被包括在一个或多个应用程序2018中,并且上述用于监控深度学习框架下的算子兼容性的方法可以通过由处理器2004读取和执行一个或多个应用程序2018的指令来实现。更具体地,上述用于监控深度学习框架下的算子兼容性的方法中,步骤S110~步骤S140可以例如通过处理器2004执行具有步骤S110~步骤S140的指令的应用程序2018而实现。此外,上述用于监控深度学习框架下的算子兼容性的方法中的其它步骤可以例如通过处理器2004执行具有执行相应步骤中的指令的应用程序2018而实现。软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如上述存储设备2010)中,并且在执行时可以被存入工作存储器2014中(可能被编译和/或安装)。软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现特定元件。例如,所公开的方法和设备中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
还应该理解,前述方法可以通过服务器-客户端模式来实现。例如,客户端可以接收用户输入的数据并将所述数据发送到服务器。客户端也可以接收用户输入的数据,进行前述方法中的一部分处理,并将处理所得到的数据发送到服务器。服务器可以接收来自客户端的数据,并且执行前述方法或前述方法中的另一部分,并将执行结果返回给客户端。客户端可以从服务器接收到方法的执行结果,并例如可以通过输出设备呈现给用户。
还应该理解,计算系统2000的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。计算系统2000的其他组件也可以类似地分布。这样,计算系统2000可以被解释为在多个位置执行处理的分布式计算系统。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (18)
1.一种用于监控深度学习框架下的算子兼容性的方法,包括:
生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,所述描述信息与所述算子兼容性相关联;
确定所述与至少一个原有算子相关联的描述信息和所述与至少一个修改后的算子相关联的描述信息之间的不同;
确定所述不同是否满足预先设定的规则;以及
响应于确定所述不同中的至少一个不满足所述预先设定的规则,提示不具备兼容性的信息。
2.根据权利要求1所述的方法,其中,所述预先设定的规则包括:为确保所述至少一个修改后的算子具备所述深度学习框架下的兼容性而需满足的规则。
3.根据权利要求1所述的方法,其中,响应于确定所述不同中的至少一个不满足所述预先设定的规则,提示不具备兼容性的信息包括:
在确定所述不同中的不满足所述预先设定的规则的一处不同后,继续确定其余所述不同是否满足所述预先设定的规则,并且提示所述不具备兼容性的信息;或者
在确定所述不同中的不满足所述预先设定的规则的一处不同后,停止确定其余所述不同是否满足所述预先设定的规则,并且提示所述不具备兼容性的信息。
4.根据权利要求1所述的方法,其中,所述不具备兼容性的信息包括:
关于不满足所述预先设定的规则的所述不同中的至少一个的信息;以及
关于与所述不同中的至少一个相关联的修改后的算子的信息。
5.根据权利要求4所述的方法,还包括:
根据所述不具备兼容性的信息,确定是否需要对与所述不同中的至少一个相关联的修改后的算子再修改;以及
响应于确定需要对与所述不同中的至少一个相关联的修改后的算子再修改,重新生成与再修改后的算子相关联的描述信息。
6.根据权利要求5所述的方法,其中,根据所述不具备兼容性的信息,确定是否需要对与所述不同中的至少一个相关联的修改后的算子再修改包括:根据所述不具备兼容性的信息,提示进行人工审核来确定是否需要对与所述不同中的至少一个相关联的修改后的算子再修改。
7.根据权利要求1-6中任一项所述的方法,其中,所述描述信息包括:算子的输入、输出和属性。
8.根据权利要求1-6中任一项所述的方法,其中,所述描述信息存储于字典、表或数组中的至少一个。
9.一种用于监控深度学习框架下的算子兼容性的装置,包括:
第一生成模块,被配置为生成与至少一个原有算子相关联的描述信息以及与至少一个修改后的算子相关联的描述信息,其中,所述描述信息与所述算子兼容性相关联;
第一确定模块,被配置为确定所述与至少一个原有算子相关联的描述信息和所述与至少一个修改后的算子相关联的描述信息之间的不同;
第二确定模块,被配置为确定所述不同是否满足预先设定的规则;以及
提示模块,被配置为响应于确定所述不同中的至少一个不满足所述预先设定的规则,提示不具备兼容性的信息。
10.根据权利要求9所述的装置,其中,所述预先设定的规则包括:为确保所述至少一个修改后的算子具备所述深度学习框架下的兼容性而需满足的规则。
11.根据权利要求9所述的装置,其中,提示模块包括:
第一提示子模块,被配置为在确定所述不同中的不满足所述预先设定的规则的一处不同后,继续确定其余所述不同是否满足所述预先设定的规则,并且提示所述不具备兼容性的信息;或者
第二提示子模块,被配置为在确定所述不同中的不满足所述预先设定的规则的一处不同后,停止确定其余所述不同是否满足所述预先设定的规则,并且提示所述不具备兼容性的信息。
12.根据权利要求9所述的装置,其中,所述不具备兼容性的信息包括:
关于不满足所述预先设定的规则的所述不同中的至少一个的信息;以及
关于与所述不同中的至少一个相关联的修改后的算子的信息。
13.根据权利要求12所述的装置,还包括:
第三确定模块,被配置为根据所述不具备兼容性的信息,确定是否需要对与所述不同中的至少一个相关联的修改后的算子再修改;以及
第二生成模块,被配置为响应于确定需要对与所述不同中的至少一个相关联的修改后的算子再修改,重新生成与再修改后的算子相关联的描述信息。
14.根据权利要求13所述的装置,其中,第三确定模块包括:被配置为根据所述不具备兼容性的信息,提示进行人工审核来确定是否需要对与所述不同中的至少一个相关联的修改后的算子再修改的模块。
15.根据权利要求9-14中任一项所述的装置,其中,所述描述信息包括:算子的输入、输出和属性。
16.根据权利要求9-14中任一项所述的装置,其中,所述描述信息存储于字典、表或数组中的至少一个。
17.一种计算系统,包括:
处理器;以及
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使得所述处理器执行根据权利要求1-8中任一项所述的方法。
18.一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由计算系统的处理器执行时,使得所述计算系统执行根据权利要求1-8中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011027367.4A CN112101571A (zh) | 2020-09-25 | 2020-09-25 | 用于监控深度学习框架下的算子兼容性的方法和装置 |
JP2021044388A JP7095137B2 (ja) | 2020-09-25 | 2021-03-18 | ディープラーニングフレームワークでの演算子互換性をモニターするための方法及び装置 |
KR1020210036013A KR20210038485A (ko) | 2020-09-25 | 2021-03-19 | 딥 러닝 프레임 워크에서의 연산자 호환성을 모니터링하기 위한 방법 및 장치 |
EP21164054.5A EP3905145A1 (en) | 2020-09-25 | 2021-03-22 | Method and apparatus for monitoring operator compatibility within a deep learning framework |
US17/208,707 US20210209114A1 (en) | 2020-09-25 | 2021-03-22 | Monitoring operator compatibility within a deep learning framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011027367.4A CN112101571A (zh) | 2020-09-25 | 2020-09-25 | 用于监控深度学习框架下的算子兼容性的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112101571A true CN112101571A (zh) | 2020-12-18 |
Family
ID=73755629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011027367.4A Pending CN112101571A (zh) | 2020-09-25 | 2020-09-25 | 用于监控深度学习框架下的算子兼容性的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210209114A1 (zh) |
EP (1) | EP3905145A1 (zh) |
JP (1) | JP7095137B2 (zh) |
KR (1) | KR20210038485A (zh) |
CN (1) | CN112101571A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009044971A1 (en) * | 2007-10-01 | 2009-04-09 | Samsung Electronics Co., Ltd. | Method and system for determining interface compatibility based on component model |
US20160330082A1 (en) * | 2015-05-08 | 2016-11-10 | Rockwell Automation Technologies, Inc. | System and method to capture and document cross-product compatibility status information for industrial devices |
CN110515626A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 深度学习计算框架的代码编译方法及相关产品 |
CN110688300A (zh) * | 2019-08-13 | 2020-01-14 | 平安科技(深圳)有限公司 | 兼容性测试方法、装置、设备及存储介质 |
CN111290785A (zh) * | 2020-03-06 | 2020-06-16 | 北京百度网讯科技有限公司 | 评估深度学习框架系统兼容性的方法、装置、电子设备以及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164075A (ja) * | 2002-11-11 | 2004-06-10 | Hitachi Software Eng Co Ltd | ライブラリ監視システム |
US7600219B2 (en) * | 2003-12-10 | 2009-10-06 | Sap Ag | Method and system to monitor software interface updates and assess backward compatibility |
US20100306757A1 (en) * | 2009-05-28 | 2010-12-02 | Karin Becker | Determining compatibility among service versions |
JP5282677B2 (ja) * | 2009-06-25 | 2013-09-04 | 株式会社リコー | 互換性評価装置、互換性評価方法、及びプログラム |
US9189220B2 (en) * | 2012-07-02 | 2015-11-17 | Amazon Technologies, Inc. | Evaluating application compatibility |
KR20200075185A (ko) * | 2018-12-17 | 2020-06-26 | 삼성전자주식회사 | 뉴럴 프로세싱 시스템 및 그것의 동작 방법 |
-
2020
- 2020-09-25 CN CN202011027367.4A patent/CN112101571A/zh active Pending
-
2021
- 2021-03-18 JP JP2021044388A patent/JP7095137B2/ja active Active
- 2021-03-19 KR KR1020210036013A patent/KR20210038485A/ko not_active Application Discontinuation
- 2021-03-22 US US17/208,707 patent/US20210209114A1/en active Pending
- 2021-03-22 EP EP21164054.5A patent/EP3905145A1/en not_active Ceased
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009044971A1 (en) * | 2007-10-01 | 2009-04-09 | Samsung Electronics Co., Ltd. | Method and system for determining interface compatibility based on component model |
US20160330082A1 (en) * | 2015-05-08 | 2016-11-10 | Rockwell Automation Technologies, Inc. | System and method to capture and document cross-product compatibility status information for industrial devices |
CN110688300A (zh) * | 2019-08-13 | 2020-01-14 | 平安科技(深圳)有限公司 | 兼容性测试方法、装置、设备及存储介质 |
CN110515626A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 深度学习计算框架的代码编译方法及相关产品 |
CN111290785A (zh) * | 2020-03-06 | 2020-06-16 | 北京百度网讯科技有限公司 | 评估深度学习框架系统兼容性的方法、装置、电子设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
程勇;秦丹;杨光;: "针对JavaScript浏览器兼容性的变异测试方法", 计算机应用, no. 04 * |
Also Published As
Publication number | Publication date |
---|---|
KR20210038485A (ko) | 2021-04-07 |
JP7095137B2 (ja) | 2022-07-04 |
EP3905145A1 (en) | 2021-11-03 |
US20210209114A1 (en) | 2021-07-08 |
JP2021121920A (ja) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
US8549478B2 (en) | Graphical user interface input element identification | |
US10983904B1 (en) | Test automation for data processing | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN111290785B (zh) | 评估深度学习框架系统兼容性的方法、装置、电子设备以及存储介质 | |
CN116245074A (zh) | 芯片验证方法、设备及存储介质 | |
CN112527676A (zh) | 模型自动化测试方法、装置及存储介质 | |
US9329897B2 (en) | Use of dynamic profiles for creating and using a distributed computing environment | |
CN111373406A (zh) | 使用问题匹配的先验知识提取的加速仿真设置过程 | |
CN110716866A (zh) | 代码质量扫描方法、装置、计算机设备及存储介质 | |
CN114185874A (zh) | 一种基于大数据的建模方法、装置、开发框架及设备 | |
CN112860587A (zh) | Ui自动测试方法和装置 | |
US12001823B2 (en) | Systems and methods for building and deploying machine learning applications | |
CN114764296A (zh) | 机器学习模型训练方法、装置、电子设备及存储介质 | |
CN108681426B (zh) | 用于针对数据执行特征处理的方法及系统 | |
CN112101571A (zh) | 用于监控深度学习框架下的算子兼容性的方法和装置 | |
CN115292196A (zh) | 用户界面测试方法、装置、电子设备及可读存储介质 | |
CN115033434A (zh) | 一种内核性能理论值计算方法、装置及存储介质 | |
KR20220046038A (ko) | Ai 연산 프로세서 가속 성능 평가 인터페이스 시스템 및 그 방법 | |
US8775873B2 (en) | Data processing apparatus that performs test validation and computer-readable storage medium | |
CN115496035B (zh) | 芯片的验证方法、装置、芯片、电子设备和介质 | |
JP6364786B2 (ja) | 設計書管理プログラム、設計書管理方法および設計書管理装置 | |
KR102527900B1 (ko) | 스케치 이미지에 대한 자동 채색 모델 관리 방법 및 그 장치 | |
CN117076335B (zh) | 一种模型测试方法、系统、介质及电子设备 | |
US9881117B1 (en) | Predictive circuit design for integrated circuits |
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 |