CN117056238B - 验证部署框架下模型转换正确性的方法及计算设备 - Google Patents
验证部署框架下模型转换正确性的方法及计算设备 Download PDFInfo
- Publication number
- CN117056238B CN117056238B CN202311308246.0A CN202311308246A CN117056238B CN 117056238 B CN117056238 B CN 117056238B CN 202311308246 A CN202311308246 A CN 202311308246A CN 117056238 B CN117056238 B CN 117056238B
- Authority
- CN
- China
- Prior art keywords
- node
- model
- deployment
- comparison
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 45
- 238000012549 training Methods 0.000 claims abstract description 70
- 238000010586 diagram Methods 0.000 claims description 30
- 230000009466 transformation Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 17
- 238000000844 transformation Methods 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 12
- 238000013135 deep learning Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
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/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种验证部署框架下模型转换正确性的方法及计算设备。所述验证部署框架下模型转换正确性的方法包括:在训练框架下,获取待转化的训练模型;获取所述待转化的训练模型的第一中间结果作为对照数据;将所述待转化的训练模型转换为部署模型;在部署框架下加载所述部署模型;执行所述部署模型并获取第二中间结果;将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,从而在所述部署模型执行完毕之前对所述部署模型的正确性问题进行定位。根据本申请的技术方案可快速精确定位问题节点。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种验证部署框架下模型转换正确性的方法及计算设备。
背景技术
模型转换是为了模型能在不同框架间流转。在实际应用时,模型转换几乎都用于工业部署,负责模型从训练框架到部署推理框架的连接。这是因为随着AI深度学习应用和技术的演进,训练框架和推理框架的职能已经逐渐分化。训练框架往往围绕着易用性,面向设计算法的研究员,以研究员能更快地生产高性能模型为目标。推理框架往往围绕着硬件平台的极致优化加速,面向工业落地,以模型能更快执行为目标。
在深度学习领域中,深度学习模型的训练和部署通常放在不同的深度学习框架中。由于职能和侧重点不同,没有一个深度学习框架能面面俱到,完全一统训练侧和推理侧,而模型在各个框架内部的表示方式又千差万别。训练要求使用的框架便于开发,可快速验证想法,而部署要求使用的框架轻量、高效、稳定。因此,在训练框架下生成的模型几乎无法直接在部署使用的框架下工作,此时就需要进行模型的转换。
进行模型转换时,由于对于模型性能的要求,对于模型本身往往伴随着量化、剪枝等操作,对于框架变更带来的数据类型支持、算子支持等一系列影响,模型的正确性是存疑的。部署模型的正确性对于是否能够应用该部署模型至关重要,需要对转换后的产物进行正确性验证。所以模型转换后的正确性验证方法就被广泛需要了。
使用目前的常规方式对模型正确性进行验证时,对于转换成功的网络代价较小,但当部署模型与预期结果不一致时,问题定位效率较低。
为此,需要一种技术方案,能够对于部署模型各节点结果进行检测分析的同时高效快速对问题进行定位。
发明内容
本申请旨在提供一种用于验证部署框架下模型转换正确性的方法及计算设备,能够对于部署模型各节点结果进行自动化检测分析,可高效快速对问题进行定位。
根据本申请的一方面,提供一种验证部署框架下模型转换正确性的方法,包括:
在训练框架下,获取待转化的训练模型;
获取所述待转化的训练模型的第一中间结果作为对照数据;
将所述待转化的训练模型转换为部署模型;
在部署框架下加载所述部署模型;
执行所述部署模型并获取第二中间结果;
将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,从而在所述部署模型执行完毕之前对所述部署模型的正确性问题进行定位。
根据一些实施例,获取所述训练模型的第一中间结果包括获取预设节点的结果数据; 将所述训练模型转换为部署模型后,所述方法还包括:
设定转换后各类型节点的输出名称对应规则表;
加载所述部署模型,构建部署模型执行图;
根据所述输出名称对应规则表,生成所述部署模型执行图的对照图;
执行所述部署模型并获取第二中间结果包括:逐节点执行所述部署模型执行图,并获取各节点的执行结果;
将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,包括:根据所述对照图将所述各节点的执行结果与所述对照数据比对。
根据一些实施例,设定转换后各类型节点的输出名称对应规则表,包括:
对于直接对应节点,根据模型转换时输出名称的修改规则生成所述输出名称对应规则表;和/或
对于拆分和/或合并的节点,根据不同节点自己的名称转换规则生成所述输出名称对应规则表。
根据一些实施例,构建部署模型执行图,包括:
解析所述部署模型的拓扑信息;
应用所述拓扑信息,构建所述部署模型执行图,所述部署模型执行图包括多个节点。
根据一些实施例,根据名称对应规则,生成所述部署模型执行图的对照图,包括:
根据所述输出名称对应规则表,将所述部署模型中各节点的输出名称映射回训练模型的预设节点;
根据映射是否成功,确认所述部署模型执行图中相应节点的属性;
依据各个节点属性生成所述部署模型图的对照图。
根据一些实施例,确认所述部署模型执行图中相应节点的属性,包括:
若映射成功,则将相应节点设定为需要比对执行结果的第一类节点;
若映射失败,则将相应节点设定为不需要比对执行结果的第二类节点。
根据一些实施例,逐节点执行所述部署模型执行图,根据所述对照图将执行结果与所述对照数据比对,包括:
逐节点执行所述部署模型执行图,获取执行结果;
根据对照图中同节点的属性确认是否进行结果比对;
如果确认进行结果比对,自适应加载所述训练模型中相应节点的对照数据;
将所述执行结果与所述对照数据进行比对。
根据一些实施例,根据对照图中同节点的属性确认是否进行结果比对,包括:
获取对照图中同节点属性;
若所述属性为所述第一类节点,则继续执行后续步骤;
若所述属性为所述第二类节点,则直接跳出,执行下一节点。
根据一些实施例,所述结果分析,包括:
对所述对比结果进行分析误差统计,生成误差图;
当执行到某一节点,节点误差达到或超过误差阈值,则中断执行;
输出当前生成的误差图以及记录误差信息的文件。
根据一些实施例,所述结果分析,还包括:
所述误差图为由所述节点输出名称、误差率构成的拓扑图。
根据本申请的另一方面,提供一种计算设备,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据示例实施例,基于执行图和对照图,在执行过程中通过将节点的执行结果与对照数据对比,无需执行完整模型就可以定位出偏差较大节点在模型中的位置,从而可高效快速对正确性问题进行定位,能够提高模型部署效率,节省算力和计算资源。
根据一些实施例,通过设定误差阈值,能够控制正确性检验精度及模型输出误差范围。在确定的误差范围内,进行正确性验证,并且在所述节点误差超出所述误差阈值的情况下,中断执行,并可优先提示误差信息及误差图,可直观的展示误差的来源和变化规律。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1A示出根据示例实施例用于一种验证部署框架下模型转换正确性的方法流程图。
图1B示出根据示例实施例用于另一种验证部署框架下模型转换正确性的方法流程图。
图2示出根据示例实施例用于一种验证部署框架下模型转换正确性的方法的训练框架下模型片段示意图。
图3示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的部署执行图。
图4示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的部署模型执行图的对照图。
图5示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的验证流程图。
图6A示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的误差图。
图6B示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的验证误差图。
图7示出根据示例性实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
在深度学习领域中,深度学习模型的训练和部署通常放在不同的深度学习框架中。
进行模型转换时,由于对于模型性能的要求,对于模型本身往往伴随着量化、剪枝等操作,对于框架变更带来的数据类型支持、算子支持等一系列影响,模型的正确性是存疑的,部署模型的正确性对于是否能够应用该部署模型至关重要,需要对转换后的产物进行正确性进行验证。
使用目前的常规方式对模型正确性进行验证时,对于转换成功的网络代价较小,但当部署模型与预期结果不一致时,问题定位效率较低。
为此,本申请提出一种验证部署框架下模型转换正确性的方法及计算设备,通过构建名称对照规则表、部署框架下的对照图,实现对于部署模型各节点逐个进行自动化检测分析,输出误差图及误差数据,并高效快速对正确性问题进行定位。
下面结合附图对本申请的示例实施例进行说明。
图1A示出根据示例实施例用于一种验证部署框架下模型转换正确性的方法流程图。
参见图1A,本发明提供一种验证部署框架下模型转换正确性的方法,包括:
在S101a,在训练框架下,获取待转化的训练模型。
根据一些实施例,在训练框架下,运行待转化的训练模型,在确认所述模型在训练框架下平稳运行后,获取待转化的训练模型。
在S103a,获取所述待转化的训练模型的第一中间结果作为对照数据。
根据一些实施例,使用深度学习框架训练模型,得到训练好的模型。在所述训练框架下,运行所述模型。将所述模型各个节点的输出数据保存作为对照数据,为后续对转换后模型的正确性测试,同一模型的所述对照数据可保存多组,用于全面验证所述转换后模型的正确性。
在S105a,将所述待转化的训练模型转换为部署模型。
根据一些实施例,将训练好的模型转换为部署模型,一般需要使用模型转换工具或库,如TensorFlow的tf.lite工具、PyTorch的torch.onnx工具等。
在S107a,在部署框架下加载所述部署模型。
根据一些实施例,在部署框架下,将转换好的部署模型加载运行。在正式加载之前,要进行检查确保部署框架已经正确安装和配置,以及将部署模型转换为部署框架支持的格式,如TensorFlow的SavedModel格式、PyTorch的ONNX格式等。可使用部署框架提供的API或命令行工具,如TensorFlow Serving的gRPC API、ONNX Runtime的C++ API等,对所述部署模型进行加载。
在S109a,执行所述部署模型并获取第二中间结果。
根据一些实施例,在部署框架下,执行所述部署模型。获取所述部署模型的输出结果。
在S111a,将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,从而在所述部署模型执行完毕之前对所述部署模型的正确性问题进行定位。
根据一些实施例,将所述部署模型的中间结果与所述训练模型的所述对照数据进行比对,将主要节点或全部待对比的节点的输出数据进行对比,逐节点运行所述部署模型,将所述部署模型的输出的中间结果与所述训练模型对照数据进行对比,从而在所述部署模型执行完毕之前对所述部署模型的正确性问题进行定位
图1B示出根据示例实施例用于另一种验证部署框架下模型转换正确性的方法流程图。
参见图1B,在S101b,获取预设节点的结果数据。
根据一些实施例,在所述训练框架下,运行所述模型。将所述模型各个节点输出的第一中间结果保存作为对照数据,为后续对转换后模型的正确性测试,同一模型的所述对照数据可保存多组,用于全面验证所述转换后模型的正确性。
根据一些实施例,所述预设节点为根据所述对照图或模型关键输出节点,在不同验证场景以及测试方式的情景下,选择关键节点或应用关键节点配合部分中间节点或者是全部的中间节点作为预设节点,保留所述预设节点输出的结果数据作为参照数据,用来对所述转换后的模型进行验证。
在S103b,设定转换后各类型节点的输出名称对应规则表。
根据一些实施例,在部署框架下运行所述转化后模型,得到各个类型节点的输出数据名称,与训练框架相应节点输出名称作对比。对于同一节点类型的节点输出名称在转换时名称的生成和修改规则稳定,经过名称对比,对于不同节点的改名规则进行统计存储,生成名称的对照规则表。例如:若在训练模型下,节点A的输出名称为“3638”,部署框架下模型转化后输出名称为“from_3638”,那么对于A节点类型的节点就可以统计规则为去掉“from_”为对照的输出名称,其他节点相应的采用类似规则,统计得到模型转换后的所述输出名称对应规则表。
在S105b,加载所述部署模型,构建部署模型执行图。
根据一些实施例,在所述部署框架下,加载转化后模型,根据模型转换后的描述文件,进行拓扑信息解析生成部署模型执行图,节点对应描述文件中的索引、输出名称。
在S107b,根据所述输出名称对应规则表,生成所述部署模型执行图的对照图。
根据一些实施例,根据所述输出名称对应规则表,将所述部署模型执行图中的各个节点在所述输出名称对应规则表中找到对应的训练框架下模型节点输出名称。
根据一些实施例,模型转化过程中,所述转化后模型在部署框架下运行时,某些类型的节点在模型转换过程中,被拆分成为多个子节点,分别对应多个输出名称。例如,某节点E的输出名称为“4565”,模型转换拆分为3个子节点,它们的输出名称分别为 “4565_split_0”、“4565_split_1”和“4565_split_2”,那么对于E节点类型就可以统计规则为去掉“_split_2”为对照的输出名称。
根据一些实施例,一个节点的输出名称有时候有多个,这种类型的节点在转换过程中,同样可能拆分为多个节点,这些子节点中,每个子节点可能有多个输出名称。例如,节点E的输出名称为“4565”包含两个输出,模型转换拆分为3个子节点它们的输出名称分别为“4565_split_0”、“4565:0”和“4565:1”。那对于E节点类型就可以统计规则为增加“:0”和增加“:1”为对照的输出名称。
根据一些实施例,根据节点拆分的不同情况,通过设定的命名规则,关联后续判断。当训练模型下节点的多个输出被拆分在部署模型下不同子节点输出,则需要制定命名规则,保证所述输出的对应子节点作为对照节点保留;当多个输出在同一子节点,则该节点作为对照节点保留。在所述部署框架下模型中的这类子节点由于命名原因在训练模型中不能够实现一一对应映射关系,有单个或多个子节点对应的训练框架下节点,可使用该子节点作为对比对照点,对照输出数据,其余子节点不做对照。
根据一些实施例,模型转化过程中,所述转化后模型在部署框架下运行时,某些类型的节点在模型转换过程中,被合并成一个节点。在所述部署框架下模型中的这类节点在训练模型中同样找不到完全对应的节点,可通过拓扑信息分析,使用训练框架下所合并的多个节点所处结构流程中最后一节点的输出数据做为对比对照点,对照输出数据。
根据一些实施例,根据所述输出名称对应规则表以及所述部署模型执行图相关拓扑信息,对其中各个节点是否需要对照进行标识。例如,参见图4,可在不需要对照的点做第一标记(参见实心节点),在需要对照的点做第二标记(参见空心节点),这样所述部署模型执行图的对照图就构造完成了。
在S109b,执行所述部署模型并获取第二中间结果包括:逐节点执行所述部署模型执行图,并获取各节点的执行结果。
根据一些实施例,在所述部署框架下运行所述部署模型,逐节点执行所述部署模型执行图,在各个节点执行后,获取节点的输出数据作为执行结果。
在S111b,将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,包括:根据所述对照图将所述各节点的执行结果与所述对照数据比对。
根据一些实施例,在部署模型下逐点运行转化后的模型,获取执行后的数据结果。根据对照图中同节点的配置确认是否进行结果对比。例如,若是实心标记的节点,则不需要对比对照数据,继续运行下一节点。若是空心标记节点,则需要进行数据对比。对于需要对比的节点,根据对照数据属性,加载相应节点的对照数据,将所述结果数据与对照数据作对比。
根据一些实施例,将所述结果数据与对照数据作对比,所述对比结果进行误差分析与统计。对各个节点结果做误差统计,生成误差图。所述误差图为含有节点输出名称、误差率构成的拓扑图。其中,每一节点的误差率可使用填充标注及占比表达。
根据一些实施例,逐点运行转化后模型的过程中,当运行到某一节点时,所述节点的对比结果误差值达到设定的误差阈值,则不再执行下一节点,直接生成误差图,并输出具体误差信息记录文件,及时定位问题节点,反馈问题原因。
根据一些实施例,所述误差图中,可使用填充标识来表现各个节点的误差率,例如,填充节点内部空白,填充的面积占比可用来表示误差率。对于无需参照的节点,可使用其他填充作为标识,并在注释中表明即可。
图2示出根据示例实施例用于一种验证部署框架下模型转换正确性的方法的训练框架下模型片段示意图。
参见图2 ,在训练框架下,分析模型的拓扑信息,生成模型示意图,并可标注各个节点A、B、C、D、E、F、G、H的输出名称。运行模型,保存相应节点的输出名称及输出数据。
根据一些实施例,所述输出名称用于后续输出名称对应规则表的参照。部署框架下模型运行的输出名称与所述训练框架下的输出名称相参照对比,得到输出名称对应规则表。
根据一些实施例,训练模型下运行所述模型,得到各个节点的输出数据,所述输出数据用于模型转换后的正确性验证中,作为对照数据。
根据一些实施例,对于直接对应节点,根据模型转换时输出名称的修改规则生成所述输出名称对应规则表。根据一些实施例,对于拆分和/或合并的节点,根据不同类型节点自己的名称转换规则生成所述输出名称对应规则表。
例如,不同节点类型有自己的名称修改规则,在生成所述名称对应规则表时,对应记录的是拆分和/或合并及节点规则以及直接对应节点规则。在将部署框架下节点输出名称映射回训练框架下节点输出名称时,首先通过所述对应规则表看输出是不是拆分或合并节点反映射出名称,再应用所述输出名称对应规则表对所述节点输出名称进行节点类型的名称反映射。
根据一些实施例,运行所述转化后的模型,得到各个节点的输出数据名称。对于同一节点类型的节点输出名称在转换时名称的生成和修改规则稳定,经过名称对比,对于不同节点的改名规则进行统计存储,生成名称的对照规则表。例如:若在训练模型下,节点A的输出名称为“3638”,部署框架下模型转化后输出名称为“from_3638”,那么对于A节点类型的节点就可以统计规则为去掉“from_”为输出名称。
根据一些实施例,模型转化过程中,还有某些类型的节点,被拆分成为多个子节点,分别对应多个输出名称。例如,某节点E的输出名称为“4565”,模型转换拆分为3个子节点它们的输出名称分别为 “4565_split_0”、“4565_split_1”和“4565_split_2”,那对于E节点类型就可以统计规则为去掉“_split_2”为输出名称。
根据一些实施例,一个节点的输出名称有时候有多个,这种类型的节点在转换过程中,同样可能拆分为多个节点,这些子节点中,每个子节点可能有多个输出名称。例如,节点E的输出名称为“4565”包含两个输出,模型转换拆分为3个子节点它们的输出名称分别为“4565_split_0”、“4565:0”和“4565:1”。那对于E节点类型就可以统计规则为增加“:0”和增加“:1”为对照的输出名称。
根据一些实施例,模型转化过程中,还有一些类型的节点在模型转换过程中,被合并成一个节点。在所述部署框架下模型中的这类节点在训练模型中同样找不到完全对应的节点,可通过拓扑信息分析,使用训练框架下所合并的多个节点所处结构流程中最后一节点的输出数据做为对比对照点,对照输出数据。
根据一些实施例,按照不同节点类型进行相应上述类似规则处理,统计得到模型转换后的所述输出名称对应规则表。
图3示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的部署执行图。
参见图3,解析所述部署模型的拓扑信息。应用所述拓扑信息,构建所述部署模型执行图,所述部署模型执行图包括多个节点A’、B’、C’D’、E1’、E2’、E3’、F’、G’和H’。
根据一些实施例,解析所述部署模型的拓扑信息,即指构成模型的各个分量的数目及相互之间的连接关系,应用这些联系关系,构建所述部署模型执行图。
图4示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的部署模型执行图的对照图。
参见图4,根据所述输出名称对应规则表,将所述部署模型中各节点的输出名称映射回训练模型的预设节点。根据映射是否成功,确认所述部署模型执行图中相应节点的属性。依据各个节点属性生成所述部署模型图的对照图。
根据一些实施例,将所述部署框架下模型的输出名称,在所述输出名称对应规则表中,查找相应训练框架下模型的对应节点输出名称,将所述部署模型中的输出名称映射回训练框架下模型对应的预设节点输出名称。根据所述对应的预设节点输出名称是否存在确认对照图中相应节点的属性。
根据一些实施例,在模型转换过程中,由于所述节点存在多种类型,所以部署框架下对应节点输出名称在映射回训练模型的过程中,并非全部能够在所述输出名称对应规则表中找到相应的对应名称,所以在对照图中添加属性,用于区分所述节点是否在训练框架下存在相应的对应节点。依据各个节点属性生成所述部署模型图对照图。
根据一些实施例,逐个确认所述部署执行图中各个节点的属性,依据各个节点的属性标识生成所述部署模型对照图,用于后续模型转换正确性验证。
参见图4,根据映射是否成功,确认所述部署模型执行图中相应节点的属性。若映射成功,则将相应节点设定为需要比对执行结果的第一类节点;若映射失败,则将相应节点设定为不需要比对执行结果的第二类节点。
根据一些实施例,所述部署模型对照图中的节点属性根据节点输出名称是否能够在所述输出名称对应规则表中找到对应名称,即将所述部署模型中各节点的输出名称映射回训练模型。若映射成功,则将相应节点设定为需要比对执行结果的第一类节点;若映射失败,则将相应节点设定为不需要比对执行结果的第二类节点。
根据一些实施例,当所述对应节点输出名称存在,则可在对照图中约定用某种特定标记作为第一类节点的标识;当所述对应节点输出名称不存在,则在对照图中约定用另一种标记作为第二类节点的标识。参见图4,图中使用空心圆作为第一标识,表示当前节点输出名称存在。使用实心圆作为第二标识,表示节点在训练模型下无对应节点输出名称。
根据一些实施例,在后续的正确性验证过程中,需要对所述部署模型对照图中的各个节点逐一对照,在执行对照前,根据对照图中的节点属性进行判断,当所述节点属性为第一类节点,则所述节点需要进行正确性验证,当所述节点为第二类节点,则所述节点不需要进行正确性验证。
图5示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的验证流程图。
在S501,逐节点执行所述部署模型执行图,获取结果。
根据一些实施例,按照所述部署模型执行图中执行顺序,取出图中节点,执行所述部署模型执行图当前节点的运算,获取当前执行节点的输出数据。
在S503,根据对照图中同节点的属性确认是否进行结果比对。
根据一些实施例,获取对照图中同节点的属性标识,判断是否进行结果对比,当所述节点属性为第一标识,则所述节点需要进行正确性验证,当所述节点为第二标识,则所述节点不需要进行正确性验证。
根据一些实施例,获取对照图中同节点属性;若所述属性为所述第一类节点,则继续执行后续步骤S505;若所述属性为所述第二类节点,则直接跳出,到S501,执行下一节点。
在S505,如果确认进行结果比对,自适应加载所述训练模型中相应节点的对照数据。
在S507,将所述执行结果与所述对照数据进行比对。
根据一些实施例,根据对照数据属性加载对照数据,将当前节点输出的输出数据与所加载的对应节点输出名称中的输出数据进行对比。需要注意的是,由于模型应用框架不同,所述输出数据之间,存在数据类型差别,应将对照数据与输出数据的数据类型进行统一后,在进行数据对比、分析。通常的,可将对照数据逐个转换到double类型,再做数值比较、分析。
图6A和图6B示出根据示例实施例用于一种验证部署框架下模型转换正确性方法的验证误差图。对所述对比结果进行分析误差统计,生成误差图。
根据一些实施例,根据所述部署模型执行图中节点输出数据对比对照数据,对对比结果做误差统计,并计算误差率。
根据一些实施例,根据所述计算出的误差率,及所述部署模型执行图的相关拓扑信息,构建误差图。
根据一些实施例,所述误差图中,可使用不同填充来表现各个节点的误差率。例如,参见图6A和图6B,图中填充节点内部空白,填充的面积占比可用来表示误差率。对于无需对照的节点,可使用其他填充作为标识(图6A和图6B中浅填充表示无需对照的节点),并在注释中表明即可。
当执行到某一节点,节点误差达到或超过误差阈值,则中断执行;输出当前生成的误差图以及记录误差信息的文件。
根据一些实施例,当验证到某一节点时,计算出节点误差达到或超过已设定的误差阈值,则中断对后续节点的执行,输出当前已验证完成节点的误差图,并输出具体记录误差信息的文件,及时反馈模型运行问题,精确定位转化模型的问题点,方便后续进行精准调整。
所述误差图为由所述节点输出名称、误差率构成的拓扑图。
根据一些实施例,所述误差图为由节点输出名称、误差率构成的拓扑图。包含了各个节点的数目及相互之间的连接关系,应用这些联系关系,构建所述误差图。
根据一些实施例,本发明方法规避了传统验证中,全面验证后由于某一节点问题而导致的多个误差信息累积式报告,难以从报告中确定问题关键点,造成的问题定位难,调整没有针对性,并且由此需要大量时间反复更改、确认,再进行全面检测,耗时耗力。本发明方法通过设定误差阈值,能够控制正确性检验精度及模型输出误差范围,在确定的误差范围内,进行正确性验证,并且在所述节点误差超出所述误差阈值的情况下,中断执行,优先提示误差信息及误差图,可直观的展示误差的来源和变化规律。
根据一些实施例,本发明方法流程自动化,无需人工逐层比对,自适应加载对照数据,去除了模型转换前后数据类型不一致带来的数据比对问题。
图7示出根据本申请示例实施例的计算设备的框图。
如图7所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本申请实施例的方法。
计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (9)
1.一种验证部署框架下模型转换正确性的方法,其特征在于,包括:
在训练框架下,获取待转化的训练模型;
获取所述待转化的训练模型的预设节点的结果数据作为对照数据;
将所述待转化的训练模型转换为部署模型,所述部署模型包括从所述训练模型拆分和/或合并的节点;
设定转换后各类型节点的输出名称对应规则表,包括:对于拆分和/或合并的节点,根据不同节点自己的名称转换规则生成所述输出名称对应规则表;
在部署框架下加载所述部署模型,构建部署模型执行图;
根据所述输出名称对应规则表,生成所述部署模型执行图的对照图,所述对照图包括需要对照的节点和不需要对照的节点;
执行所述部署模型并获取第二中间结果,包括:逐节点执行所述部署模型执行图,并获取各节点的执行结果;
根据所述对照图,将所述部署模型的第二中间结果与所述训练模型的所述对照数据进行比对,从而在所述部署模型执行完毕之前对所述部署模型的正确性问题进行定位,
其中,根据名称对应规则,生成所述部署模型执行图的对照图,包括:
根据所述输出名称对应规则表,将所述部署模型中各节点的输出名称映射回训练模型的预设节点;
根据映射是否成功,确认所述部署模型执行图中相应节点的属性;
依据各个节点属性生成所述部署模型执行图的对照图。
2.根据权利要求1所述的方法,其特征在于,设定转换后各类型节点的输出名称对应规则表,还包括:
对于直接对应节点,根据模型转换时输出名称的修改规则生成所述输出名称对应规则表。
3.根据权利要求1所述的方法,其特征在于,构建部署模型执行图,包括:
解析所述部署模型的拓扑信息;
应用所述拓扑信息,构建所述部署模型执行图,所述部署模型执行图包括多个节点。
4.根据权利要求1所述的方法,其特征在于,确认所述部署模型执行图中相应节点的属性,包括:
若映射成功,则将相应节点设定为需要比对执行结果的第一类节点;
若映射失败,则将相应节点设定为不需要比对执行结果的第二类节点。
5.根据权利要求4所述的方法,其特征在于,根据所述对照图将所述各节点的执行结果与所述对照数据比对,包括:
根据对照图中同节点的属性确认是否进行结果比对;
如果确认进行结果比对,自适应加载所述训练模型中相应节点的对照数据;
将所述执行结果与所述对照数据进行比对。
6.根据权利要求5所述的方法,其特征在于,根据对照图中同节点的属性确认是否进行结果比对,包括:
获取对照图中同节点属性;
若所述属性为所述第一类节点,则继续执行后续步骤;
若所述属性为所述第二类节点,则直接跳出,执行下一节点。
7.根据权利要求1所述的方法,其特征在于,还包括:
对所述各节点的执行结果与所述对照数据的比对结果进行分析误差统计,生成误差图;
当执行到某一节点,节点误差达到或超过误差阈值,则中断执行;
输出当前生成的误差图以及记录误差信息的文件。
8.根据权利要求7所述的方法,其特征在于,所述误差图为由所述部署模型执行图的所述节点输出名称、误差率构成的拓扑图。
9.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311308246.0A CN117056238B (zh) | 2023-10-11 | 2023-10-11 | 验证部署框架下模型转换正确性的方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311308246.0A CN117056238B (zh) | 2023-10-11 | 2023-10-11 | 验证部署框架下模型转换正确性的方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117056238A CN117056238A (zh) | 2023-11-14 |
CN117056238B true CN117056238B (zh) | 2024-01-30 |
Family
ID=88662998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311308246.0A Active CN117056238B (zh) | 2023-10-11 | 2023-10-11 | 验证部署框架下模型转换正确性的方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056238B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326913A (zh) * | 2020-02-28 | 2021-08-31 | 上海商汤智能科技有限公司 | 神经网络模型的转换方法、模型精度定位方法及装置 |
CN113485697A (zh) * | 2021-06-07 | 2021-10-08 | 广发银行股份有限公司 | 一种人工智能框架下的模型建设运营服务方法及系统 |
CN114021705A (zh) * | 2022-01-04 | 2022-02-08 | 浙江大华技术股份有限公司 | 模型的精度确定方法以及相关装置、设备 |
CN114546592A (zh) * | 2022-02-18 | 2022-05-27 | 北京市商汤科技开发有限公司 | 模型部署评测方法、服务器、电子设备及存储介质 |
CN115187821A (zh) * | 2022-07-05 | 2022-10-14 | 阿波罗智能技术(北京)有限公司 | 验证模型转换前后正确性的方法、相关装置及程序产品 |
CN115640851A (zh) * | 2022-09-23 | 2023-01-24 | 中国电子科技集团公司第四十一研究所 | 一种适用于测试仪器的神经网络高效推理方法 |
CN116306777A (zh) * | 2023-03-13 | 2023-06-23 | 盛景智能科技(嘉兴)有限公司 | 模型精度损失定位方法、装置和电子设备 |
-
2023
- 2023-10-11 CN CN202311308246.0A patent/CN117056238B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326913A (zh) * | 2020-02-28 | 2021-08-31 | 上海商汤智能科技有限公司 | 神经网络模型的转换方法、模型精度定位方法及装置 |
CN113485697A (zh) * | 2021-06-07 | 2021-10-08 | 广发银行股份有限公司 | 一种人工智能框架下的模型建设运营服务方法及系统 |
CN114021705A (zh) * | 2022-01-04 | 2022-02-08 | 浙江大华技术股份有限公司 | 模型的精度确定方法以及相关装置、设备 |
CN114546592A (zh) * | 2022-02-18 | 2022-05-27 | 北京市商汤科技开发有限公司 | 模型部署评测方法、服务器、电子设备及存储介质 |
CN115187821A (zh) * | 2022-07-05 | 2022-10-14 | 阿波罗智能技术(北京)有限公司 | 验证模型转换前后正确性的方法、相关装置及程序产品 |
CN115640851A (zh) * | 2022-09-23 | 2023-01-24 | 中国电子科技集团公司第四十一研究所 | 一种适用于测试仪器的神经网络高效推理方法 |
CN116306777A (zh) * | 2023-03-13 | 2023-06-23 | 盛景智能科技(嘉兴)有限公司 | 模型精度损失定位方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117056238A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
US8819642B2 (en) | Method and system for generating and processing black box test cases | |
Fischbach et al. | Specmate: Automated creation of test cases from acceptance criteria | |
CN110928772A (zh) | 一种测试方法及装置 | |
US20050198248A1 (en) | System layout design program, system layout design apparatus, and system layout design method for automatically configuring systems | |
CN109522228B (zh) | 接口自动化测试数据构造方法、装置、平台及存储介质 | |
CN102571403A (zh) | 通用数据质量管控适配器的实现方法和装置 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN111158656B (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN110502227A (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
CN112380255A (zh) | 一种业务处理方法、装置、设备和存储介质 | |
CN112287603A (zh) | 一种基于机器学习的预测模型构建方法、装置和电子设备 | |
CN111752846A (zh) | 一种接口测试方法及装置 | |
CN116523284A (zh) | 基于机器学习的业务操作流程自动化评估方法、系统 | |
CN112783475B (zh) | 一种嵌入式软件需求分析方法 | |
CN113609008A (zh) | 测试结果分析方法、装置和电子设备 | |
Krupalija et al. | New graphical software tool for creating cause-effect graph specifications | |
US8140504B2 (en) | Report generation system and method | |
CN111143228B (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN117056238B (zh) | 验证部署框架下模型转换正确性的方法及计算设备 | |
CN112363939A (zh) | 快速生成模糊测试网络协议模板的方法及系统、设备 | |
CN115130043A (zh) | 基于数据库的数据处理方法、装置、设备及存储介质 | |
CN110928761B (zh) | 需求链及其应用的系统和方法 | |
Singh et al. | Functional Test Cases Generation Based on Automated Generated Use Case Diagram | |
CN111240652A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |