主要内容

建议导入模型TensorFlow,PyTorch,ONNX

这个主题提供有关如何克服常见的障碍导入模型从TensorFlow™, PyTorch®作为一个MATLAB,或者ONNX™®网络或层图。你可以阅读每个部分的独立这一主题。的高级概述导入和导出功能深度学习工具箱™,明白了深度学习工具箱之间的互操作性,TensorFlow PyTorch, ONNX

导入的功能深度学习工具箱

此表列出了深度学习工具箱导入功能。使用这些函数导入网络或层图从TensorFlow PyTorch, ONNX。

你必须有相关的支持包运行这些导入功能。金宝app如果支持包没有金宝app安装,每个函数提供一个下载链接到对应的包在扩展浏览器的支持。推荐的做法是下载支持包的默认位置的MATLAB版本运行。金宝app你也可以直接从文件交换下载包的支持。金宝app

推荐功能导入TensorFlow模型

深度学习工具箱转换器TensorFlow模型金宝app支持包提供了这些函数:

  • importTensorFlowNetworkimportKerasNetwork——进口TensorFlow模型作为一个网络。

  • importTensorFlowLayersimportKerasLayers——进口TensorFlow模型层图。

请注意

importTensorFlowNetworkimportTensorFlowLayers函数是推荐的importKerasNetworkimportKerasLayers功能。

下表对比了深度学习工具箱转换器TensorFlow模型功能。比较突出的原因importTensorFlowNetworkimportTensorFlowLayers函数是推荐的importKerasNetworkimportKerasLayers功能。

特性 importTensorFlowNetworkimportTensorFlowLayers importKerasNetworkimportKerasLayers
自动生成自定义层 是的 没有
金宝app支持TensorFlow 2 是的 有限的
金宝app支持SavedModel格式 是的 没有
可以导入网络dlnetwork(或LayerGraph兼容dlnetwork) 是的 没有

更多信息的优势从TensorFlow 1迁移到TensorFlow 2,明白了迁移从TensorFlow 1。x TensorFlow 2。有关TensorFlow版本的更多信息导入功能的支持,看到的金宝app限制(importTensorFlowNetworkimportTensorFlowLayers)限制(importKerasNetworkimportKerasLayers)。

导入TensorFlow HDF5格式的模型,而不是使用importKerasNetwork导入模型作为深度学习网络工具箱,TensorFlow模型转换为SavedModel格式和使用importTensorFlowNetwork函数。

自动生成自定义层

importTensorFlowNetwork,importTensorFlowLayers,importONNXNetwork,importONNXLayers,importNetworkFromPyTorch函数将自动生成自定义层保存到一个包在当前文件夹。定义层包的更多信息,请参阅PackageName每个函数的名称参数。

占位符层

importTensorFlowLayersimportONNXLayers功能插入TensorFlow层或占位符层ONNX运营商当这些条件应用:

如果这些条件应用,importTensorFlowNetworkimportONNXNetwork函数返回一个错误。这些流程图描述这些工作流。

流程图显示

找到占位符的名称和指标层的层图,使用findPlaceholderLayers函数。你可以替换一个占位符一层一层和一个内置的MATLAB,定制层,或functionLayer对象。关于自定义层的更多信息,请参阅定义定制的深度学习层。用一个例子functionLayer对象,看到替换支持Keras层金宝app和功能层。替换一个层,使用replaceLayer。例如,看到的进口ONNX模型层图,一层一层的占位符

importNetworkFromPyTorch函数生成一个定制的一层一层用一个占位符函数而不是一个占位符。有关更多信息,请参见占位符函数

输入维度排序

输入数据的维度排序不同深度学习工具箱,TensorFlow, ONNX。这个表比较输入尺寸订购平台之间不同的输入类型。

输入类型 维度排序
MATLAB TensorFlow PyTorch ONNX
特性 CN 数控 数控 数控
二维图像 HWCN NHWC NCHW NCHW
三维图像 HWDCN NHWDC NCDHW NCHWD
向量序列 CSN 国家安全委员会 SNC 国家安全委员会
二维图像序列 HWCSN NSWHC NCSHW NSCHW
三维图像序列 HWDCSN NSWHDC NCSDHW NSCHWD

表中的变量名:

  • N——数量的观察

  • C——数量的特性或通道

  • H——图像的高度

  • W——图像的宽度

  • D——深度图像

  • 年代——序列长度

预测的数据格式dlnetwork

importTensorFlowNetworkimportONNXNetwork函数可以导入TensorFlow或ONNX模型DAGNetworkdlnetwork对象。网络通过设置指定导入的类型TargetNetwork名称-值参数。更多细节,请参阅TargetNetworkimportTensorFlowNetworkTargetNetworkimportONNXNetwork

importNetworkFromPyTorch进口PyTorch模型作为一个未初始化的函数dlnetwork对象。在您使用网络之前,做以下之一:

预测使用dlnetwork对象,你必须将输入数据转换成dlarray对象与相应的数据格式。例如,看到的进口TensorFlow网络dlnetwork对图像进行分类。用这个表来选择正确的数据格式为每个输入类型和层。

输入类型 输入层* * 输入格式*
特性 featureInputLayer CB
二维图像 imageInputLayer SSCB
三维图像 image3dInputLayer SSCB
向量序列 sequenceInputLayer 认知行为治疗
二维图像序列 sequenceInputLayer SSCBT
三维图像序列 sequenceInputLayer SSSCBT

*在深度学习工具箱,每个数据格式必须这些标签之一:

  • 年代——空间

  • C——频道

  • B——批观测

  • T——时间和顺序

  • U——未指明的

* *一dlnetwork对象不需要一个输入层。网络的输入层可以推断出类型从输入数据格式。

有关数据格式的更多信息,请参阅dlarray

输入数据预处理

预处理数据是一种常见的深度学习工作流程的第一步准备数据网络可以接受的格式。你必须进行预处理以同样的方式输入数据作为训练数据。

pretrained深入学习网络的输入层可以在深度学习工具箱执行一些输入数据的预处理。例如,输入层pretrainedmobilenetv2可实现图像的输入数据。显示归一化网络的输入层的属性。

网= mobilenetv2;net.Layers (1) .Normalization
ans = ' zscore '

网络,你从TensorFlow进口或ONNX可能没有内置预处理输入层。例如,输入层的进口MobileNetV2从TensorFlow不正常的输入图像。进口MobileNetV2并显示归一化网络的输入层的属性。

网= importTensorFlowNetwork (“MobileNetV2”,OutputLayerType =“分类”);net.Layers (1) .Normalization
ans = '没有'

通常,开源库提供的信息所需的输入数据预处理。例如,请参见tf.keras.applications.mobilenet_v2.preprocess_inputShuffleNet ONNX模型动物园。了解更多关于如何预处理图像和其他类型的数据深度学习工具箱,明白了预处理图像深度学习预处理数据深层神经网络

另请参阅

|||||

相关的话题

外部网站