Simulink学习——模块封装(创建简单封装)

创建模块封装

我们经常会看到一些库,里面的模块长得和基础simulink元件区别很大,看上去很酷,双击他们会有一些明显是二次开发的对话框,而且模块里面含有了复杂的子系统。那么如何将自己做的模型也做成这样的模块呢?这里要用到的模块封装的方法。

封装 Simulink® 模块可以:

  • 在模块上显示有意义的图标

  • 为模块提供自定义对话框

  • 提供一个对话框,只允许您访问底层模块的所选参数

  • 提供特定于封装模块的用户自定义说明

  • 使用 MATLAB® 代码初始化参数

这期我们来创建一个简单的模块封装试试。

 

首先创建一个简单的子系统:

将各子模块中可编辑的参数设置为模型变量,然后创建一个子系统将其封装起来。随后点击create Mask,即可将选取的子系统进行封装。

 

封装编辑器里面有四个选项卡,在第一个选项卡里面,我们可以编辑封装后模块的外观,这里我根据Hlep中Mask drawing的指令让模块显示SineGain:

参考资源链接:[PyTorch实现Yolov4深度学习项目:零起点复现与关键技巧](https://wenku.csdn.net/doc/5qswzh7t3a?utm_source=wenku_answer2doc_content) 在深度学习中,label_smooth是一种通过平滑标签值来减少模型过拟合的技术。在使用PyTorch实现Yolov4目标检测模型时,集成label_smooth技术到损失函数中可以提高模型对标签噪声的鲁棒性。具体做法是,在计算损失函数时,不是直接使用one-hot编码的标签,而是将这些标签稍作平滑。例如,对于二分类问题,原本的标签是[1,0]或[0,1],通过label_smooth后,标签可以变为[0.9, 0.1]或[0.1, 0.9]。 在训练过程中加入权重裁剪是一种正则化手段,可以防止权重过大导致的过拟合。在PyTorch中,可以在优化器配置后,使用`clip_grad_norm_`或`clip_grad_value_`函数对梯度进行裁剪。比如,`clip_grad_norm_(model.parameters(), max_norm=10)`函数将模型所有参数的梯度范数裁剪到最大为10。 结合这两项技术,可以在模型训练的优化器配置中集成它们。以下是一个示例代码段: ```python import torch.optim as optim from torch.nn.utils import clip_grad_norm_, clip_grad_value_ # 假设已经定义了model, criterion, optimizer等变量 # 其中criterion是损失函数,optimizer是优化器 for epoch in range(num_epochs): # 训练过程... # 假设已经计算出损失loss optimizer.zero_grad() loss.backward() # 应用label_smooth # 假设label_smooth_value是平滑值,例如0.01 labels = (1 - label_smooth_value) * y_true + label_smooth_value / num_classes # 计算平滑后的损失 loss = criterion(output, labels) # 应用权重裁剪 clip_grad_norm_(model.parameters(), max_norm=10) # optimizer.step() 更新参数 ``` 在这段代码中,我们首先计算了经过label_smooth处理后的标签,然后计算损失,并在进行梯度更新之前,使用`clip_grad_norm_`对模型参数的梯度进行裁剪。通过这样的处理,可以有效地提升模型的泛化能力并防止过拟合。 如果想要进一步深化理解并掌握更多关于Yolov4目标检测模型的构建和训练技巧,包括如何从零开始构建Yolov4模型、如何编写详细的训练代码、如何进行模型权重裁剪和异常恢复等,可以参阅这本全面的教程:《PyTorch实现Yolov4深度学习项目:零起点复现与关键技巧》。这份资料详细介绍了Yolov4的核心组件实现,包括损失函数和构建目标处理函数,以及如何构建模型、编写训练代码等,非常适合需要提升在目标检测领域应用能力的学习者。 参考资源链接:[PyTorch实现Yolov4深度学习项目:零起点复现与关键技巧](https://wenku.csdn.net/doc/5qswzh7t3a?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值