0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于模型设计开发过程中的正确模型的选择指导

MATLAB 来源:djl 作者:董淑成 2019-09-17 15:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在基于模型设计的开发过程中,一定要拿正确的模型去生成代码。

有人要问:什么样的模型才算得上正确的模型?

我认为:

至少,正确的模型应该是经过充分验证的。

除了“充分验证”,还应该满足什么条件呢?

我能想到的就是“可验证”。

“可验证”也是充分验证的前提。

关于模型设计开发过程中的正确模型的选择指导

模型的“可验证”以后会专门介绍,本文就说说模型中代码生成之前可以做哪些验证。按照模型是否需要运行来划分,可以把验证分为静态验证和动态验证两大类。

M静态验证

静态验证有评审、静态检查、形式化验证等方式。

评审是质量体系要求的

通常我们模型画完之后,需要通过评审的方式去评审模型是否实现了相应的需求。那么,评审发生的时刻应该如何把握?是否在画完模型之后紧跟着就去做评审呢?我个人认为,如果有工具可以帮我们实现静态检查,我们为什么不先做静态检查呢?先做静态检查的好处是把可以通过工具发现的软件缺陷在评审之前消除掉,这样可以避免在评审的时候在此类问题上浪费时间。

静态检查

目前MATLAB通过Simulink Verification & Validation(以下简称SLVnV)提供了Model Advisor,可以实现建模标准的静态检查,实现起来也不困难,并且工具还具有可定制功能,可以在SLVnV提供的诸多检查项里挑选适合自己开发团队的检查集,也有可能有一些检查是Model Advisor没有提供的,这种情况下,也可以通过编写MATLAB程序的方式定制检查项。

形式化验证

MATLAB提供了Simulink Design Verifier(以下简称SLDV)产品,可以对模型进行形式化验证。SLDV可以检查模型中是否有整数溢出,或者是否有死逻辑。这两类错误都是很容易被评审和功能测试错过的错误,其实,软件里一旦发现有这两类错误,复现或者定位这两类错误都非常困难,而SLDV可以通过分析模型的给出发生或者可能发生错误的环节。另外,需要注意的是,在模型评审或者功能测试过程中,我们都可能发现一些软件缺陷,发现这些缺陷之后,我们需要修改模型,模型经过修改可能会再次引入数据溢出或者死逻辑之类的错误,所以建议做功能测试之后,再次使用SLDV检查一下模型。

M动态验证

动态验证主要有功能测试。功能测试可以分为单元级功能测试和集成级功能测试两个阶段。如果系统比较大,集成级功能测试还会继续划分为组件级集成测试和系统级集成测试。

单元级功能测试

也就是我们经常提到的单元测试,单元测试的测试用例需要用户根据需求编写,写完测试用例就是执行测试过程,测试过程的执行要尽量自动化。这个阶段的测试工作量非常大,通常花在单元测试上的时间会明显大于建模的时间,这往往是很多开发者难以接受的,很多人从心理上没有这个准备,一般认为模型画完就接近大功告成,所以不会计划很多时间在模型测试上,这个想法是非常危险的。当然,这个阶段的测试是否完善可以通过“测试覆盖率”这个数据来把握。覆盖率没有达到预定的目标就要继续增加测试用例。

测试覆盖率应该从两个层面去度量:

一需求覆盖率,测试用例所覆盖的需求比例;

一结构覆盖率,测试用例所覆盖的软件实现的分支。

对于工具,Simulink只能从结构上度量哪些分支测过哪些分支没测过,需求覆盖率通常需要测试者自己去把握。对于结构覆盖率,我们有条件覆盖(Condition Coverage)、判定覆盖(Decision Coverage)、MC/DC覆盖等。

集成级功能测试

集成测试的目的和单元测试是不同的,集成测试要求做单元测试结束之后才可以进行。集成测试主要测试不同单元模块之间从接口上、调度上是否有问题,有时候集成测试也可以发现不同单元模块之间需求上的冲突。集成测试不会有结构覆盖率要求。

集成测试的实现方式有模型上的集成测试,也可能会结合硬件进行测试,比如我们经常提到的快速原型,是否要结合硬件要取决于是否有条件和是否有必要这样做,这里不做展开。

到此,如果模型经过了各种静态验证,再经过足够的动态验证,我们可以认为模型已经正确了吧?

接下来,就可以对正确的模型进行代码生成工作了。

当然,上述验证活动都是建立在“模型可验证”的基础上的,模型的“可验证”如何去把握,这我们后面再专门讨论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据管理
    +关注

    关注

    1

    文章

    333

    浏览量

    20475
  • 静态验证
    +关注

    关注

    0

    文章

    8

    浏览量

    6247
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Ubuntu20.04系统训练神经网络模型的一些经验

    , batch_size=512, epochs=20)总结 这个核心算法的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型将图像作为输入,通过卷积和池化层提取图像的特征,然后通过全连接层进行分类预
    发表于 10-22 07:03

    鸿蒙Stage模型与FA模型详解

    【HarmonyOS 5】鸿蒙Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 在HarmonyOS
    的头像 发表于 07-07 11:50 622次阅读

    模型推理显存和计算量估计方法研究

    方法。 一、引言 大模型推理是指在已知输入数据的情况下,通过深度学习模型进行预测或分类的过程。然而,大模型的推理过程对显存和计算资源的需求较
    发表于 07-03 19:43

    FA模型卡片和Stage模型卡片切换

    卡片切换 卡片切换主要包含如下三部分: 卡片页面布局:FA模型卡片和Stage模型卡片的布局都采用类web范式开发可以直接复用。 卡片配置文件:FA模型的卡片配置在config.j
    发表于 06-06 08:10

    从FA模型切换到Stage模型时:module的切换说明

    。abilities具体差异见表5。 js标识基于ArkUI框架开发的JS模块集合,其中的每个元素代表一个JS模块的信息。pagesStage模型在module标签下保留该对象的pages
    发表于 06-05 08:16

    FA模型访问Stage模型DataShareExtensionAbility说明

    FA模型访问Stage模型DataShareExtensionAbility 概述 无论FA模型还是Stage模型,数据读写功能都包含客户端和服务端两部分。 FA
    发表于 06-04 07:53

    如何将一个FA模型开发的声明式范式应用切换到Stage模型

    模型切换概述 本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型,您需要完成如下动作: 工程切换:新建一个Stage模型
    发表于 06-04 06:22

    使用CY7C65213开发过程中,应该用哪个interface进行uart通信?

    在使用CY7C65213开发过程中,我想用CyUartRead读数据,但是好像没有接口的deviceType是CY_TYPE_UART,想请问我应该用哪个interface进行uart通信? 是否有相关指导文件,或描述符指导
    发表于 06-03 07:04

    KaihongOS操作系统FA模型与Stage模型介绍

    KaihongOS中提供了不同的开发方式和架构选择,Stage模型因其在分布式应用开发的优势而被推荐使用。 说明:KaihongOS文档中
    发表于 04-24 07:27

    在linux下开发过程中, DLP4500 GUI无法连接光机怎么解决?

    在linux下开发过程中, DLP4500 GUI 无法连接光机,出现错误提示如下: open device_handle error: Is a directory opening path
    发表于 02-20 08:41

    添越智创基于 RK3588 开发板部署测试 DeepSeek 模型全攻略

    能耗。 DeepSeek转换完成的RKLLM模型如下图所示: 然后将其传输到开发板上,使用对应的可执行文件运行即可,运行之后如下图所示: 接下来向该模型提出问题即可,回复内容如下所示: 在回复的
    发表于 02-14 17:42

    字节豆包大模型团队提出稀疏模型架构

    字节跳动豆包大模型Foundation团队近期研发出UltraMem,一种创新的稀疏模型架构,旨在解决推理过程中的访存问题,同时确保模型效果不受影响。
    的头像 发表于 02-13 15:25 1015次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    重复项或使用编辑距离算法比较文本相似度。数据标注:高质量的数据标注直接影响模型的性能。标注过程应遵循明确标注规则、选择合适的标注工具、进行多轮审核和质量控制等原则。数据增强:提高模型
    发表于 01-14 16:51

    AI大语言模型开发步骤

    开发一个高效、准确的大语言模型是一个复杂且多阶段的过程,涉及数据收集与预处理、模型架构设计、训练与优化、评估与调试等多个环节。接下来,AI部落小编为大家详细阐述AI大语言
    的头像 发表于 12-19 11:29 1214次阅读

    【「大模型启示录」阅读体验】如何在客服领域应用大模型

    的功能和性能。因此,选择具有良好可扩展性的模型可以适应未来业务的发展需求。在客服领域,处理客户数据时可能涉及敏感信息。因此,在选择模型时需要考虑其安全措施和隐私保护能力。确保数据传输和
    发表于 12-17 16:53