在深圳怎么进大公司网站,云南住建局和城乡建设官网,wordpress设置分类标题,wordpress前台空白摘要#xff1a;本文介绍了TensorFlow与MATLAB协同使用的方法#xff0c;主要包括三种方式#xff1a;1) 将TensorFlow模型转换为MATLAB模型#xff1b;2) 将MATLAB模型转换为TensorFlow模型#xff1b;3) 通过Python与MATLAB互调实现协同运行。文章详细讲解了模型转换的技…摘要本文介绍了TensorFlow与MATLAB协同使用的方法主要包括三种方式1) 将TensorFlow模型转换为MATLAB模型2) 将MATLAB模型转换为TensorFlow模型3) 通过Python与MATLAB互调实现协同运行。文章详细讲解了模型转换的技术细节并展示了在图像分类、迁移学习和系统仿真等场景中的应用案例。这种跨平台协作方式能充分发挥两者的优势为深度学习开发提供更灵活的工作流。目录TensorFlow 与 MATLAB 协同使用一、引言什么是 MATLAB为何选择 TensorFlow 与 MATLAB 协同使用二、将 TensorFlow 模型转换为 MATLAB 模型模型转换步骤图像分类实现迁移学习在 Simulink 中进行人工智能系统设计三、将 MATLAB 模型转换为 TensorFlow 模型构建未训练模型导出模型至 TensorFlow训练 TensorFlow 模型四、TensorFlow 与 MATLAB 协同运行在 MATLAB 中调用 Python在 Python 中调用 MATLAB五、总结TensorFlow 与 MATLAB 协同使用在本篇博文中我将为大家介绍如何将 TensorFlow™ 与 MATLAB® 结合应用于深度学习开发场景。具体而言我会演示如何将预训练的 TensorFlow 模型转换为 MATLAB 模型、将 MATLAB 模型转换为 TensorFlow 模型以及实现两者的协同使用。MATLAB 提供的这些互操作功能能让使用不同平台的同事、团队和开发者社区实现协作。本文将为大家讲解这些功能的使用方法并结合实际场景举例说明其适用场景以及如何通过这些功能连接人工智能开发人员与工程师助力面向特定领域的人工智能系统设计。一、引言什么是 MATLABMATLAB 是一款专为工程和科学领域应用打造的计算平台可用于数据分析、信号与图像处理、控制系统、无线通信、机器人技术等多个方向。MATLAB 集成了专属编程语言、交互式应用程序以及可自动生成嵌入式代码的工具同时也是 Simulink® 的基础 ——Simulink 是一款用于模拟复杂多领域系统的框图环境。与 Python® 库类似MATLAB 也提供了实现不同功能的工具箱其中深度学习工具箱™专为深度学习工作流打造。该工具箱提供了一套框架可通过算法、预训练模型和应用程序设计与实现深度神经网络还能与计算机视觉、信号处理、音频应用等特定领域的工具箱结合使用。为何选择 TensorFlow 与 MATLAB 协同使用TensorFlow 和 MATLAB 均被广泛应用于深度学习领域。许多 MATLAB 用户希望将 TensorFlow 模型集成到自身的人工智能设计中以打造定制化工具、模拟复杂系统或优化数据建模而 TensorFlow 用户也可借助 MATLAB 实现训练数据的生成、分析与可视化对模型输出进行后处理并将训练好的神经网络部署到桌面端、网络应用或嵌入式硬件中。例如工程师已将 TensorFlow 模型集成到 SimulinkMATLAB 仿真环境中为电动汽车开发了电池荷电状态估算器科学家则结合 MATLAB 与 TensorFlow 开发了一款自定义工具箱用于读取气候数据。想了解这些案例的更多细节可参考《将 TensorFlow 模型集成到 Simulink 中进行仿真和代码生成》以及《MATLAB 气候数据存储工具箱》相关文档。接下来我将为大家详细讲解 TensorFlow 与 MATLAB 协同使用的技术细节主要分为三个部分TensorFlow 模型转换为 MATLAB 模型MATLAB 模型转换为 TensorFlow 模型TensorFlow 与 MATLAB 协同运行大家会发现两者的结合使用十分便捷这也是我和其他工程师都倾向于将二者结合用于深度学习应用的原因 —— 无需二选一何不兼收并蓄二、将 TensorFlow 模型转换为 MATLAB 模型可通过 MATLAB 函数importTensorFlowNetwork将预训练的 TensorFlow 模型转换为 MATLAB 模型。该函数的典型应用场景为数据科学家在 TensorFlow 中完成模型构建后工程师将该模型集成到基于 MATLAB 开发的人工智能系统中。本文将演示如何将图像分类类 TensorFlow 模型导入 MATLAB并实现两大功能1利用该模型进行预测2将其集成到人工智能系统中。模型转换步骤将预训练的 TensorFlow 模型导入 MATLAB 网络前需先将 TensorFlow 模型保存为 SavedModel 格式。Python 代码实现import tensorflow as tf tf.saved_model.save(model, modelFolder)随后仅需一行 MATLAB 代码即可通过importTensorFlowNetwork函数将 TensorFlow 模型导入 MATLABmatlabmodelFolder EfficientNetV2L; net importTensorFlowNetwork(modelFolder,OutputLayerTypeclassification);图像分类实现读取待分类图像并将其调整为网络的输入尺寸matlabIm imread(mydoc.jpg); InputSize net.Layers(1).InputSize; Im imresize(Im,InputSize(1:2));在进行图像分类前可能需要对图像做进一步预处理或将维度排序方式从 TensorFlow 格式转换为 MATLAB 格式。想了解模型导入的更多技巧和常见问题解答可参考《TensorFlow 模型导入技巧》。执行预测并绘制带有分类标签的图像matlablabel classify(net,Im); imshow(Im) title(Predicted label: string(label));想查看将图像分类类 TensorFlow 模型导入 MATLAB 并实现预测的完整案例可参考《基于转换后的 TensorFlow 模型在 MATLAB 中实现图像分类》想了解更多 TensorFlow 模型导入 MATLAB 的内容可查阅博文《从 TensorFlow、PyTorch 和 ONNX 导入模型》。迁移学习将预训练的 TensorFlow 模型导入 MATLAB 的常见用途之一是实现迁移学习。迁移学习是指利用预训练的深度学习模型通过微调使其适配新的任务场景。例如在 MATLAB 中进行目标检测时若发现某款 TensorFlow 模型能提升检测精度即可通过迁移学习使用自有数据对该模型重新训练 —— 这种方式通常比从零开始训练网络更高效、更简便。在 MATLAB 中可通过编程方式或借助深度网络设计器DND这款交互式应用实现迁移学习。通过 MATLAB 内置函数仅需几行代码即可对网络架构的任意位置进行层的替换、删除或添加轻松完成模型改造为新数据训练做准备相关案例可参考《训练深度学习网络实现新图像分类》。此外还可通过深度网络设计器交互式完成网络训练准备、模型训练、重训练网络导出最终将其应用于新任务相关案例可参考《基于深度网络设计器的迁移学习》。在 Simulink 中进行人工智能系统设计Simulink 是一款框图环境可用于基于多领域模型设计系统、在硬件落地前对系统进行仿真以及无需编写代码即可完成部署。许多 Simulink 用户希望能将人工智能模型融入其中实现全系统仿真而借助 Simulink 模块这一需求可轻松实现。下图展示了一个简易的人工智能系统该系统通过导入的 TensorFlow 模型读取并分类图像其执行的工作流与前文所述完全一致。想了解此类系统的设计与仿真细节可参考《借助导入的 TensorFlow 网络在 Simulink 中实现图像分类》。当然Simulink 的功能远不止对剪坏毛发的宠物狗进行品种识别。例如可在 Simulink 模型中嵌入深度神经网络实现车道和车辆检测相关内容可参考《Simulink 与 NVIDIA Jetson 结合的机器学习应用》。三、将 MATLAB 模型转换为 TensorFlow 模型可通过 MATLAB 函数exportNetworkToTensorFlow将训练完成或未训练的 MATLAB 模型转换为 TensorFlow 模型。在 MATLAB 中训练完成的模型被称为 “网络”未训练的模型则被称为 “层图”。《预训练深度神经网络》文档页面详细介绍了获取预训练网络的所有方法你也可以自行构建网络。构建未训练模型以构建双向长短期记忆BiLSTM网络为例实现序列数据分类。LSTM 网络以序列数据为输入基于序列数据的各个时间步进行预测。MATLAB 代码实现matlabinputSize 12; numHiddenUnits 100; numClasses 9; layers [ sequenceInputLayer(inputSize) bilstmLayer(numHiddenUnits,OutputModelast) fullyConnectedLayer(numClasses) softmaxLayer]; lgraph layerGraph(layers);想了解该模型训练数据集的构建方法可参考《将未训练的层图导出至 TensorFlow》。其中关键一步是将序列数据的维度排序方式从深度学习工具箱的格式CSN转换为 TensorFlow 格式NSC—— 其中 C 为序列的特征数S 为序列长度N 为序列观测数。想了解不同深度学习平台下输入数据的维度排序规则可参考《输入维度排序》。导出模型至 TensorFlow将层图导出至 TensorFlowexportNetworkToTensorFlow函数会将 TensorFlow 模型保存至 Python 包 myModel 中matlabexportNetworkToTensorFlow(lgraph,myModel);训练 TensorFlow 模型在 Python 中运行以下代码从 Python 包 myModel 中加载导出的模型也可在 Python 中对该模型进行编译和训练。训练模型时需使用此前构建的 training_data.mat 中的训练数据。加载模型import myModel model myModel.load_model()加载训练数据import scipy.io as sio data sio.loadmat(training_data.mat) XTrain data[XTrain] YTrain data[TTrain]编译并训练模型model.compile(optimizer adam, loss sparse_categorical_crossentropy, metrics[accuracy]) r model.fit(XTrain, YTrain, epochs100, batch_size27)四、TensorFlow 与 MATLAB 协同运行前文已介绍了两者间的模型互转方法此外还可实现二者的协同运行在同一环境中启动具体可通过在 MATLAB 中调用 Python或在 Python 中调用 MATLAB两种方式实现。通过这种集成化的工作流可充分发挥两个平台的各自优势。例如TensorFlow 可能会推出更新的模型但你更青睐使用 MATLAB 的应用程序进行数据标注或者你希望通过 MATLAB 的实验管理器应用在多种初始条件下训练 TensorFlow 模型参考相关案例。在 MATLAB 中调用 Python无需将 TensorFlow 模型导入 MATLAB可直接在 MATLAB 工作流中通过调用 Python 来使用 TensorFlow 模型。在 MATLAB 中只需为 Python 库添加py.前缀即可调用也可通过pyrun函数执行任意 Python 语句。想查看在 MATLAB 中调用 TensorFlow 模型的案例可参考《在 MATLAB 中借助 TensorFlow 实现图像分类》。该方式的典型应用场景你已在 MATLAB 中搭建了目标检测工作流希望在将最优模型导入 MATLAB 前快速对比多款 TensorFlow 模型找到最适配的一款 —— 此时可通过在 MATLAB 中调用 TensorFlow快速完成推理测试。在 Python 中调用 MATLAB可借助MATLAB 引擎 API在 Python 环境中调用 MATLAB从而将 MATLAB 的工具和应用程序集成到现有的 Python 工作流中。MATLAB 的低代码应用程序可便捷地完成特定领域如雷达、无线通信、音频、生物医学的信号处理数据标注与探索相关案例可参考我们的 GitHub 仓库《语音命令识别系统训练的协同执行方案》。五、总结总而言之TensorFlow 和 MATLAB 均提供了优秀的工具助力深度学习在各类实际应用中的落地。MATLAB 与 TensorFlow 的集成能让开发者充分发挥两款工具的优势获取数百种深度学习模型的使用权限。你可根据需求选择合适的互操作方式模型互转或协同运行打造跨平台、跨团队的深度学习工作流。此域名禁用全局禁用