主要内容

exportONNXNetwork

将网络导出到onnx.模型格式

描述

实例

exportONNXNetwork(,文件名)导出深度学习网络ONNX™格式文件的权重文件名.如果文件名存在,那么exportONNXNetwork覆盖该文件。

此函数需要深度学习工具箱™ ONNX模型格式的转换器万博1manbetx支持包。如果没有安装此支万博1manbetx持包,则该函数将提供下载链接。

exportONNXNetwork(,文件名,名称、值)使用一个或多个名称-值对参数指定的其他选项导出网络。

例子

全部崩溃

加载预训练的挤压网络卷积神经网络。

net =挤压
具有属性的Dagnetwork:图层:[68×1 nnet.cnn.layer.layer]连接:[75×2表]输入名称:{'data'} OutputNames:{'classificationLayer_predictions'}

将网络导出为当前文件夹中的ONNX格式文件挤压网.onnx.如果ONNX模型格式的深度学习工具箱转换器万博1manbetx不安装支持包,然后该函数提供了在附加资源管理器中的所需支持包的链接。要安装支持包,请单击“链接”,万博1manbetx然后单击安装

文件名=“squeezenet.onnx”;exportONNXNetwork(网络,文件名)

现在,您可以导入挤压网.onnx文件导入到支持ONNX导入的任何深度学习框架中。万博1manbetx

使用ONNX格式导出有或没有输出层的层图exportONNXNetwork

加载预训练的SqueezeNet卷积神经网络,将预训练的网络转换为层图。

网= squeezenet;lgraph1 = layerGraph(净)
lgraph1=具有以下属性的LayerGraph:Layers:[68×1 nnet.cnn.layer.layer]连接:[75×2表]输入名称:{'data'}输出名称:{'ClassificationLayer_predictions'}

分析层图。analyzeNetwork显示网络架构的交互式图和包含有关网络层信息的表。您还可以检测到图层图中的错误和问题lgraph1导出到ONNX格式之前。lgraph1错误是免费的。

analyzeNetwork (lgraph1)

导出图层图lgraph1作为当前文件夹中的ONNX格式文件挤压层1.onnx

e出gnonnxnetwork(LGraph1,“squeezeLayers1.onnx”)

现在,您可以导入挤压层1.onnx文件导入到支持ONNX导入的任何深度学习框架中。万博1manbetx

移除的输出层lgraph1

lgraph2 = removeLayers (lgraph1 lgraph1.Layers(结束). name)
lgraph2=具有以下属性的LayerGraph:Layers:[67×1 nnet.cnn.layer.layer]连接:[74×2表]输入名称:{'data'}输出名称:{1×0 cell}

分析层图lgraph2利用analyzeNetwork.图层图分析检测缺失的输出层和未连接的输出。你仍然可以出口lgraph2转换为ONNX格式。

analyzeNetwork (lgraph2)

导出图层图lgraph2作为当前文件夹中的ONNX格式文件挤压层2.onnx

exportONNXNetwork (lgraph2“squeezeLayers2.onnx”)

现在,您可以导入挤压层2.onnx文件导入到支持ONNX导入的任何深度学习框架中。万博1manbetx

输入参数

全部崩溃

经过训练的网络或网络层图,指定为系列网络,DAGNetwork,dlnetwork,或分层图对象。

你可以得到一个训练有素的网络(系列网络,DAGNetwork,或dlnetwork)的方法如下:

  • 导入一个预先训练的网络。例如,使用thegooglenet作用

  • 训练你自己的人际网络。使用列车网络训练系列网络DAGNetwork.使用自定义训练循环来训练dlnetwork

A.分层图对象是网络层的图形。此图的某些层参数可能为空(例如,卷积层的权重和偏差,以及批标准化层的平均值和方差)。在将图层图用作exportONNXNetwork,通过分配随机值初始化空的参数。或者,您可以在导出之前执行以下操作之一:

  • 转换A.分层图反对dlnetwork对象通过使用图层图作为输入参数dlnetwork。空参数将自动初始化。

  • 转换A.分层图反对受过训练的DAGNetwork通过使用列车网络.使用层图作为输入参数到列车网络

在导出到ONNX网络之前,您可以使用analyzeNetworkexportONNXNetwork需要系列网络,DAGNetwork,dlnetwork对象是无错误的。exportONNXNetwork出口许可证分层图对象,其输出层缺失或未连接。

文件的名称,指定为字符向量或字符串标量。

例子:“network.onnx”

名称值参数

指定可选的逗号分隔的字符对名称、值论点。的名字是参数名和价值为对应值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:name1,value1,...,namen,valuen

例子:exportONNXNetwork(净,文件名,“NetworkName”,“my_net”)导出网络并指定'my_net'作为保存的ONNX网络中的网络名称。

要存储在保存文件中的ONNX网络的名称,指定为字符向量或字符串标量。

例子:“我的挤压网”

要在导出模型中使用的ONNX运算符集的版本。如果默认运算符集不支持您尝试导出的网络,请尝试使用更高版本。如果您将导出的网络导入到另一个框架,并且在导出过程中使用了导入器不支持的运算符集,则导入万博1manbetx可能失败。

要确保使用适当的运算符集版本,请参阅ONNX运算符文档[3]例如'opsetversion',9出口maxUnpooling2dLayerMaxUnpool-9ONNX算子。

例子:6.

局限性

  • exportONNXNetwork万博1manbetx支持以下ONNX版本:

    • 该函数支持ONNX中间表示万博1manbetx版本6。

    • 该函数支持ONNX操作符集万博1manbetx6、7、8和9。

  • exportONNXNetwork不导出与网络训练相关的设置或属性,例如训练选项、学习速率因子或正则化因子。

  • 如果您导出的网络包含ONNX格式不支持的层(参见万博1manbetxONNX导出支万博1manbetx持的层),然后exportONNXNetwork保存一个占位符ONNX操作符来代替不支持的层,并返回一个警告。万博1manbetx您不能将带有占位符操作符的ONNX网络导入其他深度学习框架。

  • 因为MATLAB之间的架构差异®和OnNX,与原始网络相比,导出的网络可以具有不同的结构。

笔记

如果导入导出的网络,则重新导入的网络的层可能与原始网络不同,因此可能不受支持。万博1manbetx

更多关于

全部崩溃

层支持万博1manbetxonnx.出口

exportONNXNetwork可以导出以下内容:

提示

  • 您可以输出一个训练有素的MATLAB深度学习网络,其中包括多个输入和多个输出到ONNX模型格式。要了解多输入多输出深度学习网络,请参见多输入多输出网络

参考

[1]开放式神经网络交换https://github.com/onnx/

[2]onnx.https://onnx.ai/

R2018a中引入