主要内容

exportONNXNetwork

出口网络ONNX模型格式

描述

例子

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

这个函数需要深度学习工具箱™ONNX模型格式转换器万博1manbetx支持包。如果这种支持包没万博1manbetx有安装,那么函数提供一个下载链接。

exportONNXNetwork (,文件名,名称=值)出口网络使用由一个或多个指定附加选项名称参数。

例子

全部折叠

加载pretrained SqueezeNet卷积神经网络。

网= squeezenet
网= DAGNetwork属性:层:[68×1 nnet.cnn.layer.Layer]连接:[75×2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_predictions”}

出口网络作为ONNX格式文件squeezenet.onnx。保存文件到当前文件夹。如果ONNX模型格式的深度学习工具箱转换器支持包没有安装万博1manbetxexportONNXNetwork提供了一个链接到需要在插件浏览器支持包。万博1manbetx安装支持包,单击该链接,然后单万博1manbetx击安装

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

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

出口一层图有或没有一个输出层ONNX格式使用exportONNXNetwork

加载一个pretrained SqueezeNet卷积神经网络,pretrained网络转换为一层图。

网= squeezenet;lgraph1 = layerGraph(净)
lgraph1 = LayerGraph属性:层:[68×1 nnet.cnn.layer.Layer]连接:[75×2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_predictions”}

分析了层图。analyzeNetwork显示一个交互式的网络体系结构的情节和一个表包含关于网络层的信息。你也可以检测层图中的错误和问题lgraph1之前出口到ONNX格式。lgraph1错误是免费的。

analyzeNetwork (lgraph1)

analyzeLgraph1.png

导出层图lgraph1作为一个ONNX格式文件在当前文件夹squeezeLayers1.onnx

exportONNXNetwork (lgraph1“squeezeLayers1.onnx”)

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

删除的输出层lgraph1

lgraph2 = removeLayers (lgraph1 lgraph1.Layers(结束). name)
lgraph2 = LayerGraph属性:层:[67×1 nnet.cnn.layer.Layer]连接:[74×2表]InputNames:{“数据”}OutputNames:{1×0细胞}

分析了层图lgraph2通过使用analyzeNetwork。层图分析检测到一个失踪无关的输出层和一个输出。你仍然可以出口lgraph2ONNX格式。

analyzeNetwork (lgraph2)

analyzeLgraph2.png

导出层图lgraph2作为一个ONNX格式文件在当前文件夹squeezeLayers2.onnx

exportONNXNetwork (lgraph2“squeezeLayers2.onnx”)

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

输入参数

全部折叠

训练有素的网络或网络层图,指定为一个SeriesNetwork,DAGNetwork,dlnetwork,或LayerGraph对象。

你可以得到一个训练有素的网络(SeriesNetwork,DAGNetwork,或dlnetwork在这些方面):

  • 导入一个pretrained网络。例如,使用googlenet函数。

  • 训练你自己的网络。使用trainNetwork培养一个SeriesNetworkDAGNetwork。使用自定义训练循环训练dlnetwork

一个LayerGraph网络层的对象是一个图。这张图的层参数可能是空的(例如,卷积层的重量和偏见,和批处理的均值和方差归一化层)。使用前层图作为输入参数exportONNXNetwork通过分配随机值,初始化空参数。或者,你可以做以下之前出口之一:

  • 把一个LayerGraph对象一个dlnetwork对象通过使用层图作为输入参数dlnetwork。空参数自动初始化。

  • 把一个LayerGraph反对一个训练DAGNetwork对象的使用trainNetwork。使用层图输入参数trainNetwork

可以检测错误和问题之前训练的网络或网络层图导出ONNX网络使用analyzeNetworkexportONNXNetwork需要SeriesNetwork,DAGNetwork,dlnetwork对象是没有误差的。exportONNXNetwork允许出口LayerGraph对象的缺失或无关的输出层。

名字的文件,指定为一个特征向量或字符串标量。

例子:“network.onnx”

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:exportONNXNetwork(网、文件名、NetworkName =“my_net”)网络和指定的出口“my_net”的网络名称保存ONNX网络。

ONNX网络存储的名称保存文件,指定为一个特征向量或字符串标量。

例子:NetworkName = " my_squeezenet "

版本的ONNX运营商将利用在导出的模型中,指定为一个正整数的范围13 [6]。如果默认操作员设置不支持网络你想出口,然后试着用一个版本。万博1manbetx如果你导入导出的网络到另一个框架使用操作员设置在出口,进口国不支持,然后导入可以失败。万博1manbetx

确保你使用适当的操作符设置版本,查阅ONNX操作文档[3]。例如,OpsetVersion = 9出口的maxUnpooling2dLayerMaxUnpool-9ONNX算子。

例子:OpsetVersion = 6

ONNX网络的批量大小,指定为[]或者是一个正整数。如果您指定BatchSize作为[],ONNX网络动态批量大小。如果您指定BatchSize作为一个正整数k,ONNX网络有固定批量的大小k

例子:BatchSize = 10

限制

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

    • 函数支持ONNX vers万博1manbetxion 7的中间表示。

    • 函数支持ONNX算子集6 万博1manbetx- 14所示。

  • exportONNXNetwork不出口设置或网络培训等培训的相关属性选项,学习速率的因素,或正则化因子。

  • 如果你出口网络包含一层ONNX格式不支持(见万博1manbetx层支持ONNX万博1manbetx出口),然后exportONNXNetwork节省一个占位符ONNX运营商不支持层和返回一个警告。万博1manbetx你不能导入一个ONNX网络与一个占位符运营商到其他深度学习框架。

  • 因为建筑MATLAB之间的区别®和出口ONNX网络可以有不同的结构相比,最初的网络。

请注意

如果你导入一个出口网络,湾区(网络层可能不同于原来的网络和可能不支持。万博1manbetx

更多关于

全部折叠

层支持万博1manbetxONNX出口

exportONNXNetwork可以导出以下:

提示

  • 您可以导出一个训练有素的MATLAB深入学习网络,包括多个输入和多个输出ONNX模型格式。学习一个多输入多输出深学习网络,看到的多和多输出网络

引用

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

[2]ONNXhttps://onnx.ai/

版本历史

介绍了R2018a