主要内容

exportONNXNetwork

出口网络ONNX模型格式

描述

例子

exportONNXNetwork (文件名导出深度学习网络将权重设置为ONNX™ 格式化文件文件名如果文件名那么,存在吗exportONNXNetwork覆盖文件。

此函数需要ONNX模型格式的深度学习工具箱™转换器金宝app支持包。如果未安装此支持包,则该功能将提供下载链接。

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

例子

全部折叠

加载一个预先训练的SqueezeNet卷积神经网络。

净=挤压净
具有属性的DAG网络:层:[68×1 nnet.cnn.layer.layer]连接:[75×2表]输入名称:{'data'}输出名称:{'ClassificationLayer_predictions'}

将网络导出为名为squeezenet.onnx.如果ONNX模型格式的深入学习工具箱转换器金宝app如果未安装支持包,则该函数会在附加模块资源管理器中提供指向所需支持包的链接。若要安装支持包,请单击该链接,然后单击“安装”安装

文件名='squeezenet.onnx';exportONNXNetwork(净、文件名)

现在,您可以导入squeezenet.onnx文件到任何支持ONNX导入的深度学习框架。金宝app

使用将带有或不带有输出层的图层图导出为ONNX格式exportONNXNetwork

加载一个预训练的挤压网络卷积神经网络,并将预训练的网络转换为一个层图。

净=挤压净;lgraph1=层图(净)
lgraph1 = LayerGraph with properties: Layers: [68×1 nnet.cnn.layer.Layer] Connections: [75×2 table] InputNames: {'data'} OutputNames: {'ClassificationLayer_predictions'}

分析图层图。分析网络显示网络体系结构的交互式绘图和包含有关网络层信息的表。您还可以在层图中检测错误和问题lgraph1在导出为ONNX格式之前。lgraph1是无错误的。

分析网络(lgraph1)

导出图层图lgraph1作为当前文件夹中名为squeezeLayers1.onnx

exportONNXNetwork(lgraph1,“挤压层1.onnx”

现在,您可以导入squeezeLayers1.onnx文件到任何支持ONNX导入的深度学习框架。金宝app

的输出层lgraph1

lgraph2=移除层(lgraph1,lgraph1.Layers(end.Name)
lgraph2 = LayerGraph with properties: Layers: [67×1 nnet.cnn.layer.Layer] Connections: [74×2 table] InputNames: {'data'} OutputNames: {1×0 cell}

分析图层图lgraph2通过使用分析网络。图层图分析检测到丢失的输出图层和未连接的输出。您仍然可以导出lgraph2为ONNX格式。

分析网络(lgraph2)

导出图层图lgraph2作为当前文件夹中名为squeezeLayers2.onnx

exportONNXNetwork(lgraph2,“挤压层2.onnx”

现在,您可以导入squeezeLayers2.onnx文件到任何支持ONNX导入的深度学习框架。金宝app

输入参数

全部折叠

训练过的网络或网络层图,指定为SeriesNetwork达格网络数据链路网络LayerGraph对象

你可以得到一个训练有素的网络(SeriesNetwork达格网络数据链路网络)在这些方面:

  • 导入预训练网络。例如,使用水壶函数。

  • 训练你自己的网络。使用trainNetwork培养一个SeriesNetwork达格网络.使用自定义的训练循环来训练数据链路网络

一个LayerGraph对象是网络层的图。这个图的一些层参数可能是空的(例如,卷积层的权值和偏差,批处理归一化层的均值和方差)。在使用层图作为输入参数之前exportONNXNetwork,通过指定随机值初始化空参数。或者,您可以在导出之前执行以下操作之一:

  • 转化为LayerGraph对象一个数据链路网络对象,将层图用作数据链路网络.空参数会自动初始化。

  • 转化为LayerGraph反对受过训练的人达格网络通过使用trainNetwork.使用图层图作为输入参数trainNetwork

在导出到ONNX网络之前,您可以使用分析网络exportONNXNetwork要求SeriesNetwork达格网络数据链路网络对象是无错误的。exportONNXNetwork允许出口LayerGraph缺少或未连接输出层的对象。

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

例子:“network.onnx”

名称-值参数

指定可选的逗号分隔的对名称,值论据。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值

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

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

例子:“my_squeezenet”

设置要在导出模型中使用的ONNX操作符的版本。如果默认操作符集不支持您试图导出的网络,则请尝试使用更高版本。金宝app如果您将导出的网络导入到另一个框架,并且在导出过程中使用了导入器不支持的操作符集,那么导入可能会失败。金宝app

要确保使用适当的操作符集版本,请参考ONNX操作符文档[3].例如,“OpsetVersion”,9出口的MaxUnpolling2dlayerMaxunpol-9ONNX运算符。

例子:6

限制

  • exportONNXNetwork金宝app支持的ONNX版本如下:

    • 该函数支持版本6的ONNX金宝app中间表示。

    • 该函数支持ONNX运算符集金宝app6、7、8和9。

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

  • 如果导出的网络包含ONNX格式不支持的图层(请参见金宝appONNX导出支金宝app持的层)那么exportONNXNetwork保存占位符ONNX运算符以替换不支持的层并返回警告。您无法将带有占位符运算符的ONNX网络导入其他深度学金宝app习框架。

  • 由于MATLAB之间的架构差异®和ONNX,导出的网络可以具有与原始网络不同的结构。

请注意

如果导入导出的网络,则重新导入的网络的层可能与原始网络不同,并且可能不受支持。金宝app

更多关于

全部折叠

支持的层金宝appONNX出口

exportONNXNetwork可以导出以下内容:

提示

  • 您可以将经过培训的包含多个输入和多个输出的MATLAB深度学习网络导出为ONNX模型格式。要了解多输入和多输出深度学习网络,请参阅多输入多输出网络

工具书类

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

[2]ONNXhttps://onnx.ai/

介绍了R2018a