袖珍指南

MATLAB 与 Python 在人工智能中的应用

探索如何将 MATLAB 与 PyTorch 和 TensorFlow 集成,并在 AI 工作流中利用 LLM。

本文是您将 MATLAB 和基于 Python® 的模型结合用于人工智能 (AI) 工作流的参考指南。了解如何使用 Deep Learning Toolbox 在 MATLAB、PyTorch® 和 TensorFlow™ 之间转换模型。

通过与 PyTorch 和 TensorFlow 集成,MATLAB 使您能够:

  • 促进跨平台和跨团队协作
  • 测试模型性能和系统集成
  • 访问 MATLAB 和 Simulink 工具以设计工程系统
转换流程图。

在 MATLAB、PyTorch 和 TensorFlow 之间转换

使用 Deep Learning Toolbox 和 MATLAB,您可以访问预训练模型并设计各种类型的深度神经网络。但并非所有 AI 从业者都使用 MATLAB。为了在设计支持 AI 的系统时便于跨平台和跨团队协作,Deep Learning Toolbox 与 PyTorch 和 TensorFlow 进行了集成。

为什么将 PyTorch 和 TensorFlow 模型导入 MATLAB

当您将 PyTorch 或 TensorFlow 模型转换为 MATLAB 网络时,可以使用转换后的网络与所有 MATLAB AI 内置工具(如函数和 App)进行迁移学习、可解释 AI 和验证、系统级仿真和测试、网络压缩以及目标部署的自动代码生成。

准备 PyTorch 和 TensorFlow 模型以供导入

在将 PyTorch 和 TensorFlow 模型导入 MATLAB 之前,您必须准备并以正确的格式保存模型。您可以在 Python 中使用以下代码准备模型。

PyTorch 导入器需要跟踪的 PyTorch 模型。在跟踪 PyTorch 模型后,将其保存。有关如何跟踪 PyTorch 模型的详细信息,请参阅 Torch 文档:跟踪函数

X = torch.rand(1,3,224,224)
traced_model = torch.jit.trace(model.forward,X)
traced_model.save("torch_model.pt")

您的 TensorFlow 模型必须以 SavedModel 格式保存。

model.save("myModelTF")

如何导入 PyTorch 和 TensorFlow 模型

PyTorch 和 TensorFlow 集成到 MATLAB 的流程图。

您可以将 PyTorch 和 TensorFlow 模型导入 MATLAB,只需一行代码即可将其转换为 MATLAB 网络。

使用 importNetworkFromPyTorch 函数,并为想导入的 PyTorch 模型指定具有正确输入大小的 PyTorchInputSizes。这允许函数为导入的网络创建一个图像输入层,因为 PyTorch 模型本身没有输入层。有关详细信息,请参阅从 PyTorch 和 TensorFlow 导入模型的提示

net = importNetworkFromPyTorch("mnasnet1_0.pt",PyTorchInputSizes=[NaN,3,224,224])

要从 TensorFlow 导入网络,请使用 importNetworkFromTensorFlow 函数。

以交互方式导入 PyTorch 和 TensorFlow 模型

您可以使用深度网络设计器以交互方式从 PyTorch 导入模型。然后,您可以在 App 中查看、编辑和分析导入的网络。您甚至可以直接从 App 将网络导出到 Simulink。

如何将模型从 MATLAB 导出到 PyTorch 和 TensorFlow

流程图说明 MATLAB 的模型可以导出到 PyTorch 以及 ONNX 和 TensorFlow。

您可以将 MATLAB 网络导出到 TensorFlow 和 PyTorch 并共享这些网络。使用 exportNetworkToTensorFlow 直接导出到 TensorFlow,使用 exportONNXNetwork 函数通过 ONNX™ 导出到 PyTorch。

exportNetworkToTensorFlow(net,"myModel")

在浏览器中体验

导入 TensorFlow 模型并解释预测。

LIME (peacock)。

在 MATLAB 和 Simulink 中协作执行基于 Python 的模型

在 MATLAB 工作流或 Simulink 系统中直接使用基于 Python 的 AI 模型,以测试模型性能和系统集成。

比较:协作执行与模型转换

首先,比较在 MATLAB 环境中协作执行 PyTorch 或 TensorFlow 模型与将外部平台模型转换为 MATLAB 网络,以便决定哪种工作流最适合您的任务。

 

协作执行

模型转换

适用于所有 PyTorch 和 TensorFlow 模型

在 Simulink 中仿真模型

自动生成代码

应用可解释性方法

仅适用于目标检测

验证稳健性和可靠性

使用低代码 AI App

压缩网络

在 MATLAB 中协作执行基于 Python 的模型

直接从 MATLAB 调用 PyTorch 和 TensorFlow 模型或任何 Python 代码。这使您能够比较基于 Python 的模型,例如,通过在 MATLAB 中构建的 AI 工作流找到准确度最高的模型。

流程图说明如何从 MATLAB 直接调用 PyTorch 和 TensorFlow 模型或任何 Python 代码。

在 Simulink 中协作执行基于 Python 的模型

使用 Simulink 协作执行模块在系统中仿真和测试 PyTorch、TensorFlow、ONNX 和自定义 Python 模型。这使您能够迭代设计、评估模型行为并测试系统性能。

流程图说明如何使用 Simulink 协作执行模块在系统中仿真和测试 PyTorch、TensorFlow、ONNX 和自定义 Python 模型。

为什么选择 Simulink 用于 AI 模型

通过将 AI 与基于模型的设计结合,工程师不仅可以测试将深度学习模型集成到更大系统中,还可以加速和增强复杂系统的设计,例如虚拟传感器设计等应用。

在 Simulink 中使用深度学习进行车道和车辆检测

使用 Python 调用 MATLAB

从 Python 调用 MATLAB 的流程图。

另一种将 MATLAB 与 Python 结合用于 AI 工作流的方法是从 Python 环境中调用 MATLAB。了解如何使用这种方法准备数据,并将其使用 MATLAB 领域特定工具输入到基于 Python 的模型,或调用 MATLAB AI 工具以可视化和解释基于 Python 的 AI 模型的决策。

在 MATLAB Online 中打开仓库

您可以在 MATLAB Online 中使用 LLM。File Exchange 和具有 MATLAB 代码的 GitHub® 仓库均有在 MATLAB Online 中打开按钮。点击该按钮,仓库将直接在 MATLAB Online 中打开。


从 MATLAB 访问 LLM

您可以通过 API 或在本地安装模型,从 MATLAB 访问常见的大语言模型 (LLM),如 gpt-4、llama3 和 mixtral。然后,使用您喜欢的模型生成文本。您也可以使用 MATLAB 附带的预训练 BERT 模型。

LLM 在自然语言处理中的应用

LLM 使自然语言处理 (NLP) 发生了剧烈变革,因为它们可以捕获人类语言中存在的单词之间的复杂关系和细微差别。从 MATLAB 使用 LLM 只是 NLP 管道的一部分(请参阅 MATLAB AI 在 NLP 中的应用)。利用 MATLAB 中的工具构建完整管道。例如,您可以使用 Text Analytics Toolbox 函数访问和准备文本数据。

自然语言处理工作流示意图。

自然语言处理管道。

存储库:通过 MATLAB 使用 LLM

您可以结合使用 LLM 与 MATLAB 存储库,将 MATLAB 连接到 OpenAI® Chat Completions API(支持 ChatGPT™)、Ollama™(用于本地 LLM)和 Azure® OpenAI 服务。

通过 OpenAI API 访问 LLM

使用存储库中的代码,您可以在 MATLAB 环境中对接 OpenAI API,并使用模型(如 GPT-4 和 GPT-4 Turbo)执行各种 NLP 任务,包括构建您自己的聊天机器人和情感分析。要对接 OpenAI API,您必须获取 OpenAI API 密钥。有关密钥和费用的更多详细信息,请参阅 OpenAI API

示意图:用户查询通过聊天机器人生成响应。

构建聊天机器人。

通过 Azure OpenAI 服务访问 LMM

要使用 Azure OpenAI 服务,您必须首先在 Azure 帐户上部署模型并获取该模型的密钥。Azure OpenAI 与 OpenAI 共同开发了其 API,并增强了 Microsoft® Azure 的安全功能。具有 MATLAB 存储库的 LLM 为您提供从 MATLAB 连接到 Azure OpenAI 服务的代码。

通过 Ollama 访问本地 LLM

通过使用存储库中的代码并将 MATLAB 连接到本地 Ollama 服务器,您可以访问常见的本地 LLM,如 llama3、mistral 和 gemma。您可以将本地 LLM 用于 NLP 任务,例如检索增强生成 (RAG),这可以通过使用您自己的数据提高 LLM 的准确度。

检索增强生成的工作流示意图。

检索增强生成的工作流。

在浏览器中体验

使用 MATLAB 和 OpenAI API 创建一个简单的聊天机器人。


面板导航

教程

深度学习入门之旅

学习在 MATLAB 中使用深度学习解决图像分类问题的基础知识