主要内容

importONNXLayers

从导入图层ONNX网络

描述

实例

= importONNXLayers (模型文件)导入ONNX的层™ (开放式神经网络交换)网络文件模型文件。您可以在新数据集上训练导入的图层,或将图层组装到网络中,以便进行预测。

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

实例

= importONNXLayers (模型文件,名称、值)使用由一个或多个名称-值对参数指定的附加选项从ONNX网络导入层。

例如importONNXLayers (modelfile ImportWeights,假)从文件中导入不带权重的网络体系结构模型文件

例子

全部崩溃

下载并安装ONNX模型格式的深度学习工具箱转换器金宝app支持包。

类型importONNXLayers在命令行。

importONNXLayers

如果ONNX模型格式的深度学习工具箱转换器如果未安装,则该函数将在加载项资源管理器中提供指向所需支持包的链接。若要安装支持包,请单击该链接,然后单击金宝app安装. 通过从模型文件导入网络,检查安装是否成功“civarresnet.onnx”如果安装了支持包,则函数返回金宝app达格网络对象

模型文件=“civarresnet.onnx”;图层=导入图层(模型文件,“OutputLayerType”,“分类”)
layers = LayerGraph with properties: layers: [77×1 net.cnn.layer. layer]连接:[85×2 table]

导入在CIFAR-10数据集上训练的残差神经网络的结构和权重。指定包含ONNX网络的文件以及要添加到导入网络的输出层的类型。

模型文件=“civarresnet.onnx”; lgraph=importonxlayers(模型文件,...“OutputLayerType”,“分类”,...“重要性”,对)
LGRAPHE=LayerGraph,属性:Layers:[77×1 nnet.cnn.layer.layer]连接:[85×2表格]输入名称:{'Input\U Input'}输出名称:{'ClassificationLayer\U softmax'}

分析导入的网络结构。

analyzeNetwork (lgraph)

使用导入具有多个输出的ONNX网络importONNXLayers. 这个函数为输出插入占位符层。导入之后,您可以使用findPlaceholderLayers替换层分别地

指定要从中导入图层和权重的网络文件。

模型文件=“digitsMIMO.onnx”;

中的网络digitsMIMO.onnx有两个输出层:一个分类层分类的数字和一个回归层计算的均方误差的预测角度的数字。导入的层和权重模型文件

层= importONNXLayers (“digitsMIMO.onnx”,“重要性”,对)
警告:ONNX网络有多个输出。ImportOnXLayers为输出插入占位符层。分别使用findPlaceholderLayers和replaceLayer查找和替换层。
layers=LayerGraph,属性:layers:[19×1 nnet.cnn.layer.layer]连接:[19×2表]输入名称:{'Input\U Input'}输出名称:{1×0 cell}

importONNXLayers显示警告并为输出层插入占位符层。

使用以下命令绘制图层图:情节

绘图(图层)

图层图有两个输出图层:Output_fc_1_Flatten输出\u sm\u 1。这两个层是输出的占位符。您可以通过查看属性或使用findPlaceholderLayers作用

层次,层次
ans=19×1带层的层阵列:1‘输入输入’图像输入28×28×1图像2‘conv_1’卷积16 5×5×1卷积带跨步[1]和填充[2 2 2 2 2]3‘BN_1’批量归一化16通道批量归一化4‘relu_1’relu 5‘conv_2’卷积32 1×1×16卷积带跨步[2]和填充[0 0]6'conv_3'卷积32 3×3×16卷积带跨步[2]和填充[1 1]7'BN_2'批标准化带32通道批标准化8'relu_2'relu relu 9'conv_4'卷积32 3×3×32卷积带跨步[1]和填充[1 1 1]10'BN_3'批标准化批标准化32通道11'relu_3'relu relu 12'加上2个输入的元素加成13'fc_1'卷积114×14×32卷积带跨步[1]和填充[0 0 0 0]14'fc_2'卷积10 14×14×32卷积带跨步[1]和填充[0 0 0 0 0 0 0 0]15“sm_1_展平”ONNX展平激活为1-D假设C样式(行主)顺序16“sm_1”Softmax Softmax 17“输出sm_1”占位符层“输出”ONNX运算符占位符18“fc_1_展平”ONNX展平激活为1-D假设C样式(行主)订单19“输出”ONNX运算符的“输出”fc\u 1\u展平”占位符层占位符
占位符层=findPlaceholderLayers(层)
placeholderLayers = 2×1 PlaceholderOutputLayer数组:1' Output_sm_1' PLACEHOLDER LAYER PLACEHOLDER for 'Output' ONNX operator 2 'Output_fc_1_Flatten' PLACEHOLDER LAYER PLACEHOLDER for 'Output' ONNX operator

创建输出层以替换占位符层。首先,使用名称创建一个分类层输出\u sm\u 1. 将输出层的类指定为0,1., ...,9. 如果未指定类,则软件会自动将其设置为1.,2., ...,N,在那里N是班级的数量。

output1=分类层(“姓名”,“Output_sm_1”,“班级”,字符串(0:9));

创建一个名为Output_fc_1_Flatten

output2=回归层(“姓名”,“Output_fc_1_Flatten”);

将占位符层替换为输出1输出2使用替换层

层=替换层(层,“Output_sm_1”,输出1);层=替换层(层,“Output_fc_1_Flatten”,输出2);

显示属性层图的确认替换。

层次,层次
ans=19×1带层的层阵列:1‘输入输入’图像输入28×28×1图像2‘conv_1’卷积16 5×5×1卷积带跨步[1]和填充[2 2 2 2 2]3‘BN_1’批量归一化16通道批量归一化4‘relu_1’relu 5‘conv_2’卷积32 1×1×16卷积带跨步[2]和填充[0 0]6'conv_3'卷积32 3×3×16卷积带跨步[2]和填充[1 1]7'BN_2'批标准化带32通道批标准化8'relu_2'relu relu 9'conv_4'卷积32 3×3×32卷积带跨步[1]和填充[1 1 1]10'BN_3'批标准化批标准化32通道11'relu_3'relu relu 12'加上2个输入的元素加成13'fc_1'卷积114×14×32卷积带跨步[1]和填充[0 0 0 0]14'fc_2'卷积10 14×14×32卷积带跨步[1]和填充[0 0 0 0 0 0 0 0]15“sm_1_展平”ONNX展平激活为1-D假设C样式(行主)顺序16“sm_1”Softmax Softmax 17“输出sm_1”分类输出交叉熵谱带“0”和9个其他类18“fc_1_展平”ONNX展平激活为1-D假设C样式(行主)阶数19‘输出’fc‘1’展平‘回归输出均方误差

使用装配网络。该函数返回一个达格网络准备用于预测的对象。

assembledNet=assembleNetwork(层)
[19×1 nnet.cnn.layer.Layer]连接:[19×2 table] InputNames: {'Input_input'} OutputNames: {'Output_sm_1' 'Output_fc_1_Flatten'}

输入参数

全部崩溃

包含网络的ONNX模型文件的名称,指定为字符向量或字符串标量。该文件必须在当前文件夹中,在MATLAB的一个文件夹中®路径,或者必须包含文件的完整路径或相对路径。

例子:“civarresnet.onnx”

名称-值对参数

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

例子:importONNXLayers (modelfile“OutputLayerType”、“分类”)从导入网络层模型文件并在导入层的末尾添加分类输出层的输出层。

函数附加到导入的网络体系结构末端的输出层类型,指定为“分类”,“回归”“像素分类”.使用“像素分类”附加像素分类层(计算机视觉工具箱)对象(需要计算机视觉工具箱)™).

如果网络处于模型文件具有多个输出,则不能使用此参数指定输出图层类型。importONNXLayers为输出插入占位符图层。导入后,可以使用查找和替换占位符图层findPlaceholderLayers替换层分别地

例子:“OutputLayerType”、“回归”

用于导入权重以及网络体系结构的指示器,指定为错误的符合事实的

例子:“ImportWeights”,真的

数据类型:必然的

输出参数

全部崩溃

网络体系结构,返回为分层图对象

局限性

  • importONNXLayers金宝app支持以下ONNX版本:

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

    • 该函数完全支持ONNX操作符集6、7、金宝app8和9。

    • 该功能对ONNX操作员集10和11提供有限的支持。金宝app

笔记

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

更多关于

全部崩溃

金宝app支持ONNX

importONNXLayers金宝app支持以下ONNX层,但有一些限制:

ONNX层 深度学习工具箱层

添加

附加层nnet.onnx.layer.ElementwiseAffineLayer

AveragePool

averagePooling2dLayer

BatchNormalization

批处理规范化层

Concat

连接层

常数

无(作为权重导入)

Conv*

卷积层

ConvTranspose

转置层

辍学者

落花人

埃卢

淋溶层

Gemm

完全连接层如果ONNX网络是循环的,则为nnet.onnx.layer.FlattenLayer然后卷积层

全球平均池

globalAveragePooling2dLayer

GlobalMapool

GlobalMapooling2DLayer

格鲁

泥鳅

瞬时正规化

组规范化层具有numGroups指定为“频道方面”

利基雷卢

漏泄层

LRN

交叉信道归一化层

LSTM

lstmLayer双层膜

MatMul

完全连接层如果ONNX网络是循环的,则为卷积层

马克斯普尔

maxPooling2dLayer

Mul

multiplicationLayer

线性整流函数(Rectified Linear Unit)

雷卢耶clippedReluLayer

乙状结肠

乙状结肠

Softmax

softmaxLayer

总和

附加层

坦莱尔

*如果的属性Conv运算符是只有两个元素的向量(p1, p2),importONNXLayers进口Conv作为一个卷积层使用name-value参数“填充”指定为[p1,p2,p1,p2]

ONNX层 ONNX导入器自定义层

剪辑

nnet.onnx.layer.ClipLayer

Div

nnet.onnx.layer.ElementwiseAffineLayer

压平

nnet.onnx.layer.FlattenLayernnet.onnx.layer.Flatten3dLayer

身份

nnet.onnx.layer.IdentityLayer

图像定标器

nnet.onnx.layer.ElementwiseAffineLayer

普莱鲁

nnet.onnx.layer.PReluLayer

重塑

nnet.onnx.layer.FlattenLayer

附属的

nnet.onnx.layer.ElementwiseAffineLayer
ONNX层 图像处理工具箱™
DepthToSpace 深度至空间2层(图像处理工具箱)
调整大小 resize2dLayer(图像处理工具箱)resize3dLayer(图像处理工具箱)
空间深度 spaceToDepthLayer(图像处理工具箱)
上采样 resize2dLayer(图像处理工具箱)resize3dLayer(图像处理工具箱)

提示

  • 如果ONNX网络包含一个ONNX模型格式的深度学习工具箱转换器不支持(请参见金宝app金宝app支持ONNX层),然后importONNXLayers在不支持的层上插入一个占位符层。金宝app要查找网络中不支持的层的名称和索引,请使用金宝appfindPlaceholderLayers功能。然后可以使用定义的新图层替换占位符图层。若要替换图层,请使用替换层。有关示例,请参阅导入和组装具有多个输出的ONNX网络

  • 您可以导入具有多个输入和多个输出的ONNX网络。如果网络有多个输入和一个输出,请使用importONNXNetwork.如果网络有多个输出,请使用importONNXLayers. 这个importONNXLayers函数为输出插入占位符层。导入之后,您可以使用findPlaceholderLayers替换层,有关示例,请参阅导入和组装具有多个输出的ONNX网络.要了解具有多个输入和多个输出的深度学习网络,请参阅多输入多输出网络

  • 若要使用预训练网络对新图像进行预测或传递学习,必须以用于训练导入模型的图像的预处理方式对图像进行预处理。最常见的预处理步骤是调整图像大小、减去图像平均值以及将图像从BGR图像转换为RGB。

    • 要调整图像大小,请使用imresize例如[3] 227227年imresize(图片)

    • 要将图像从RGB格式转换为BGR格式,请使用轻弹例如翻转(图3)

    有关用于训练和预测的预处理图像的更多信息,请参见用于深度学习的图像预处理

工具书类

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

[2]ONNXhttps://onnx.ai/

R2018a中引入