人工智能

应用机器学习和深入学习

有什么新的互操作性TensorFlow PyTorch

深度学习、MATLAB允许用户创建和火车模型在MATLAB或杠杆模型训练在开源通过模型转换。MATLAB R2022b之前,支持模型的转换包万博1manbetx括:进口和出口到ONNX™,和进口TensorFlow™。我们兴奋地分享,MATLAB R2022b,用户现在可以出口模型TensorFlow作为Python®代码,可以导入模型从PyTorch®(从对图像分类的支持)。万博1manbetx

出口到TensorFlow

支持包万博1manbetx深度学习工具箱转换器TensorFlow模型刚才添加的功能从MATLAB TensorFlow,出口使用exportNetworkToTensorFlow函数。
有许多理由兴奋exportNetworkToTensorFlow功能:
  1. 您可以导出深度学习网络和层图形(如卷积,LSTM)直接TensorFlow。
  2. 很容易出口网络、负载TensorFlow模型,并使用导出的预测模型。一个相关的例子,看到出口网络TensorFlow和图像进行分类
  3. 很容易出口未经训练的层图,负载TensorFlow模型,和火车导出的模型。一个相关的例子,看到出口未经训练的TensorFlow层图
  4. 你可以在任何标准TensorFlow保存导出的模型格式,如SavedModel或HDF5格式,并与你的同事分享在TensorFlow工作。
  5. 许多MATLAB层可以转化成TensorFlow层。层的完整列表,请参阅TensorF万博1manbetxlow层支持出口
我在这里展示的基本工作流如何出口TensorFlow深入学习网络,负载TensorFlow模型,并将其保存在SavedModel格式。
MATLAB代码:
加载一个pretrained网络。的Pretrained深层神经网络文档页面显示您如何获得pretrained网络的所有选项。您也可以创建自己的网络。
网= darknet19;
出口网络TensorFlow。的exportNetworkToTensorFlow函数可以节省DarkNet19 TensorFlow模型在Python包。
exportNetworkToTensorFlow(净,“DarkNet19”)
DarkNet19包包含四个文件:
  • _init_。py文件,它定义了DarkNet19文件夹作为常规的Python包。
  • 该模型。py文件,其中包含的代码定义了未经训练的TensorFlow-Keras模型。
  • README。txt文件,它提供了说明如何加载TensorFlow模型并将其保存在HDF5或SavedModel格式。
  • 权重。h5 HDF5格式的文件包含模型权重。

图:导出TensorFlow DarkNet19模型保存在常规的Python包。

Python代码:
加载出口从DarkNet19 TensorFlow模型方案。
进口DarkNet19模型= DarkNet19.load_model ()
SavedModel格式保存导出的模型。
model.save (“DarkNet19_savedmodel”)

从PyTorch进口

在R2022b我们介绍了深度学习工具箱转换器PyTorch模型万博1manbetx支持包。最初的版本支持导入图像分类模型。万博1manbetx万博1manbetx支持其他类型的模型将被添加在将来的版本中。
使用importNetworkFromPyTorch函数导入PyTorch模型。确保你是进口PyTorch模型是pretrained和追踪。我在这里向你们展示如何从PyTorch导入一个图像分类模型和初始化它。
Python代码:
加载一个pretrained图像的分类模型TorchVision图书馆
从torchvision进口进口火炬模型模型= models.mnasnet1_0 (pretrained = True)
跟踪PyTorch模型。为更多的信息关于如何跟踪PyTorch模型,去火炬文档:跟踪一个函数
X = torch.rand (3224224) traced_model = torch.jit.trace (model.forward X)
保存该PyTorch模型。
traced_model.save (“traced_mnasnet1_0.pt”)
MATLAB代码:
PyTorch模型导入MATLAB使用importNetworkTFromPyTorch函数。作为一个未初始化的函数导入模型dlnetwork对象没有一个输入层。
网= importNetworkFromPyTorch (“traced_mnasnet1_0.pt”);
指定的输入规模进口网络和创建一个图像输入层。然后,添加图像输入层网络和初始化网络通过使用进口addInputLayer在R2022b函数(新)。
InputSize = (224 224 3);InputLayer = imageInputLayer (InputSize正常化= "没有");网= addInputLayer(净、InputLayer初始化= true);
您可能已经注意到在上面的代码输入维度PyTorch和MATLAB的顺序不同。有关更多信息,请参见输入维度排序深度学习平台
更多细节关于如何导入一个PyTorch模型,如何初始化导入的模型,以及如何执行工作流(如预测和培训)导入的模型中,看到的例子importNetworkTFromPyTorch文档页面。

互操作性能力总结

互操作性支持包允许你连接深度学习与Tens万博1manbetxorFlow工具箱,Pytorch, ONNX。使用导入和导出函数访问模型中可用的开源库,与同事协作工作在其他深度学习框架。
更多信息:
|
  • 打印

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。