主要内容

importONNXFunction

导入预训练的ONNX网络作为函数

    描述

    例子

    参数个数=importonxfunction(modelfile网络函数名导入一个ONNX™ (开放式神经网络交换)网络文件modelfile并返回一个ONNXParameters对象(参数个数),包含网络参数。该函数还创建一个模型函数,其名称为网络函数名包含网络体系结构的。有关网络功能的更多信息,请参阅导入的ONNX模型函数

    使用ONNXParameters对象和对象网络函数名模型函数执行常见的深度学习任务,如图像和序列数据分类、迁移学习、目标检测和图像分割。importONNXFunction当您无法使用该网络时导入网络时很有用importonnxnetwork.函数(例如,importONNXFunction可以导入YOLOv3),或者如果您想定义自己的自定义培训循环(有关更多详细信息,请参阅使用自定义训练循环的训练网络).

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

    例子

    全部折叠

    导入ONNX网络作为函数。该网络包含深度学习工具箱层不支持的ONNX操作符。金宝app您可以将导入的模型函数用于深度学习任务,如预测和迁移学习。

    下载并安装ONNX模型格式支持包的深入学习工具箱转换器。您可以输入金宝appimportONNXFunction在命令行中检查支持包是否已安装。金宝app如果没有安装,则该函数将提供到Add-On Explorer中所需的支持包的链接。金宝app要安装支持包,请单击链接,然后金宝app单击安装

    指定要导入的文件为shufflenet使用ONNX模型动物园中的操作符设置9。shufflenet是一种卷积神经网络,可在ImageNet数据库中培训。

    模型文件=“shufflenet-9.onnx”

    推荐的做法是尝试通过使用importonnxnetwork..如果importonnxnetwork.无法导入网络,因为某些网络层不受支持,您可以使用将网络作为层导入金宝app重要人物,或作为一个函数使用importONNXFunction

    导入shufflenet网络层。该软件生成占位符层来代替不支持的层。金宝app

    lgraph = importONNXLayers (modelfile,“OutputLayerType”'分类');
    警告:无法导入一些ONNX运算符,因为它们不受支持。金宝app他们已被占位符层所取代。要查找这些图层,请在返回的对象上调用FindPlaceHolderLayers。4运算符:ONNX文件中的平均池池层不包括平均填充。这可能会在ONNX和MATLAB网络输出之间造成小的数值差异。32个操作员:只有在执行平整操作时才支持重塑操作符。金宝app16运算符:不支持操作员“转置”。金宝app将ONNX网络作为函数导入,可以支持大多数ONNX运算符,调用importonnxfunction。金宝app

    查找占位符层并显示占位符层的数量。

    indPlaceholderLayers = findPlaceholderLayers (lgraph);元素个数(indPlaceholderLayers)
    ans = 48

    必须替换要使用的48个占位符层LGRAPH.用于深度学习任务,如预测。

    相反,将网络作为函数导入,以生成一个模型函数,您可以轻松地将其用于深度学习任务。

    params = importONNXFunction (modelfile,'shufflenetfcn'
    一个包含导入的ONNX网络的函数'shufflenetFcn'已经保存到当前目录。要学习如何使用这个函数,输入:help shufflenetFcn
    params = ONNXParameters with properties: Learnables: [1×1 struct] Nonlearnables: [1×1 struct] State: [1×1 struct] NumDimensions: [1×1 struct] NetworkFunctionName: 'shufflenetFcn'

    importONNXFunction返回ONNXParameters对象参数个数,包含网络参数和模型函数shufflnetFcn,其中包含网络体系结构。importONNXFunction节省了Shufflenetfcn.在当前文件夹中。使用命令可以打开模型函数查看或编辑网络架构打开shufflenetFcn

    导入一个ONNX网络作为函数,使用预先训练好的网络来预测输入图像的类标签。

    指定要导入的文件为shufflenet使用ONNX模型动物园中的操作符设置9。shufflenet是一个卷积神经网络,训练了来自ImageNet数据库的100多万张图像。因此,该网络学习了丰富的特征表示范围广泛的图像。该网络可以将图像分为1000个对象类别,如键盘、鼠标、铅笔和许多动物。

    模型文件=“shufflenet-9.onnx”

    使用导入预训练的ONNX网络作为函数importONNXFunction,它返回ONNXParameters对象参数个数.此对象包含网络参数。该函数还在包含网络架构的当前文件夹中创建了一个新的模型函数。指定模型函数的名称Shufflenetfcn.

    params = importONNXFunction (modelfile,'shufflenetfcn');
    已将包含导入的ONNX网络的函数保存到shuffle .m文件中。要学习如何使用这个函数,输入:help shufflenetFcn。

    阅读你想分类的图像,并显示图像的大小。图像是792 × 1056像素,有三个颜色通道(RGB)。

    I=imread('孔雀.jpg'); 尺寸(I)
    ans =1×3.792 1056 3

    将图像调整为网络的输入大小。显示图像。

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

    输入到shufflenet需要进一步的预处理(有关更多详细信息,请参阅ONNX模型动物园中的ShuffleNet).重新调节图像。对图像进行归一化,方法是减去训练图像的均值并除以训练图像的标准差。

    I=重新缩放(I,0,1);平均值=[0.485 0.456 0.406];标准差分=[0.229 0.224 0.225];I=(I-重塑(平均值,[1-13])。/重塑(标准差分,[1-13]);显示(I)

    从其中导入类名挤压网,它也使用来自ImageNet数据库的图像进行训练。

    网= squeezenet;一会= net.Layers .ClassNames(结束);

    通过指定要分类的图像来计算类概率ONNXParameters对象参数个数作为模型函数的输入参数Shufflenetfcn.

    分数=fcn(I,参数);

    找到概率最高的类索引。显示输入图像的预测类和相应的分类得分。

    indMax =找到(分数= = max(分数));类名(indMax)
    ans =1×1单元阵列{'孔雀'}
    scoreMax =分数(indMax)
    scoreMax = 0.7517

    导入挤压网将卷积神经网络作为函数,用迁移学习对预先训练好的网络进行微调,对新的图像集合进行分类。

    这个例子使用了几个辅助函数。要查看这些函数的代码,请参见辅助函数

    解压缩并将新图像加载为图像数据存储。图像数据存储自动标签的图像基于文件夹名称和存储数据作为ImageDatastore对象。映像数据存储使您能够存储大图像数据,包括不适合内存的数据,并在卷积神经网络的训练期间有效地读取批次图像。指定迷你批次大小。

    解压缩(“MerchData.zip”);miniBatchSize = 8;imd = imageDatastore (“MerchData”...“IncludeSubfolders”,真的,...“LabelSource”'foldernames'...“ReadSize”, miniBatchSize);

    这个数据集很小,只包含75张训练图像。显示一些示例图像。

    numImages =元素个数(imds.Labels);idx = randperm (numImages 16);数字i = 1:16 subplot(4,4,i) i = readimage(imds,idx(i));imshow(我)结束

    提取训练集,对分类标签进行一次性编码。

    XTrain=readall(imds);XTrain=单个(类别(4,XTrain{:}));YTrain_categ=分类(imds.标签);YTrain=一个热编码(YTrain_categ,2)';

    确定数据中类的数量。

    类=类别(YTrain_categ);numClasses =元素个数(类)
    numClasses = 5

    挤压网是一个卷积神经网络,训练了来自ImageNet数据库的100多万张图像。因此,该网络学习了丰富的特征表示范围广泛的图像。该网络可以将图像分为1000个对象类别,如键盘、鼠标、铅笔和许多动物。

    进口净化挤压网网络是一种功能。

    println () params = importONNXFunction(“squeezenet.onnx”“squeezenetFcn”
    已将包含导入的ONNX网络的函数保存到文件squeezenetFcn.m中。要学习如何使用这个功能,输入:help squeezenetFcn。
    params=ONNXParameters,属性为:Learnables:[1×1结构]Nonlearnables:[1×1结构]状态:[1×1结构]NumDimensions:[1×1结构]网络函数名:'squeezenetFcn'

    参数个数是一个ONNXParameters对象,该对象包含网络参数。squeezenetFcn是一个包含网络架构的模型功能。importONNXFunction节省了squeezenetFcn在当前文件夹中。

    计算新训练集上预训练网络的分类精度。

    AccuracyBeforTraining=GetNetworkAccurance(XTrain、YTrain、params);fprintf(' %。2f accuracy before transfer learning\n',准确度(再培训前);
    0.01迁移学习前的准确度

    精度非常低。

    通过输入显示可学习的网络参数可学参数.这些参数,例如权重(W)及偏见(B)卷积和完全连接的图层,在培训期间由网络更新。在培训期间,非可爱参数保持不变。

    预训练网络的最后两个可学习参数配置为1000类。

    conv10_W:(1×1×512×1000 dlarray]

    conv10_B(1000×1 dlarray):

    参数conv10_Wconv10_B必须针对新的分类问题进行微调。通过初始化参数,将参数转换为对五个类进行分类。

    params.Learnables.conv10_w = rand(1,1,512,5);params.Learnables.conv10_b = rand(5,1);

    冻结网络的所有参数将它们转换为非可爱参数。因为您不需要计算冻结层的渐变,所以冻结许多初始层的重量可以显着加速网络训练。

    参数=冻结参数(参数,“所有”);

    解冻网络的最后两个参数,将其转换为可学习的参数。

    Params = Unfreezeparameters(Params,“conv10_W”);Params = Unfreezeparameters(Params,“conv10_B”);

    现在网络已经为培训做好了准备。初始化培训进度图。

    情节=“培训 - 进展”如果情节= =“培训 - 进展”figure lineLossTrain=animatedline;xlabel(“迭代”)ylabel(“损失”结束

    指定培训选项。

    速度= [];numEpochs = 5;miniBatchSize = 16;numObservations =大小(YTrain, 2);numIterationsPerEpoch =地板(numObservations. / miniBatchSize);initialLearnRate = 0.01;动量= 0.9;衰变= 0.01;

    培训网络。

    迭代=0;开始=tic;executionEnvironment=“cpu”%将“gpu”改为在gpu上训练。%循环纪元。epoch = 1:numepochs%洗牌数据。idx = randperm(numobservations);XTrain = XTrain(:,:,idx);YTrain = YTrain(:,IDX);%在小批量上循环。i = 1:numIterationsPerEpoch iteration = iteration + 1;%读取小批数据。idx=(i-1)*miniBatchSize+1:i*miniBatchSize;X=XTrain(:,:,:,idx);Y=YTrain(:,idx);%如果在GPU上进行训练,则将数据转换为gpuArray。如果(b)执行环境==“汽车”&& canUseGPU) || executionEnvironment ==“GPU”X = gpuArray (X);结束%使用dlfeval和dlfeval评估模型渐变和损失%模型梯度函数。[渐变,损失,状态] = DLFeval(@ Maposgradients,X,Y,Params);params.state =州;%确定基于时间的衰减学习率计划的学习率。learnRate=初始learnRate/(1+衰减*迭代);%使用SGDM优化器更新网络参数。(参数。可学的,速度]= sgdmupdate (params.Learnables、渐变速度);%显示训练进度。如果情节= =“培训 - 进展”D =持续时间(0,0,toc(开始),“格式”“hh: mm: ss”);添加点(lineLossTrain、迭代、双(聚集(提取数据(丢失)))标题(“时代:”+时代+”,过去:“+ drawnow字符串(D))结束结束结束

    微调后计算网络的分类准确性。

    accuracyAfterTraining = getNetworkAccuracy (XTrain、YTrain params);流(' %。2f accuracy after transfer learning\n', accuracyAfterTraining);
    迁移学习后的准确性

    辅助函数

    本节提供本示例中使用的helper函数的代码。

    getNetworkAccuracy函数通过计算分类精度来评估网络性能。

    函数= getNetworkAccuracy(X,Y,onnxParams) N = size(X,4);onnxParams Ypred = squeezenetFcn (X,“培训”、假);[~, YIdx] = max (Y, [], 1);[~, YpredIdx] = max (Ypred [], 1);numIncorrect = sum(abs(YIdx-YpredIdx) > 0); / /输出精度= 1 - numIncorrect/N;结束

    模型梯度函数计算损失和梯度。

    函数[grad, loss, state] = modelGradients(X,Y,onnxParams)“培训”,真正的);损失= crossentropy (y y“数据格式”'cb'); 梯度=dlgradient(损失,onnxParams.Learnables);结束

    squeezenetONNX的ONNX模型挤压网网络。

    函数挤压网络NX()导出网络NX(挤压网络,“squeezenet.onnx”);结束

    导入ONNX长短期记忆(LSTM)网络作为函数,使用预先训练好的网络对序列数据进行分类。LSTM网络允许您将序列数据输入到网络中,并根据序列数据的单个时间步长进行预测。

    这个例子使用了helper函数准备分子.要查看此函数的代码,请参见Helper函数

    lstmNet具有与中创建的LSTM网络类似的体系结构使用深度学习序列分类lstmNet训练识别说话人给定的时间序列数据,表示连续说出的两个日语元音。培训数据包含九位发言者的时间序列数据。每个序列有12个特征,长度各不相同。

    指定lstmNet作为模型文件。

    模型文件='lstmNet.onnx'

    使用导入预训练的ONNX网络作为函数importONNXFunction,它返回ONNXParameters对象参数个数包含网络参数。该函数还在包含网络架构的当前文件夹中创建了一个新的模型函数。指定模型函数的名称lstmnetfcn.

    params = importONNXFunction (modelfile,“lstmnetFcn”);
    已将包含导入的ONNX网络的函数保存到文件lstmnetFcn.m。要学习如何使用这个函数,输入:help lstmnetFcn。

    加载日语元音测试数据。XTest.是一个单元格数组,包含370个长度为12的序列。欧美为标签“1”,“2”,…“9”,对应9个发言者。

    [XTest,YTest]=日本世界统计数据;

    lstmNet使用序列长度相似的小批量进行训练。要以同样的方式组织测试数据,请按序列长度对测试数据进行排序。

    numObservationsTest=numel(XTest);i = 1:numobservationstest序列= xtest {i};SequenceLengdentStest(i)=大小(序列,2);结束[sequenceLengthsTest, idx] = (sequenceLengthsTest)进行排序;XTest = XTest (idx);欧美=欧美(idx);

    使用准备分子来计算排列向量inputPerm,将输入序列数据的维度顺序排列为导入的LSTM网络输入的维度顺序。你可以打字帮助lstmnetFcn查看网络输入的维度顺序序列输入

    inputPerm = preparePermutationVector ([“特征长度”“SequenceLength”“批量化”],...“SequenceLength”“批量化”“特征长度”]);

    通过指定序列数据来分类来计算类概率XTest.ONNXParameters对象参数个数作为模型函数的输入参数lstmnetfcn..通过赋值数字向量自定义输入维度顺序inputPerm到名称值参数“InputDataPermutation”.返回得分在网络输出的维度排序中,通过指定“没有”到名称值参数“OutputDataPermutation”

    i = 1:length(XTest) scores = lstmnetFcn(XTest{i},params,“InputDataPermutation”,inputPerm,“OutputDataPermutation”“没有”);YPred(i)=查找(分数==最大分数);结束ypred =分类(ypred');

    计算预测的分类精度。

    acc=sum(YPred==YTest)。/numel(YTest)
    acc = 0.9514

    Helper函数

    本节提供帮助器函数的代码准备分子在这个例子中使用。

    准备分子函数返回一个排列向量,它在中排列维度顺序fromDimOrder到中的维度排序toDimOrder.您可以指定输入参数fromDimOrdertoDimOrder例如字符向量、字符串标量、字符串数组、字符向量的单元格数组或数字向量。两个参数必须具有相同的类型和相同的唯一元素。例如,如果fromDimOrder为字符向量“hwcn”toDimOrder可以是字符向量吗“nchw”(在哪里hw,c分别对应图像的高度、宽度和通道数量,和n为观测次数)。

    函数perm=preparePermutationVector(从DIMORDER到IMORDER)%检查fromDimOrder和toDimOrder是否都是向量。如果~isvector(fromDimOrder) || ~isvector(toDimOrder) error(message()“nnet_cnn_onnx: onnx: FPVtypes”));结束%从dimorder和toDimOrder转换为适当的类型。如果Isstring(fromDimorder)&& iscoalar(fromdimorder)fromdimorder = char(fromdimorder);结束如果isstring(toDimOrder) && isscalar(toDimOrder) toDimOrder = char(toDimOrder);结束%检查vervimorder和todimorder是否具有唯一的元素。[fromSorted,ifrom]=唯一(fromDimOrder);[toSorted,~,Itoiv]=唯一(toDimOrder);如果numel(fromDimOrder) ~= numel(fromDimOrder) error(message())'nnet_cnn_onnx:onnx:fpvfromunique'));结束如果numel(toDimOrder) ~= numel(toDimOrder) error(message())“nnet_cnn_onnx: onnx: FPVtounique”));结束%检查fromDimOrder和toDimOrder的元素数是否相同。如果~isequal(从排序到排序)错误(消息(“nnet_cnn_onnx: onnx: FPVsame”));结束计算排列向量。ifrom烫= (iToInv);烫=烫发(:)”;结束

    输入参数

    全部折叠

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

    例子:“shufflenet.onnx”

    模型函数的名称,指定为字符向量或字符串标量。功能网络函数名包含导入的ONNX网络的体系结构。该文件保存在当前文件夹中的M文件中,或者您必须包含文件的完整或相对路径。的网络函数名文件是使用网络所必需的。有关更多信息,请参见导入的ONNX模型函数

    例子:'shufflenetfcn'

    输出参数

    全部折叠

    网络参数,作为ONNXParameters对象。参数个数包含导入的ONNX模型的网络参数。使用点表示法引用的属性参数个数.例如,可学参数显示网络可学习参数,如卷积层的权重。

    限制

    • importONNXFunction金宝app支持这些ONNX版本:

      • ONNX中间表示版本6

      • ONNX操作符将7设置为13

    更多关于

    全部折叠

    进口ONNX模型函数

    importONNXFunction创建一个模型函数,该函数包含导入的ONNX模型的网络架构。指定名称网络函数名作为一个输入论点importONNXFunction

    语法

    使用以下语法与导入的ONNX模型函数(网络函数名):

    • [Y,状态]= NetworkFunctionName (X,参数个数返回输出数据Y以及更新后的网络状态输入数据X

    • [Y,状态]= NetworkFunctionName (X,参数个数,名称,值)使用由一个或多个名称-值对参数指定的附加选项。

    • (Y1, Y2,…,Yn,状态] = NetworkFunctionName(X1,X2,...,Xn,参数个数返回多个输出数据(Y1, Y2,…,Yn)和更新的网络状态对于多个输入数据(X1, X2,…,Xn).

    • (Y1, Y2,…,Yn,状态] = NetworkFunctionName(X1,X2,...,Xn,参数个数,名称,值)使用一个或多个名称 - 值对参数指定的其他选项进行多个输入和输出。

    输入参数
    论点 描述
    X 输入数据,指定为数组或dlarray
    参数个数 网络参数,指定为ONNXParameters对象。
    名称-值对的观点
    参数名称 描述
    “培训”

    培训选项,指定为“假”(默认)或“真正的”

    “InputDataPermutation”

    应用于输入维度排序的排列X,指定为“汽车”(默认),“没有”,数值向量或单元格数组。

    为名称-值对参数赋值“InputDataPermutation”将输入数据按导入的ONNX模型所需的维度顺序排列。

    • 赋值“汽车”根据对公共输入数据的假设应用自动排列X.有关详细信息,请参见自动输入数据排列

    • 赋值“没有”通过X按原来的顺序。

    • 指定一个数值向量值以自定义输入维度顺序;例如[4 3 1 2].例如,请参见使用导入的ONNX函数进行序列分类

    • 为多个输入分配单元格数组值;例如,{(3 2 1),“没有一个”}

    “OutputDataPermutation”

    用于输出维数排序的排列Y,指定为“汽车”(默认),“没有”,数值向量或单元格数组。

    为名称-值对参数赋值“OutputDataPermutation”以匹配导入的ONNX模型的维度顺序。

    • 赋值“汽车”返回Y在深度学习工具箱排序。有关详细信息,请参见自动输出数据排列

    • 赋值“没有”返回Y在ONNX排序中。有关示例,请参阅使用导入的ONNX函数进行序列分类

    • 分配数字矢量值以自定义输出维度排序;例如,[3 4 2 1]

    • 为多个输出分配一个单元数组值;例如{(3 2 1),“没有一个”}

    输出参数
    论点 描述
    Y

    输出数据,作为数组返回dlarray

    • 如果X是数组还是你用的onnx函数预测,Y是一个数组。

    • 如果X是一个dlarray或者你用onnx函数的培训,Y是一个dlarray

    状态

    更新的网络状态,指定为结构。

    网络状态包含网络在迭代之间记住并跨多个培训批次更新的信息。

    输入论元的解释X和输出参数Y模型之间可能有所不同。有关模型输入和输出参数的更多信息,请参阅帮助用于导入的模型函数网络函数名,或参考ONNX文档[1]

    自动排列导入的模型功能

    默认情况下,网络函数名自动排列输入和输出数据,以便于执行图像分类任务。自动排列可能不适用于其他任务,如目标检测和时间序列分类。

    自动输入数据排列

    自动释放输入,网络函数名基于导入的Onnx网络指定的输入维度假设以下内容。

    ONNX模型输入尺寸的数量 输入数据的解释 ONNX标准尺寸排序 深度学习工具箱标准维度排序 输入的自动排列
    4 2-D图像

    NCHW

    HW,C分别对应图像的高度、宽度和通道数量,和N是观察数。

    HWCN

    HW,C分别对应图像的高度、宽度和通道数量,和N是观察数。

    [4 3 1 2]

    如果输入的尺寸不是4,网络函数名指定输入参数“InputDataPermutation”作为“没有”

    自动输出数据排列

    要自动排列输出,网络函数名基于导入的ONNX网络指定的输出维度,假设以下内容。

    ONNX模型输出尺寸的数量 输出数据的解释 ONNX标准尺寸排序 深度学习工具箱标准维度排序 输出自动排列
    2 二维图像分类分数

    NK

    K班级的数量是多少N是观察数。

    KN

    K班级的数量是多少N是观察数。

    [2 1]
    4 二维图像像素分类评分

    NKHW

    HW对应于图像的高度和宽度,K是班数,和N是观察数。

    HWKN

    HW对应于图像的高度和宽度,K是班数,和N是观察数。

    [3 4 2 1]

    如果输出尺寸的大小不是2或4,网络函数名指定输入参数“OutputDataPermutation”作为“没有”

    ONNX操作符importONNXFunction金宝app支持

    importONNXFunction金宝app支持以下ONNX运算符,但有一些限制。请将这些运算符与支持的运算符进行比较importonnxnetwork.重要人物用于转换成等效的内置MATLAB层。

    ONNX操作符金宝appimportONNXFunction importonnxnetwork.重要人物金宝app
    腹肌

    添加

    是的
    argmax.

    平均泡泡

    是的

    BatchNormalization

    是的
    铸造
    装天花板

    夹子

    是的
    压紧

    连接两个字符串

    是的

    持续的

    是的
    ConstantOfShape

    卷积和多项式相乘

    是的

    ConvTranspose

    是的
    DepthToSpace 是的

    Div

    是的

    辍学者

    是的
    相同的
    exp.
    扩张

    是的
    地板
    收集

    杰姆

    是的

    GlobalaveragePool.

    是的

    更大的

    是的
    Hardmax

    身份

    是的
    如果
    InstanceNormalization 是的

    LeakyRelu

    是的
    LessOrEqual
    日志
    循环

    LRN

    是的

    LSTM.

    是的

    MatMul

    是的

    maxpool.

    是的

    骡子

    是的
    负的
    非轴抑制
    非零
    OneHot
    或者

    普莱鲁

    是的
    RandomUniform
    范围
    互惠的
    ReduceMax
    ReduceMean
    reducemin
    还原柱
    重新介绍

    雷卢

    是的

    重塑

    是的
    调整 是的
    RoiAlign
    圆形的
    扫描
    分散
    ScatterElements
    SequenceAt
    形状

    sigmoid.

    是的

    Softmax

    是的
    SpaceToDepth 是的
    分裂
    劈裂
    √6
    挤压

    是的

    是的

    双曲正切

    是的
    瓷砖
    TopK
    转置
    Unsqueeze
    Upsample
    在哪里

    提示

    • 请参阅每个模型的ONNX文档,以查看所需的网络输入预处理调整大小),重新缩放,并将输入图像标准化为使用ImageNet DataSet培训的网络(例如AlexNet,Googlenet,Shuffleenet和Shueezenet)。

    选择功能

    importONNXFunction当无法使用导入预训练的ONNX网络时,此选项非常有用importonnxnetwork..如果您想为预先训练的网络生成代码,请使用重要人物.使用。查找并替换生成的占位符层findPlaceholderLayersreplaceLayer,分别。然后,用装配网络返回一个Dagnetwork.对象。你可以为训练有素的人生成代码Dagnetwork..有关最适合不同场景的导入函数的更多信息,请参见选择要导入Onnx预磨损网络的功能

    工具书类

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

    [2]ONNXhttps://onnx.ai/

    介绍了R2020b