将任意训练好的模型导出为独立代码

一个训练好的模型,只有在脱离桌面应用、真正运行在实际环境中时才有价值—— 无论是在单片机上、Simulink 模块中,还是在 Python 分析脚本里。无论是在 虚拟传感器训练中训练出的模型,还是从 模型竞赛排行榜中挑选出的模型,都可以直接导出,无需任何单独的 转换工具。

C、C++、Python 或 MATLAB——选择目标平台,而非搭建转换流水线

导出格式只是一个下拉菜单,而不是一个单独的导出工具或格式转换步骤:选择 C 用于裸机单片机构建, 选择 C++ 以获得基于类的接口,选择 Python 用于快速的分析脚本或服务,或选择 MATLAB 以直接嵌入 Simulink 模块。导出的代码是模型预测函数的一个自包含实现——不依赖 Data Sensors,也无需链接任何 运行时库。

导出虚拟传感器对话框,已选择 C++ 作为导出格式

全精度或 int8 量化,保存前提供实时预览

每一次导出都可以选择全精度或 int8 量化,对话框会在您做出选择之前,针对两种方案分别显示实时的 大小与精度预估——因此“能否装进 4 KB 闪存”与“是否与训练时的精度完全一致”之间的取舍,可以在 具体数字摆在眼前时做出,而不是等文件已经保存到磁盘之后才发现。

不只是获胜者——排行榜上任意一项都可导出

当模型来自一次模型竞赛运行时,导出并不局限于排名第一的 那一项——也许精度略低的随机森林在您的目标硬件上运行更快,或者更小的神经网络更符合您的闪存预算。 排行榜上的每一项都可以单独导出,彼此互不影响。

导出排行榜中非获胜项(random_forest),显示其大小与精度预览

将导出的模型重新导入

之前的会话中已导出为 C、C++ 或 Python 代码的模型,可通过“虚拟传感器 > 导入虚拟 传感器…”重新导入——选择该文件(系统会自动检测 C/C++ 编译器或 Python 解释器,两种情况都 提供手动回退选项)。输入通道及其原始训练顺序会从模型的配套文件中自动读取,随后它就会直接针对 当前加载的测量数据运行,并作为一个普通的、可绘制的信号添加进来。无需重新训练,也不需要仍然保留最初训练它的 那个会话。

导入虚拟传感器对话框,显示输入通道与信号名称字段,用于重新使用此前导出的模型