TensorFlow和PyTorch互操作性的新特性
对于深度学习,MATLAB允许用户在MATLAB中创建和训练模型,或者通过模型转换利用在开源中训练的模型。在MATLAB R2022b之前,支持模型转换包金宝app括:从ONNX™导入和导出到ONNX™,以及从TensorFlow™导入。我们很高兴地分享,从MATLAB R2022b开始,用户现在可以导出模型到TensorFlow作为Python®代码和可以从PyTorch®导入模型(首先支持图像分类)。金宝app
在这里,我展示了如何将深度学习网络导出到TensorFlow,将其加载为TensorFlow模型,并将其保存为SavedModel格式的基本工作流。
DarkNet19包包含四个文件:
在上面的代码中,您可能已经注意到PyTorch和MATLAB中的输入维度有不同的顺序。有关更多信息,请参见深度学习平台的输入维度排序.有关如何导入PyTorch模型、如何初始化导入模型以及如何在导入模型上执行工作流(如预测和训练)的详细信息,请参见例子的importNetworkTFromPyTorch文档页面。
导出到TensorFlow
支持包金宝appTensorFlow模型的深度学习工具箱转换器添加了从MATLAB导出到TensorFlow的功能,通过使用exportNetworkToTensorFlow函数。我们有很多理由对新产品感到兴奋exportNetworkToTensorFlow功能:
|
MATLAB代码:加载一个预先训练好的网络。的预训练的深度神经网络文档页面向您展示了如何获得预训练网络的所有选项。您也可以创建自己的网络。Net = darknet19;导出网络网TensorFlow。的exportNetworkToTensorFlow函数将TensorFlow模型保存在Python包DarkNet19中。 exportNetworkToTensorFlow(净,“DarkNet19”) |
- _init_.py文件,它将DarkNet19文件夹定义为常规的Python包。
- py文件,其中包含了定义未经训练的TensorFlow-Keras模型的代码。
- README.txt文件,它提供了如何加载TensorFlow模型并将其保存为HDF5或SavedModel格式的说明。
- 权重。h5文件,其中包含HDF5格式的模型权重。
图:导出的TensorFlow模型保存在常规的Python包DarkNet19中。
Python代码:从DarkNet19包中加载导出的TensorFlow模型。导入DarkNet19模型= DarkNet19.load_model()以SavedModel格式保存导出的模型。 model.save(“DarkNet19_savedmodel”) |
从PyTorch导入
在R2022b中,我们介绍了PyTorch模型的深度学习工具箱转换器金宝app支持包。这个初始版本支持导入图像分类模型。金宝app金宝app对其他模型类型的支持将在未来的版本中添加。使用importNetworkFromPyTorch函数导入PyTorch模型。确保您正在导入的PyTorch模型是预先训练和跟踪的。我在这里向您展示如何从PyTorch导入图像分类模型并初始化它。Python代码:加载预先训练的图像分类模型TorchVision图书馆.导入模型model = models.mnasnet1_0(预训练=True)跟踪PyTorch模型。有关如何跟踪PyTorch模型的更多信息,请转到Torch文档:跟踪函数. X = torch.rand(1,3,224,224) traced_model = torch. jet .trace(model.forward,X)保存PyTorch模型。 traced_model.save(“traced_mnasnet1_0.pt”) |
MATLAB代码:将PyTorch模型导入到MATLAB中importNetworkTFromPyTorch函数。函数以未初始化的形式导入模型dlnetwork没有输入层的对象。net = importNetworkFromPyTorch(" traced_mnasnet1_1 .pt");指定导入网络的输入大小,并创建一个图像输入层。然后,将图像输入层添加到导入的网络中,并使用addInputLayer函数(R2022b中新增)。 InputSize = [224 224 3];InputLayer = imageInputLayer(InputSize,Normalization="none");net = addInputLayer(net,InputLayer,Initialize=true); |
互操作性概述
互操作性支持包允许您将深度学习工具箱与Te金宝appnsorFlow、Pytorch和ONNX连接起来。使用导入和导出函数访问开源存储库中可用的模型,并与在其他深度学习框架中工作的同事协作。 更多信息:- 要查找所有可用的导入和导出函数(及其文档),请转到深度学习导入和导出.
- 有关如何导入和导出网络的详细信息,请参见深度学习工具箱、TensorFlow、PyTorch和ONNX之间的互操作性.
- 有关导入模型的常见问题的答案,请参见从TensorFlow, PyTorch和ONNX导入模型的技巧.
- 如果你只在MATLAB中工作,你可能可以在我们不断更新的模型库中找到一个合适的网络:MATLAB深度学习模型枢纽.
- 查看我们之前的博客文章从TensorFlow, PyTorch和ONNX导入模型;你会发现关于导入的有用技巧和一个可以下载的示例(重点是从TensorFlow导入)。
- 类别:
- 深度学习
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。