主要内容

importONNXNetwork

进口pretrainedONNX网络

描述

例子

= importONNXNetwork (modelfile)进口pretrained ONNX™(打开)神经网络交换网络的文件modelfile。函数的作用是:返回网络作为一个DAGNetworkdlnetwork对象。

importONNXNetwork要求深度学习工具箱™ONNX模型格式转换器金宝app支持包。如果这种支持包没金宝app有安装importONNXNetwork提供一个下载链接。

请注意

默认情况下,importONNXNetwork试图生成一个自定义层当软件不能ONNX经营者转化为一个等价的内置MATLAB®层。的运营商的软件支持转换,明白了金宝appONNX运营商支持转换成内置M金宝appATLAB层

importONNXNetwork保存生成的自定义层的包+modelfile

importONNXNetwork并不会自动生成一个自定义层的每个ONNX运营商不支持转换成一个内置的MATLAB层。金宝app如何处理不支持层的更多信息,见金宝app选择功能

例子

= importONNXNetwork (modelfile,名称=值)进口pretrained ONNX网络附加选项指定一个或多个名称参数。例如,OutputLayerType =“分类”网络作为一个进口DAGNetwork对象与一个分类输出层附加到年底导入的网络体系结构的第一个输出分支。

例子

全部折叠

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

类型importONNXNetwork在命令行中。

importONNXNetwork

如果深度学习工具箱转换器ONNX模型格式没有安装,那么函数提供了一个链接到需要在插件浏览器支持包。金宝app安装支持包,单击该链接,然后单金宝app击安装。检查安装成功导入网络的模型文件“simplenet.onnx”在命令行中。如果支持包安装金宝app,那么函数返回DAGNetwork对象。

modelfile =“simplenet.onnx”;净= importONNXNetwork (modelfile)
网= DAGNetwork属性:层:[9×1 nnet.cnn.layer.Layer]连接:[8×2表]InputNames: {“imageinput”} OutputNames: {“ClassificationLayer_softmax1002”}

绘制网络体系结构。

情节(净)

导入一个pretrained ONNX网络作为一个DAGNetwork对象,并使用进口网络分类图像。

生成一个ONNX模型squeezenet卷积神经网络。

squeezeNet = squeezeNet;exportONNXNetwork (squeezeNet“squeezeNet.onnx”);

指定类名。

一会= squeezeNet.Layers . class(结束);

导入pretrainedsqueezeNet.onnx模型,指定的类。默认情况下,importONNXNetwork网络作为一个进口DAGNetwork对象。

网= importONNXNetwork (“squeezeNet.onnx”、类=一会)
网= DAGNetwork属性:层:[70×1 nnet.cnn.layer.Layer]连接:[77×2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_prob”}

分析了进口网络。

analyzeNetwork(净)

读你想要的图像分类和显示图像的大小。384————512像素图像和有三个颜色通道(RGB)。

我= imread (“peppers.png”);大小(我)
ans =1×3384 512 3

调整图像的输入规模网络。显示图像。

I = imresize(我,(227 227));imshow(我)

使用进口网络分类的图像。

标签=分类(净,我)
标签=分类甜椒

导入一个pretrained ONNX网络作为一个dlnetwork对象,并使用进口网络分类图像。

生成一个ONNX模型squeezenet卷积神经网络。

squeezeNet = squeezeNet;exportONNXNetwork (squeezeNet“squeezeNet.onnx”);

指定类名。

一会= squeezeNet.Layers . class(结束);

导入pretrainedsqueezeNet.onnx模型作为dlnetwork对象。

网= importONNXNetwork (“squeezeNet.onnx”TargetNetwork =“dlnetwork”)
网= dlnetwork属性:层:[70×1 nnet.cnn.layer.Layer]连接:[77×2表]可学的:[52×3表)状态:[0×3表]InputNames:{“数据”}OutputNames: {“probOutput”}初始化:1

读你想要的图像分类和显示图像的大小。384————512像素图像和有三个颜色通道(RGB)。

我= imread (“peppers.png”);大小(我)
ans =1×3384 512 3

调整图像的输入规模网络。显示图像。

I = imresize(我,(227 227));imshow(我)

将图像转换为一个dlarray。格式的图像尺寸“SSCB”(空间、空间、通道、批)。在这种情况下,批量大小是1,你可以忽略它(“SSC”)。

I_dlarray = dlarray(单(我),“SSCB”);

样本图像进行分类,找到预测的标签。

概率=预测(净,I_dlarray);[~,标签]= max(概率);

显示分类的结果。

类名(标签)
ans =分类甜椒

导入一个pretrained ONNX网络作为一个DAGNetwork对象,并使用进口网络分类图像。进口网络包含ONNX运营商不支持转换成内置MATLAB层。金宝app软件自动生成自定义层当你进口这些操作符。

下面的例子使用了辅助函数findCustomLayers。查看这个函数的代码,看看Helper函数

指定模型文件导入shufflenet从ONNX模型与经营者设置9动物园。shufflenet是一个卷积神经网络,训练图像从ImageNet数据库超过一百万。因此,网络学习丰富广泛的图像特征表示。网络可以分类图像到1000年对象类别,如键盘,鼠标,铅笔,和许多动物。

modelfile =“shufflenet - 9. onnx”;

导入的类名squeezenet,这也是训练图像从ImageNet数据库。

squeezeNet = squeezeNet;一会= squeezeNet.Layers .ClassNames(结束);

进口shufflenet。默认情况下,importONNXNetwork网络作为一个进口DAGNetwork对象。如果进口网络包含ONNX运营商不支持转换成内置MATLAB层,金宝appimportONNXNetwork可以自动生成自定义层代替这些操作符。importONNXNetwork保存每个生成自定义一个单独的层。m文件包+ shufflenet_9在当前文件夹。通过使用名称-值参数指定包名PackageName

网= importONNXNetwork (modelfile,类=一会PackageName =“shufflenet_9”)
网= DAGNetwork属性:层:[173×1 nnet.cnn.layer.Layer]连接:[188×2表]InputNames: {“gpu_0_data_0”} OutputNames: {“ClassificationLayer_gpu_0_softmax_1”}

找到自动生成自定义的指标层使用helper函数findCustomLayers,并显示自定义层。

印第安纳州= findCustomLayers (net.Layers,' + shufflenet_9 ');net.Layers(印第安纳州)
ans = 16×1层与层:数组1 Reshape_To_ReshapeLayer1004 shufflenet_9。Reshape_To_ReshapeLayer1004 shufflenet_9。重塑_To_ReshapeLayer1004 2 'Reshape_To_ReshapeLayer1009' shufflenet_9.Reshape_To_ReshapeLayer1009 shufflenet_9.Reshape_To_ReshapeLayer1009 3 'Reshape_To_ReshapeLayer1014' shufflenet_9.Reshape_To_ReshapeLayer1014 shufflenet_9.Reshape_To_ReshapeLayer1014 4 'Reshape_To_ReshapeLayer1019' shufflenet_9.Reshape_To_ReshapeLayer1019 shufflenet_9.Reshape_To_ReshapeLayer1019 5 'Reshape_To_ReshapeLayer1024' shufflenet_9.Reshape_To_ReshapeLayer1024 shufflenet_9.Reshape_To_ReshapeLayer1024 6 'Reshape_To_ReshapeLayer1029' shufflenet_9.Reshape_To_ReshapeLayer1029 shufflenet_9.Reshape_To_ReshapeLayer1029 7 'Reshape_To_ReshapeLayer1034' shufflenet_9.Reshape_To_ReshapeLayer1034 shufflenet_9.Reshape_To_ReshapeLayer1034 8 'Reshape_To_ReshapeLayer1039' shufflenet_9.Reshape_To_ReshapeLayer1039 shufflenet_9.Reshape_To_ReshapeLayer1039 9 'Reshape_To_ReshapeLayer1044' shufflenet_9.Reshape_To_ReshapeLayer1044 shufflenet_9.Reshape_To_ReshapeLayer1044 10 'Reshape_To_ReshapeLayer1049' shufflenet_9.Reshape_To_ReshapeLayer1049 shufflenet_9.Reshape_To_ReshapeLayer1049 11 'Reshape_To_ReshapeLayer1054' shufflenet_9.Reshape_To_ReshapeLayer1054 shufflenet_9.Reshape_To_ReshapeLayer1054 12 'Reshape_To_ReshapeLayer1059' shufflenet_9.Reshape_To_ReshapeLayer1059 shufflenet_9.Reshape_To_ReshapeLayer1059 13 'Reshape_To_ReshapeLayer1064' shufflenet_9.Reshape_To_ReshapeLayer1064 shufflenet_9.Reshape_To_ReshapeLayer1064 14 'Reshape_To_ReshapeLayer1069' shufflenet_9.Reshape_To_ReshapeLayer1069 shufflenet_9.Reshape_To_ReshapeLayer1069 15 'Reshape_To_ReshapeLayer1074' shufflenet_9.Reshape_To_ReshapeLayer1074 shufflenet_9.Reshape_To_ReshapeLayer1074 16 'Reshape_To_ReshapeLayer1079' shufflenet_9.Reshape_To_ReshapeLayer1079 shufflenet_9.Reshape_To_ReshapeLayer1079

读你想要的图像分类和显示图像的大小。792————1056像素图像和有三个颜色通道(RGB)。

我= imread (“peacock.jpg”);大小(我)
ans =1×3792 1056 3

调整图像的输入规模网络。显示图像。

I = imresize(我,(224 224));imshow(我)

的输入shufflenet需要进一步的预处理(详情,请参阅ShuffleNet ONNX模型动物园)。重新调节图像。标准化图像减去训练图像的均值和除以标准差的训练图像。

I =重新调节(0,1);meanIm = (0.485 0.456 0.406);stdIm = (0.229 0.224 0.225);我= (I -重塑(meanIm [1 1 3]))。/重塑(stdIm [1 1 3]);imshow(我)

使用进口网络分类的图像。

标签=分类(净,我)
标签=分类孔雀

Helper函数

本节提供的代码辅助功能findCustomLayers在这个例子中使用。findCustomLayers返回指数自定义层importONNXNetwork自动生成。

函数指数= findCustomLayers(层,PackageName) s = ([‘。’PackageName]);指数= 0(1、长度(小);i = 1:长度(层)j = 1:长度(小)如果strcmpi(类(层(i)), [PackageName(2:结束)“。”s.m {j} (1: end-2)])指数(j) =我;结束结束结束结束

导入一个ONNX多重输出的网络DAGNetwork对象。

指定ONNX模型文件和导入pretrained ONNX模型。默认情况下,importONNXNetwork网络作为一个进口DAGNetwork对象。

modelfile =“digitsMIMO.onnx”;净= importONNXNetwork (modelfile)
网= DAGNetwork属性:层:[19×1 nnet.cnn.layer.Layer]连接:[19×2表]InputNames:{“输入”}OutputNames: {“ClassificationLayer_sm_1”“RegressionLayer_fc_1_Flatten”}

网络有两个输出层:一个分类层(ClassificationLayer_sm_1)对数字进行分类和回归层(RegressionLayer_fc_1_Flatten)计算均方误差的角度预测数字。绘制网络体系结构。

情节(净)标题(“digitsMIMO网络体系结构”)

使用进口网络做出预测,使用预测功能和设置ReturnCategorical选项真正的

输入参数

全部折叠

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

例子:“cifarResNet.onnx”

名称-值参数

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

例子:importONNXNetwork (modelfile TargetNetwork =“dagnetwork GenerateCustomLayers = true, PackageName =“CustomLayers”)进口的网络modelfile作为一个DAGNetwork对象和保存自动生成自定义层的包+ CustomLayers在当前文件夹。

选择自定义层生成、指定为一个数字或逻辑1(真正的)或0()。如果你设置GenerateCustomLayers真正的,importONNXNetwork试图生成一个自定义层当软件不能ONNX经营者转化为一个等价的内置MATLAB层。importONNXNetwork保存每个生成自定义一个单独的层。m文件中+PackageName。查看或编辑自定义图层,打开相关。m文件。自定义层的更多信息,见深度学习自定义层

例子:GenerateCustomLayers = false

的包的名称importONNXNetwork保存自定义图层,指定为一个特征向量或字符串标量。importONNXNetwork保存自定义层包+PackageName在当前文件夹。如果你不指定PackageName,然后importONNXNetwork保存自定义层包命名+modelfile在当前文件夹。关于包的更多信息,请参阅包创建名称空间

例子:PackageName = " shufflenet_9 "

例子:PackageName = " CustomLayers "

深度学习工具箱网络的目标类型,指定为“dagnetwork”“dlnetwork”。这个函数importONNXNetwork进口网络作为一个DAGNetworkdlnetwork对象。

  • 如果你导入网络DAGNetwork对象,必须包括输入和输出层ONNX指定的模型或您指定使用名称-值的参数InputDataFormats,OutputDataFormats,或OutputLayerType

  • 如果你导入网络dlnetwork对象,importONNXNetwork附加一个CustomOutputLayer在每个输出的分支,可能会附加一个CustomInputLayer在一个输入分支的开始。函数附加一个CustomInputLayer如果输入的数据格式或输入图像的大小是未知的。网络特殊信息这些层的数据格式,看到的属性CustomInputLayerCustomOutputLayer对象。关于如何解释深度学习工具箱的信息输入和输出数据格式,看看张量ONNX输入和输出转化为内置MATLAB层

例子:TargetNetwork = " dlnetwork "

指定的网络输入数据格式作为特征向量,标量字符串或字符串数组。importONNXNetwork试图解释从ONNX文件输入数据格式。名称-值参数InputDataFormats是有用的,当importONNXNetwork不能获得输入数据格式。

InputDataFomats的数据格式的订购ONNX输入张量。例如,如果您指定InputDataFormats作为“BSSC”导入的网络有一个imageInputLayer输入。更多的信息importONNXNetwork解释的数据格式ONNX输入张量和如何指定InputDataFormats对于输入层不同深度学习工具箱,明白了张量ONNX输入和输出转化为内置MATLAB层

如果你指定一个空的数据格式([]”“),importONNXNetwork自动对输入数据的格式。

例子:InputDataFormats = ' BSSC '

例子:InputDataFormats = " BSSC "

例子:InputDataFormats = [" bcs”、“”、“公元前”)

例子:InputDataFormats = {bcs,[],“公元前”}

数据类型:字符|字符串|细胞

网络的数据格式输出,指定为一个特征向量,标量字符串或字符串数组。importONNXNetwork试图解释从ONNX文件数据格式的输出。名称-值参数OutputDataFormats是有用的,当importONNXNetwork不能得到输出数据格式。

OutputDataFormats的数据格式的订购ONNX张量的输出。例如,如果您指定OutputDataFormats作为“公元前”导入的网络有一个classificationLayer输出。更多的信息importONNXNetwork张量解释ONNX输出的数据格式以及如何指定OutputDataFormats对不同深度学习工具箱输出层,明白了张量ONNX输入和输出转化为内置MATLAB层

如果你指定一个空的数据格式([]”“),importONNXNetwork自动解释输出数据格式。

例子:公元前OutputDataFormats = ' '

例子:OutputDataFormats =“公元前”

例子:OutputDataFormats = [" bcs”、“”、“公元前”)

例子:OutputDataFormats = {bcs,[],“公元前”}

数据类型:字符|字符串|细胞

输入图像的大小第一网络输入指定为一个向量的三个或四个数值对应(高度、宽度、渠道)对二维图像和(高度、宽度、深度、渠道)3 d图像。网络使用这些信息只有当ONNX模型modelfile没有指定输入的大小。

例子:ImageInputSize = [28 28 1]二维灰度输入图像

例子:ImageInputSize = [224 224 3]对于一个二维彩色输入图像

例子:ImageInputSize = [28 28 36 3]三维彩色输入图像

第一网络输出层类型,指定为“分类”,“回归”,或“pixelclassification”。这个函数importONNXNetwork附加一个ClassificationOutputLayer,RegressionOutputLayer,或pixelClassificationLayer(计算机视觉工具箱)对象的导入的网络体系结构的第一个输出分支。附加一个pixelClassificationLayer(计算机视觉工具箱)计算机视觉对象需要工具箱™。如果ONNX模型modelfile指定输出层类型或您指定TargetNetwork作为“dlnetwork”,importONNXNetwork忽略了名称-值参数OutputLayerType

例子:OutputLayerType = "回归"

类第一网络输出层的输出,指定为一个分类向量,字符串数组,单元阵列的特征向量,或“汽车”。如果“汽车”,然后importONNXNetwork设置类分类(1:N),在那里N类的数量。如果您指定一个字符串数组或单元阵列的特征向量str,然后importONNXNetwork设置输出层的类分类(str, str)。如果您指定TargetNetwork作为“dlnetwork”,importONNXNetwork忽略了名称-值参数

例子:类= {' 0 ',' 1 ',' 3 '}

例子:类=分类({‘狗’,‘猫’})

数据类型:字符|分类|字符串|细胞

常数合并优化,指定为“深度”,“浅”,或“没有”。常数合并优化导入网络体系结构通过计算操作ONNX初始化(最初的常量值)在转换ONNX运营商当量内置MATLAB层。

如果ONNX网络包含运营商的软件不能转换为等价的内置MATLAB层(见ONNX运营商支持转换成内置M金宝appATLAB层),常数合并优化可以减少支持层。金宝app当您设置FoldConstants“深度”,网络具有相同或更少的支持层,而当你设定的参数金宝app“浅”。然而,网络导入时间可能会增加。集FoldConstants“没有”禁用网络体系结构的优化。

如果网络仍然包含支持层常数合并优化后,金宝appimportONNXNetwork返回一个错误。在本例中,您可以导入网络使用importONNXLayersimportONNXFunction。有关更多信息,请参见选择功能

例子:FoldConstants = "浅"

输出参数

全部折叠

Pretrained ONNX网络,作为一个返回DAGNetworkdlnetwork对象。

  • 指定TargetNetwork作为“dagnetwork”导入网络DAGNetwork对象。在DAGNetwork对象,然后预测类标签使用分类函数。

  • 指定TargetNetwork作为“dlnetwork”导入网络dlnetwork对象。在dlnetwork对象,然后预测类标签使用预测函数。指定输入数据dlarray使用正确的数据格式(有关更多信息,请参见fmt的观点dlarray)。

限制

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

    • 函数支持ONNX vers金宝appion 7的中间表示。

    • 函数支持ONNX算子集6 金宝app- 14所示。

请注意

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

更多关于

全部折叠

ONNX运营商支持转换成内置金宝appMATLAB

importONNXNetwork金宝app支持以下ONNX运营商转换成内置MATLAB层,有一些局限性。

ONNX运营商 深度学习工具箱层

添加

additionLayernnet.onnx.layer.ElementwiseAffineLayer

AveragePool

averagePooling1dLayeraveragePooling2dLayer

BatchNormalization

batchNormalizationLayer

Concat

concatenationLayer

常数

没有一个权重(进口)

Conv*

convolution1dLayerconvolution2dLayer

ConvTranspose

transposedConv2dLayer

辍学

dropoutLayer

Elu

eluLayer

Gemm

fullyConnectedLayer如果ONNX网络是周期性的,否则nnet.onnx.layer.FlattenLayer紧随其后的是convolution2dLayer

GlobalAveragePool

globalAveragePooling1dLayerglobalAveragePooling2dLayer

GlobalMaxPool

globalMaxPooling1dLayerglobalMaxPooling2dLayer

格勒乌

gruLayer

InstanceNormalization

groupNormalizationLayernumGroups指定为“channel-wise”

LeakyRelu

leakyReluLayer

LRN

CrossChannelNormalizationLayer

LSTM

lstmLayerbilstmLayer

MatMul

fullyConnectedLayer如果ONNX网络是周期性的,否则convolution2dLayer

MaxPool

maxPooling1dLayermaxPooling2dLayer

Mul

multiplicationLayer

线性整流函数(Rectified Linear Unit)

reluLayerclippedReluLayer

乙状结肠

sigmoidLayer

Softmax

softmaxLayer

总和

additionLayer

双曲正切

tanhLayer

*如果importONNXNetwork进口的ConvONNX运营商作为convolution2dLayerConv操作符是一个矢量,只有两个元素(p1, p2),importONNXNetwork设置填充选择convolution2dLayer(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

ImageScaler

nnet.onnx.layer.ElementwiseAffineLayer

PRelu

nnet.onnx.layer.PReluLayer

重塑

nnet.onnx.layer.FlattenLayer

nnet.onnx.layer.ElementwiseAffineLayer
ONNX运营商 图像处理工具箱™
DepthToSpace depthToSpace2dLayer(图像处理工具箱)
调整 resize2dLayer(图像处理工具箱)resize3dLayer(图像处理工具箱)
SpaceToDepth spaceToDepthLayer(图像处理工具箱)
Upsample resize2dLayer(图像处理工具箱)resize3dLayer(图像处理工具箱)

转换ONNX输入和输出内置的张量MATLAB

importONNXNetwork试图解释ONNX网络的输入和输出的数据格式张量,然后将其转换为内置MATLAB输入和输出层。详细的解释,请参见表张量ONNX输入转化为深度学习工具箱层张量ONNX输出转化为MATLAB层

在深度学习工具箱中,每个数据格式字符必须这些标签之一:

  • 年代——空间

  • C——频道

  • B——批观测

  • T——时间和顺序

  • U——未指明的

转换ONNX张量输入深度学习工具箱

数据格式 资料解释 深度学习工具箱层
ONNX输入张量 MATLAB输入格式 形状 类型
公元前 CB c——- - - - - -n数组,c的特性和数量吗n是观测的数量吗 特性 featureInputLayer
bcs,BSSC,CSS,SSC SSCB

h——- - - - - -w——- - - - - -c——- - - - - -n数字数组,h,w,cn的高度、宽度、通道的图像,和数量的观测,分别吗

二维图像 imageInputLayer
BCSSS,BSSSC,包括,SSSC SSSCB

h——- - - - - -w——- - - - - -d——- - - - - -c数字数组,h,w,d,cn高度、宽度、深度、数量的通道的图像,和数字图像的观察,分别吗

三维图像 image3dInputLayer
时间待定 认知行为治疗

c——- - - - - -年代——- - - - - -n矩阵,c的数量的特征序列,年代是序列长度,n观测序列的数量吗

向量序列 sequenceInputLayer
涂层 SSCBT

h——- - - - - -w——- - - - - -c——- - - - - -年代——- - - - - -n数组,h,w,cn对应的高度、宽度和通道图像的数量,分别年代是序列长度,n是图像序列观测的数量吗

二维图像序列 sequenceInputLayer
TBCSSS SSSCBT

h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代——- - - - - -n数组,h,w,d,c对应的高度、宽度、深度和通道图像的数量,分别年代是序列长度,n是图像序列观测的数量吗

三维图像序列 sequenceInputLayer

转换ONNX张量输出到MATLAB

数据格式 MATLAB层
ONNX输出张量 MATLAB输出格式
公元前,时间待定 CB,认知行为治疗 classificationLayer
bcs,BSSC,CSS,SSC,BCSSS,BSSSC,包括,SSSC SSCB,SSSCB pixelClassificationLayer(计算机视觉工具箱)
涂层,TBCSSS SSCBT,SSSCBT regressionLayer

对进口网络的生成代码

您可以使用MATLAB编码器™或GPU编码器™一起深度学习工具箱生成墨西哥人,独立的CPU, CUDA®墨西哥人,或独立的CUDA代码导入网络。有关更多信息,请参见深度学习代码生成

  • 使用MATLAB编码器与深度学习工具箱生成墨西哥人或独立的CPU的代码运行在桌面或嵌入式目标。您可以部署生成独立的代码,使用了英特尔®MKL-DNN库或手臂®计算库。或者,您可以生成通用的C或c++代码不调用第三方库函数。有关更多信息,请参见深度学习与MATLAB编码器(MATLAB编码器)

  • 使用GPU与深度学习工具箱编码器生成CUDA墨西哥人或独立的CUDA的代码运行在桌面或嵌入式目标。您可以部署生成独立的CUDA的代码使用CUDA深层神经网络库(cuDNN)的TensorRT™高性能推理库,或手臂计算库马里GPU。有关更多信息,请参见深度学习GPU编码器(GPU编码器)

importONNXNetwork返回网络作为一个DAGNetworkdlnetwork对象。这两个对象支持代码生成。金宝app的更多信息MATLAB编码器和GPU编码器支持深度学习工金宝app具箱对象,明白了金宝app支持类(MATLAB编码器)金宝app支持类(GPU编码器),分别。

您可以生成代码的任何进口网络层支持代码生成。金宝app层支持代码生成的列表金宝appMATLAB编码器和GPU编码器,看到金宝app支持层(MATLAB编码器)金宝app支持层(GPU编码器),分别。更多信息在每一个内置的代码生成功能和限制MATLAB层,请参见扩展功能部分的层。例如,请参见代码生成GPU的代码生成imageInputLayer

在GPU上使用进口网络

importONNXNetwork不执行GPU。然而,importONNXNetwork进口pretrained深度学习的神经网络DAGNetworkdlnetwork对象,您可以使用GPU。

  • 如果你导入网络DAGNetwork对象,您可以做出预测与进口网络使用一个CPU或GPU分类。使用名称-值参数指定的硬件需求ExecutionEnvironment。对于多个输出的网络,使用预测函数DAGNetwork对象。

  • 如果你导入网络DAGNetwork对象,您可以做出预测与进口网络使用一个CPU或GPU预测。使用名称-值参数指定的硬件需求ExecutionEnvironment。如果网络有多个输出,指定名称的论点ReturnCategorical作为真正的

  • 如果你导入网络dlnetwork对象,您可以做出预测与进口网络使用一个CPU或GPU预测。这个函数预测在GPU上执行如果输入数据或网络参数存储在GPU上。

    • 如果你使用minibatchqueue输入数据的处理和管理mini-batches,minibatchqueue对象将输出转换为GPU数组默认情况下如果GPU可用。

    • 使用dlupdate转换的可学的参数dlnetworkGPU数组对象。

      净= dlupdate (@gpuArray,净)

  • 你可以训练进口网络使用一个CPU或GPUtrainNetwork。指定训练选项,包括选项执行环境,使用trainingOptions函数。使用名称-值参数指定的硬件需求ExecutionEnvironment。如何加快培训更多的信息,请参阅并行扩展深度学习,在gpu上,在云端

使用GPU需要并行计算工具箱™和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)

提示

  • 使用pretrained网络预测或转让学习新的图片,你必须进行预处理图像以同样的方式用于火车导入模型的图像预处理。最常见的预处理步骤调整图片大小,图像减去平均值,并从BGR图像RGB图像转换。

    • 调整图像,使用imresize。例如,[3]227227年imresize(图片)

    • 将图像从RGB到BGR格式,使用翻转。例如,翻转(图片3)

    更多信息预处理图像进行训练和预测,明白了预处理图像深度学习

  • MATLAB使用集中的索引,而Python®使用从零开始的索引。换句话说,在数组第一个元素的索引1和0在MATLAB和Python,分别。MATLAB索引的更多信息,请参阅数组索引。在MATLAB中,使用数组索引(印第安纳州)在Python中,创建数组转换为印第安纳州+ 1

选择功能

深度学习工具箱ONNX模型格式转换器提供了三个函数导入pretrained ONNX网络:importONNXNetwork,importONNXLayers,importONNXFunction

如果导入网络包含一个ONNX运营商不支持转换成一个内置的MATLAB层(见金宝appONNX运营商支持转换成内置M金宝appATLAB层),importONNXNetwork不生成一个自定义层呢importONNXNetwork返回一个错误。在这种情况下,您仍然可以使用importONNXLayers导入网络体系结构和权重importONNXFunction网络作为一个导入ONNXParameters对象和函数模型。

更多信息的导入功能最适合不同的场景,看到的选择要导入的函数ONNX Pretrained网络

引用

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

[2]ONNXhttps://onnx.ai/

版本历史

介绍了R2018a

全部展开

错误从R2021b

行为改变R2021b

行为改变R2021b