主要内容

importonnxLayers.

导入层onnx.网络

描述

例子

层数= importonnxlayers(模数从文件中导入onnx™(开放神经网络交换)网络的层模数。您可以在新数据集上培训导入的图层或将图层组装到准备预测的网络中。有关组装网络的工作流程的示例,请参阅从佩带的Keras层组装网络

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

例子

层数= importonnxlayers(模数名称,价值将图层从ONNX网络导入其中一个或多个名称值对参数指定的其他选项。

例如,importonnxlayers(模块,'Importuights',false)导入网络架构没有文件的重量模数

例子

全部收缩

下载并安装深度学习工具箱转换器,用于ONNX模型格式万博1manbetx支持包。

类型importonnxLayers.在命令行。

importonnxLayers.

如果深度学习工具箱转换器,用于ONNX模型格式未安装,那么该函数提供了在附加资源管理器中的所需支持包的链接。万博1manbetx要安装支持包,请单击“链接”,万博1manbetx然后单击安装。从模型文件导入网络检查安装是否成功'cifarresnet.onnx'在命令行。如果安装了支持万博1manbetx包,则该函数返回aDagnetwork.目的。

modelfile =.'cifarresnet.onnx';图层= importonnxLayers(模数,'outputlayertype''分类'
图层=具有属性的图层图:图层:[77×1 nnet.cnn.layer.layer]连接:[85×2表]

导入在CIFAR-10数据集上培训的剩余神经网络的体系结构和权重。指定包含ONNX网络的文件和要添加到导入的网络的输出层的类型。

modelfile =.'cifarresnet.onnx';lgraph = importonnxLayers(模块,......'outputlayertype''分类'......'进口重量',真的)
LAGHAGH =具有属性的分层图:图层:[77×1 nnet.cnn.layer.layer]连接:[85×2表]输入名称:{'input_input'} OutputNames:{'classificationLayer_softmax'}

分析导入的网络架构。

分析(LGROPH)

导入使用多个输出的ONNX网络importonnxLayers.。该功能插入输出的占位符层。导入后,您可以通过使用找到并替换占位符层FindPlaceHolderLayers.替换剂, 分别。

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

modelfile =.'digitsmimo.onnx';

网络in.digitsmimo.onnx.具有两个输出层:一个分类层,用于对数字和一个回归层进行分类,以计算数字的预测角度的平均平方误差。从中导入图层和权重模数

图层= importonnxLayers('digitsmimo.onnx''进口重量',真的)
警告:ONNX网络具有多个输出。importonnxlayers为输出插入占位符层。通过使用FindPlaceHolderLayers和RepliceLayer来查找并替换图层。
图层=具有属性的分层图:图层:[19×1 nnet.cnn.layer.layer]连接:[19×2表] InputNames:{'input_input'} OutputNames:{1×0小区}

importonnxLayers.显示警告并为输出图层插入占位符层。

使用图层图阴谋

情节(层)

图层图具有两个输出图层:output_fc_1_flatten.output_sm_1.。这两层是输出的占位符。您可以通过查看占位符层来查看层数财产或使用FindPlaceHolderLayers.功能。

图层.Layers.
ANS = 19x1图层阵列:1'input_Input'图像输入28x28x1图像2'conv_1'卷积16 5x5x1卷积与步幅[11]和填充[2 2 2 2] 3'bn_1'批量标准化批量标准化与16个通道4'Relu_1'Relu Relu 5'Cronm_2'卷积32 1x1x16卷绕升温[2 2]和填充[0 0 0 0] 6'CONC_3'卷积32 3x3x16卷曲与步幅[2 2]和填充[1 1 1 1] 7“BN_2”批量标准化批量归一化与32通道8'Relu_2'Relu Relu 9'Conv_4'卷积32 3x3x32卷积与步幅[11]和填充[111 1] 10'BN_3'批量归一化批量标准化,具有32个通道11'Relu_3'Relu Relu 12'Plue_1'添加元素 - 方向添加2个输入13'FC_1'卷积1 14x14x32卷积的卷程[11]和填充[0 0 0 0] 14'fc_2'卷积10 14x14x32卷积与步幅[1 1 1]并填充[0 0 0 0] 15'MM_1_FLATTEN'ONNX扁平扁平激活为1-D假设C样式(行 - 主要)要么der 16 'sm_1' Softmax softmax 17 'Output_sm_1' PLACEHOLDER LAYER Placeholder for 'Output' ONNX operator 18 'fc_1_Flatten' ONNX Flatten Flatten activations into 1-D assuming C-style (row-major) order 19 'Output_fc_1_Flatten' PLACEHOLDER LAYER Placeholder for 'Output' ONNX operator
PlaceHolderLayers = FindPlaceHolderLayers(层)
placewherlayers = 2x1 placeholderoutputplayer arruler alray:1'output_sm_1'占位符层占位符为'输出'Onnx运算符2'output_fc_1_flatten'占位符分层占位符为'输出'Onnx运算符

创建输出图层以替换占位符层。首先,使用名称创建分类图层output_sm_1.。指定输出图层的类0.1,......,9.。如果未指定类,则软件会自动将其设置为12,......,N, 在哪里N是课程的数量。

Output1 = ClassificationLayer('名称''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);

显示层数图表图的属性确认更换。

图层.Layers.
ANS = 19x1图层阵列:1'input_Input'图像输入28x28x1图像2'conv_1'卷积16 5x5x1卷积与步幅[11]和填充[2 2 2 2] 3'bn_1'批量标准化批量标准化与16个通道4'Relu_1'Relu Relu 5'Cronm_2'卷积32 1x1x16卷绕升温[2 2]和填充[0 0 0 0] 6'CONC_3'卷积32 3x3x16卷曲与步幅[2 2]和填充[1 1 1 1] 7“BN_2”批量标准化批量归一化与32通道8'Relu_2'Relu Relu 9'Conv_4'卷积32 3x3x32卷积与步幅[11]和填充[111 1] 10'BN_3'批量归一化批量标准化,具有32个通道11'Relu_3'Relu Relu 12'Plue_1'添加元素 - 方向添加2个输入13'FC_1'卷积1 14x14x32卷积的卷程[11]和填充[0 0 0 0] 14'fc_2'卷积10 14x14x32卷积与步幅[1 1 1]并填充[0 0 0 0] 15'MM_1_FLATTEN'ONNX扁平扁平激活为1-D假设C样式(行 - 主要)要么der 16 'sm_1' Softmax softmax 17 'Output_sm_1' Classification Output crossentropyex with '0' and 9 other classes 18 'fc_1_Flatten' ONNX Flatten Flatten activations into 1-D assuming C-style (row-major) order 19 'Output_fc_1_Flatten' Regression Output mean-squared-error

使用层图汇编。该函数返回一个Dagnetwork.准备用于预测的对象。

AdderBlynet = AssembLenetwork(图层)
CommandBlynet =具有属性的Dagnetwork:图层:[19×1 nnet.cnn.layer.layer]连接:[19×2表] InputNames:{'input_input'} OutputNames:{'output_sm_1''output_fc_1_flatten'}

输入参数

全部收缩

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

例子:'cifarresnet.onnx'

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:ImportOnnXLayers(模块,'OuthantLayerType','分类')从中导入网络层模数并在导入的图层末尾添加分类输出层的输出层。

函数附加到导入的网络架构结束的输出层的类型,指定为'分类''回归', 要么'pixelclassification'。使用'pixelclassification'追加A.PixelclassificationLayer.(电脑视觉工具箱)对象(需要计算机Vision Toolbox™)。

如果是网络模数有多个输出,那么您无法使用此参数指定输出层类型。importonnxLayers.为输出插入占位符层。导入后,您可以通过使用找到并替换占位符层FindPlaceHolderLayers.替换剂, 分别。

例子:'outputlayertype','回归'

指示要导入权重以及网络架构,指定为错误的要么真的

例子:'Importuights',真实

数据类型:逻辑

输出参数

全部收缩

网络架构,返回AS分层图目的。

限制

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

    • importonnxLayers.万博1manbetx支持ONNX中间表示版6。

    • importonnxLayers.完全支持ON万博1manbetxNX操作员设置6,7,8和9。

    • importonnxLayers.为Onnx操作员设置10和11万博1manbetx提供有限的支持。

笔记

如果导入导出的网络,则可导入的网络层可能与原始网络不同,可能无法支持。万博1manbetx

提示

参考

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

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

在R2018A介绍