本文是您将 MATLAB 和基于 Python® 的模型结合用于人工智能 (AI) 工作流的参考指南。了解如何使用 Deep Learning Toolbox 在 MATLAB、PyTorch® 和 TensorFlow™ 之间转换模型。
通过与 PyTorch 和 TensorFlow 集成,MATLAB 使您能够:
- 促进跨平台和跨团队协作
- 测试模型性能和系统集成
- 访问 MATLAB 和 Simulink 工具以设计工程系统
为什么将 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,只需一行代码即可将其转换为 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 网络导出到 TensorFlow 和 PyTorch 并共享这些网络。使用 exportNetworkToTensorFlow 直接导出到 TensorFlow,使用 exportONNXNetwork 函数通过 ONNX™ 导出到 PyTorch。
exportNetworkToTensorFlow(net,"myModel")
比较:协作执行与模型转换
首先,比较在 MATLAB 环境中协作执行 PyTorch 或 TensorFlow 模型与将外部平台模型转换为 MATLAB 网络,以便决定哪种工作流最适合您的任务。
协作执行 |
模型转换 |
|
|---|---|---|
适用于所有 PyTorch 和 TensorFlow 模型 |
是 |
否 |
在 Simulink 中仿真模型 |
是 |
是 |
自动生成代码 |
否 |
是 |
应用可解释性方法 |
仅适用于目标检测 |
是 |
验证稳健性和可靠性 |
否 |
是 |
使用低代码 AI App |
否 |
是 |
压缩网络 |
否 |
是 |
在 MATLAB 中协作执行基于 Python 的模型
直接从 MATLAB 调用 PyTorch 和 TensorFlow 模型或任何 Python 代码。这使您能够比较基于 Python 的模型,例如,通过在 MATLAB 中构建的 AI 工作流找到准确度最高的模型。
在 Simulink 中协作执行基于 Python 的模型
使用 Simulink 协作执行模块在系统中仿真和测试 PyTorch、TensorFlow、ONNX 和自定义 Python 模型。这使您能够迭代设计、评估模型行为并测试系统性能。
为什么选择 Simulink 用于 AI 模型
通过将 AI 与基于模型的设计结合,工程师不仅可以测试将深度学习模型集成到更大系统中,还可以加速和增强复杂系统的设计,例如虚拟传感器设计等应用。
使用 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 中打开。
您可以通过 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 的准确度。
检索增强生成的工作流。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)