深入学习网络定制培训循环
一个dlnetwork
对象支持自定义训练循环使用自动金宝app分化。
提示
对于大多数深度学习的任务,您可以使用一个pretrained网络和适应您自己的数据。为例展示如何使用转移学习再教育卷积神经网络分类一套新的图片,明白了火车深入学习网络对新图像进行分类。或者,您可以创建和培训网络从头开始使用layerGraph
的对象trainNetwork
和trainingOptions
功能。
如果trainingOptions
功能不提供训练选项,你需要你的任务,你可以创建一个自定义训练循环使用自动分化。欲了解更多,请看为自定义训练循环定义深度学习网络。
将在指定的网络层dlnet
= dlnetwork (层
)层
一个初始化dlnetwork
对象代表一个深层神经网络用于自定义训练循环。层
可以是一个LayerGraph
对象或一个层
数组中。层
必须包含一个输入层。
一个初始化dlnetwork
对象为培训做好准备。可学的参数和状态的值dlnet
与初始值初始化培训基于定义的输入规模网络输入层。
创建一个初始化dlnet
= dlnetwork (层
,dlX1,…, dlXn
)dlnetwork
对象使用示例输入dlX1,…, dlXn
。可学的参数和状态的值dlnet
与初始值初始化定义的基于输入的大小和格式输入示例。使用这个语法来创建一个初始化dlnetwork
输入不连接到输入层。
还设置了dlnet
= dlnetwork (___、“OutputNames”名称)OutputNames
财产使用任何以前的语法。的OutputNames
属性指定返回网络输出层。设置输出的名字,网络必须初始化。
层
- - - - - -网络层LayerGraph
对象|层
数组网络层,指定为一个LayerGraph
对象或作为一个层
数组中。
如果层
是一个层
数组,那么dlnetwork
功能连接层系列。
网络层必须不包含输出层。当训练网络,分别计算损失。
层支持的列表金宝appdlnetwork
,请参阅金宝app支持层。
dlX1,…, dlXn
- - - - - -例如网络输入dlarray
网络输入,指定为格式化dlarray
对象。软件通过网络传播示例的输入来确定适当的大小和格式的可学的和状态参数dlnetwork
。
输入必须格式化的例子dlarray
对象。当层
是一个层
数组,在相同的顺序提供示例输入层中出现要求输入层
数组中。当层
是一个LayerGraph
对象,提供示例输入层的顺序相同,需要输入中出现层
财产的LayerGraph
。
输入不支持当例子金宝app特遣部队
是假的。
特遣部队
- - - - - -国旗返回初始化dlnetwork
真正的
或1
(默认)|假
或0
国旗返回初始化dlnetwork
指定为一个数字或逻辑1
(真正的
)或0
(假
)。
如果特遣部队
是真正的
或1
,可学的状态参数dlnet
与初始值初始化培训,根据网络输入层或提供的示例输入。
如果特遣部队
是假的,可习得和状态参数没有初始化。使用未初始化网络之前,您必须首先初始化它使用初始化
函数。输入不支持当例子金宝app特遣部队
是假的。
层
- - - - - -网络层层
数组这个属性是只读的。
网络层,指定为一个层
数组中。
连接
- - - - - -层连接这个属性是只读的。
层连接,指定为一个表有两列。
每个表格行表示层的连接图。第一列,源
,指定每个连接的来源。第二列,目的地
,指定每个连接的目的地。连接源和目的地是层名称或形式“layerName / IOName”
,在那里“IOName”
层的名称输入或输出。
数据类型:表
可学的
- - - - - -网络可学的参数网络可学的参数,指定为一个表有三列:
层
——层名称指定为一个字符串标量。
参数
参数名称,指定为一个字符串标量。
价值
——指定为一个参数的值dlarray
对象。
网络可学的参数包含网络学习的特性。例如,卷积和完全连接层的权重。
数据类型:表
InputNames
- - - - - -网络输入层的名字这个属性是只读的。
网络输入层名称指定为一个单元阵列的特征向量。
数据类型:细胞
初始化
- - - - - -国旗为初始化网络0
(假)|1
(真正的)这个属性是只读的。
为初始化网络,指定为0
(虚假的)或1
(真正的)。
如果初始化
是0
(假),网络是没有初始化。必须初始化网络才能使用它。初始化网络使用初始化
函数。
如果初始化
是1
(真正的),初始化网络,可用于培训和推理。如果你改变可学的参数的值——例如,在训练的价值初始化
仍然是1
(真正的)。
数据类型:逻辑
预测 |
计算深度学习网络输出推理 |
向前 |
计算深度学习网络输出进行训练 |
初始化 |
可学的和状态参数进行初始化dlnetwork |
layerGraph |
图深度学习的网络层 |
setL2Factor |
L2的正则化因子层可学的参数设置 |
setLearnRateFactor |
学习速率因子层可学的参数设置 |
getLearnRateFactor |
得到学习速率因子层可学的参数 |
getL2Factor |
得到了L2正则化因子层可学的参数 |
dlnetwork
对象实现一个自定义您的网络培训循环,首先将它转换成一个dlnetwork
对象。不包括输出层dlnetwork
对象。相反,您必须指定自定义训练循环中损失函数。
加载一个pretrained GoogLeNet模型使用googlenet
函数。这个函数需要深度学习工具箱™模型GoogLeNet网络金宝app支持包。如果这种支持包没金宝app有安装,那么函数提供一个下载链接。
网= googlenet;
转换层的网络图和删除层用于分类使用removeLayers
。
lgraph = layerGraph(净);lgraph = removeLayers (lgraph, (“概率”“输出”]);
网络转换为一个dlnetwork
对象。
dlnet = dlnetwork (lgraph)
dlnet = dlnetwork属性:层:x1 nnet.cnn.layer.Layer[142]连接:[168 x2表]可学的:[116 x3表]状态:[0 x3表]InputNames:{“数据”}OutputNames: {“loss3-classifier”}初始化:1
dlnetwork
与无关的输入使用输入示例创建一个多输入dlnetwork
这是准备培训。软件通过网络传播示例的输入来确定适当的大小和格式的可学的和状态参数dlnetwork
。
定义网络体系结构。构建一个与两个分支网络。网络有两个输入,一个输入每个分支。连接分支使用附加层。
numFilters = 24;layersBranch1 = [convolution2dLayer (3、6 * numFilters,“填充”,“相同”,“步”2,“名字”,“conv1Branch1”)groupNormalizationLayer (所有渠道的)reluLayer convolution2dLayer (3 numFilters“填充”,“相同”)groupNormalizationLayer (“channel-wise”)additionLayer (2“名字”,“添加”)reluLayer fullyConnectedLayer (10) softmaxLayer];numFilters layersBranch2 = [convolution2dLayer (1,“名字”,“convBranch2”)groupNormalizationLayer (所有渠道的,“名字”,“gnBranch2”));lgraph = layerGraph (layersBranch1);lgraph = addLayers (lgraph layersBranch2);lgraph = connectLayers (lgraph,“gnBranch2”,“添加/ in2”);
创建示例网络相同大小的输入格式为典型的网络输入。为输入,使用批处理大小为32。使用一个输入的大小64 - - 64有三个渠道的输入层convBranch1
。使用一个输入的大小64 -通过与18 - 64的输入渠道输入层convBranch2
。
dlX1 = dlarray(兰德([64 64 3 32]),“SSCB”);dlX2 = dlarray(兰德([32 32 18 32]),“SSCB”);
创建dlnetwork。提供的输入无关层出现在相同的顺序层
lgraph的属性。
dlnet = dlnetwork (lgraph dlX1 dlX2);
检查网络初始化并准备培训。
dlnet.Initialized
ans =逻辑1
这个例子展示了如何训练网络,把手写的数字和一个定制的学习速率的时间表。
如果trainingOptions
不提供你需要的选项(例如,一个定制的学习速率的时间表),然后你可以定义自己的自定义训练循环使用自动分化。
这个例子列车网络分类手写数字的基于时间的衰减学习速率的时间表:对于每一次迭代,求解器使用的学习速率 ,在那里t是迭代数, 最初的学习速率,k是衰减的。
负荷训练数据
数字数据加载图像数据存储使用imageDatastore
功能和指定包含图像数据的文件夹。
dataFolder = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);imd = imageDatastore (dataFolder,…“IncludeSubfolders”,真的,…。“LabelSource”,“foldernames”);
分区数据为训练集和验证集。留出10%的验证使用的数据splitEachLabel
函数。
[imdsTrain, imdsValidation] = splitEachLabel (imd, 0.9,“随机”);
在这个例子中使用的网络28-by-28-by-1需要输入图像的大小。自动调整训练图像,使用一个增强图像数据存储。指定额外增加操作执行培训图片:随机翻译5像素的图像在水平和垂直轴。数据增加有助于防止网络过度拟合和记忆的训练图像的细节。
inputSize = [28 28 1];pixelRange = 5 [5];imageAugmenter = imageDataAugmenter (…“RandXTranslation”pixelRange,…“RandYTranslation”,pixelRange);augimdsTrain = augmentedImageDatastore (inputSize (1:2), imdsTrain,“DataAugmentation”,imageAugmenter);
自动调整验证图像不执行进一步的数据,使用一个增强的图像数据存储不指定任何额外的预处理操作。
augimdsValidation = augmentedImageDatastore (inputSize (1:2), imdsValidation);
确定训练数据的类的数量。
类=类别(imdsTrain.Labels);numClasses =元素个数(类);
定义网络
定义网络图像分类。
层= [imageInputLayer inputSize,“归一化”,“没有”,“名字”,“输入”20岁的)convolution2dLayer (5“名字”,“conv1”)batchNormalizationLayer (“名字”,“bn1”)reluLayer (“名字”,“relu1”20岁的)convolution2dLayer (3“填充”,“相同”,“名字”,“conv2”)batchNormalizationLayer (“名字”,“bn2”)reluLayer (“名字”,“relu2”20岁的)convolution2dLayer (3“填充”,“相同”,“名字”,“conv3”)batchNormalizationLayer (“名字”,“bn3”)reluLayer (“名字”,“relu3”)fullyConnectedLayer (numClasses“名字”,“俱乐部”)softmaxLayer (“名字”,“softmax”));lgraph = layerGraph(层);
创建一个dlnetwork
对象的层图。
dlnet = dlnetwork (lgraph)
dlnet = dlnetwork属性:层:[12×1 nnet.cnn.layer.Layer]连接:[11×2表]可学的:[14×3表]状态:[6×3表]InputNames:{“输入”}OutputNames: {“softmax”}
定义模型梯度函数
创建函数modelGradients
上市的例子,需要一个dlnetwork
对象,mini-batch输入数据与相应的标签和返回梯度的损失对网络中可学的参数和相应的损失。
指定培训选项
火车十世mini-batch大小为128。
numEpochs = 10;miniBatchSize = 128;
指定的选项个优化。指定一个初始学习衰变率0.01,0.01,0.9和动量。
initialLearnRate = 0.01;衰变= 0.01;动量= 0.9;
火车模型
创建一个minibatchqueue
对象流程和管理mini-batches图像在训练。为每个mini-batch:
使用自定义mini-batch预处理功能preprocessMiniBatch
(在这个例子中定义)转换编码的标签在一个炎热的变量。
格式的图像数据维度标签“SSCB”
(空间、空间、通道、批)。默认情况下,minibatchqueue
把数据转换为对象dlarray
对象与基本类型单
。不格式添加到类的标签。
火车在GPU如果一个是可用的。默认情况下,minibatchqueue
将每个输出转换为对象gpuArray
如果一个GPU是可用的。使用GPU需要并行计算工具箱™和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)。
兆贝可= minibatchqueue (augimdsTrain,…“MiniBatchSize”miniBatchSize,…“MiniBatchFcn”@preprocessMiniBatch,…“MiniBatchFormat”,{“SSCB”,”});
初始化培训进展阴谋。
图lineLossTrain = animatedline (“颜色”[0.85 0.325 0.098]);ylim([0正])包含(“迭代”)ylabel (“损失”网格)在
个解算器初始化速度参数。
速度= [];
列车网络使用自定义训练循环。对于每一个时代,洗牌和遍历mini-batches数据的数据。为每个mini-batch:
评估模型的梯度、州和使用dlfeval
和modelGradients
功能和更新网络状态。
确定基于时间的学习速率衰减学习速率的时间表。
更新网络参数使用sgdmupdate
函数。
显示培训进展。
迭代= 0;开始=抽搐;%循环时期。为时代= 1:numEpochs%洗牌数据。洗牌(兆贝可);%在mini-batches循环。而hasdata(兆贝可)迭代=迭代+ 1;% mini-batch读取的数据。[dlX,海底]=下一个(兆贝可);%评估模型梯度、州和使用dlfeval和损失% modelGradients功能和更新网络状态。(渐变、州损失)= dlfeval (@modelGradients, dlnet dlX,海底);dlnet。状态=state;%确定为基于时间的学习速率衰减学习速率的时间表。learnRate = initialLearnRate /(1 +衰变*迭代);%更新使用个优化网络参数。[dlnet,速度]= sgdmupdate (dlnet、渐变速度,learnRate动量);%显示培训进展。D =持续时间(0,0,toc(开始),“格式”,“hh: mm: ss”);addpoints (lineLossTrain、迭代、失去)标题(”时代:“+时代+”,过去:“+ drawnow字符串(D))结束结束
测试模型
测试模型的分类精度比较预测验证集和真正的标签。
训练后,使预测新数据不需要标签。创建minibatchqueue
对象只包含测试数据的预测:
忽略标签测试,设置输出的数量mini-batch队列1。
指定相同的mini-batch大小用于培训。
预处理预测使用preprocessMiniBatchPredictors
函数,列出的例子。
对于单一的输出数据存储,指定mini-batch格式“SSCB”
(空间、空间、通道、批)。
numOutputs = 1;mbqTest = minibatchqueue (augimdsValidation numOutputs,…“MiniBatchSize”miniBatchSize,…“MiniBatchFcn”@preprocessMiniBatchPredictors,…“MiniBatchFormat”,“SSCB”);
使用循环mini-batches和分类图像modelPredictions
函数,列出的例子。
预测= modelPredictions (dlnet、mbqTest、类);
评估分类精度。
欧美= imdsValidation.Labels;= =次精度=意味着(预测)
精度= 0.9530
模型梯度函数
的modelGradients
函数接受一个dlnetwork
对象dlnet
mini-batch的输入数据dlX
与相应的标签Y
并返回梯度的损失对可学的参数dlnet
、网络状态和损失。自动计算梯度,使用dlgradient
函数。
函数(渐变、州损失)= modelGradients (dlnet dlX Y) [dlYPred、州]=向前(dlnet dlX);损失= crossentropy (dlYPred Y);梯度= dlgradient(损失、dlnet.Learnables);损失=双(收集(extractdata(损失)));结束
模型的预测函数
的modelPredictions
函数接受一个dlnetwork
对象dlnet
,一个minibatchqueue
的输入数据兆贝可
网络类,计算模型遍历所有数据的预测minibatchqueue
对象。这个函数使用onehotdecode
函数找到预测类最高的分数。
函数预测= modelPredictions (dlnet、兆贝可类)预测= [];而hasdata(兆贝可)dlXTest =下一个(兆贝可);dlYPred =预测(dlnet dlXTest);YPred = onehotdecode (dlYPred、类1)';预测=[预测;YPred];结束结束
小批预处理功能
的preprocessMiniBatch
函数进行预处理的mini-batch预测和标签使用以下步骤:
使用预处理的图像preprocessMiniBatchPredictors
函数。
从传入单元阵列提取标签数据和连接到一个直言沿着二维数组。
一个炎热的分类标签编码成数字数组。编码的第一个维度产生一个相匹配的形状编码阵列网络输出。
函数(X, Y) = preprocessMiniBatch(伊势亚YCell)%预处理预测。X = preprocessMiniBatchPredictors(伊势亚);%从细胞中提取标签数据和连接。Y =猫(2,YCell{1:结束});%一个炎热的编码标签。Y, Y = onehotencode (1);结束
Mini-Batch预测预处理功能
的preprocessMiniBatchPredictors
函数进行预处理mini-batch预测因子的提取图像数据从输入单元阵列和连接到一个数字数组。灰度输入,连接在第四维度添加每个图像的三维空间,作为一个单通道维度。
函数X = preprocessMiniBatchPredictors(伊势亚)%连接。猫(X = 4,伊势亚{1:结束});结束
dlnetwork
对象加载一个pretrained网络。
网= squeezenet;
转换层的网络图,把输出层,将它转换成一个dlnetwork
对象。
lgraph = layerGraph(净);lgraph = removeLayers (lgraph,“ClassificationLayer_predictions”);dlnet = dlnetwork (lgraph);
的可学的
财产的dlnetwork
对象是一个包含网络的可学的参数表。嵌套层的表包括参数在不同的行。查看可学的表的前几行。
可学的= dlnet.Learnables;头(可学的)
ans =8×3表层参数值_____________ _____ ___________________“conv1”“权重”{3 x3x3x64 dlarray}“conv1”“偏见”{1 x1x64 dlarray}“fire2-squeeze1x1”“权重”{1 x1x64x16 dlarray}“fire2-squeeze1x1”“偏见”{1 x1x16 dlarray}“fire2-expand1x1”“权重”{1 x1x16x64 dlarray}“fire2-expand1x1”“偏见”{1 x1x64 dlarray}“fire2-expand3x3”“权重”{3 x3x16x64 dlarray}“fire2-expand3x3”“偏见”{1 x1x64 dlarray}
冻结的可学的参数网络,遍历可学的参数和设置率为0使用学习setLearnRateFactor
函数。
因素= 0;numLearnables =大小(可学的,1);为i = 1: numLearnables layerName = learnables.Layer(我);parameterName = learnables.Parameter(我);dlnet = setLearnRateFactor (dlnet, layerName、parameterName因素);结束
培训时使用更新后的学习速率的因素,你必须通过dlnetwork对象更新函数自定义训练循环。例如,使用命令
[dlnet、速度]= sgdmupdate (dlnet、渐变速度);
dlnetwork
创建一个未初始化的dlnetwork
对象没有一个输入层。创建一个未初始化的dlnetwork
是有用的,当你还不知道网络的大小和格式输入,例如,当dlnetwork
是嵌套在一个自定义层。
定义网络层。这个网络有一个输入,这不是连接到输入层。
20层= [convolution2dLayer (5) batchNormalizationLayer reluLayer fullyConnectedLayer (10) softmaxLayer);
创建一个未初始化的dlnetwork
。设置初始化
选项假
。
dlnet = dlnetwork(层,“初始化”、假);
检查网络是否没有初始化。
dlnet.Initialized
ans =逻辑0
这个网络的可学的和状态参数不初始化培训。初始化网络,使用初始化
函数。
如果你想使用dlnet
直接在一个定制的训练循环,然后你可以通过使用初始化它初始化
输入功能和提供一个例子。
如果你想使用dlnet
自定义层内,然后你可以利用自动初始化。如果您使用自定义层内dlnetwork
,然后dlnet
初始化时父母吗dlnetwork
构造(或父网络初始化时如果是构造成未初始化dlnetwork
)。如果您使用自定义层内部的网络训练使用trainNetwork
函数,那么dlnet
在训练时间自动初始化。有关更多信息,请参见深入学习网络组成。
的dlnetwork
下面列出的功能支持金宝app层和自定义层没有向前函数返回一个非空的记忆价值。
层 | 描述 |
---|---|
图像输入层输入二维图像网络和应用数据规范化。 | |
三维图像输入层输入3 d图像或卷到网络和应用数据规范化。 | |
一个序列输入序列数据网络输入层。 | |
功能网络输入层的输入特性数据和应用数据规范化。使用这一层当你有一个数据集的数字标量代表特性(数据没有空间和时间维度)。 |
层 | 描述 |
---|---|
一个一维卷积层滑动卷积过滤器适用于一维输入。 | |
一个二维卷积层滑动卷积过滤器适用于二维输入。 | |
三维卷积层滑动立方卷积过滤器适用于三维输入。 | |
一层二维分组卷积分离输入通道进入组织和应用滑动卷积过滤器。使用分组卷积层channel-wise分离(也称为深度方面可分)卷积。 | |
一层转置二维卷积upsamples特征图。 | |
一层转置三维卷积upsamples三维特征图。 | |
一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。 |
层 | 描述 |
---|---|
一个序列输入序列数据网络输入层。 | |
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。 | |
双向LSTM (BiLSTM)层学习双向长期时间步长之间的依赖关系的时间序列或序列数据。这些依赖项可以是有用的,当你想要完成网络学习时间序列在每个时间步。 | |
格勒乌层学习时间步骤时间序列和序列数据之间的依赖关系。 | |
平层坍塌的输入通道的空间维度的维度。 |
为lstmLayer
,bilstmLayer
,gruLayer
对象,dlnetwork
对象支持图层的默金宝app认值StateActivationFunction
和GateActivationFunction
属性。
层 | 描述 |
---|---|
ReLU层进行阈值操作每个元素的输入,任何小于零的值被设置为零。 | |
漏水的ReLU层执行一个阈值操作,任何输入值小于零乘以一个固定的标量。 | |
剪ReLU层执行一个阈值操作,任何输入值小于零设置为零,高于任何值剪裁天花板将剪切天花板。 | |
ELU活化层执行身份操作正输入和一个指数非线性负输入。 | |
嗖得一声活化层的嗖嗖声函数适用于层输入。 | |
双曲正切(双曲正切)激活层应用上的双曲正切函数层输入。 | |
softmax层softmax函数适用于输入。 | |
乙状结肠层乙状结肠函数适用于输入,输出是有界区间(0,1)。 | |
一层功能层指定函数适用于输入。 |
层 | 描述 |
---|---|
一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。 | |
一群归一化层可实现mini-batch跨分组的数据子集的渠道为每个独立的观察。加快卷积神经网络的训练,减少对网络的初始化,使用组卷积层之间的归一化层和非线性,如ReLU层。 | |
一层一层标准化规范化mini-batch数据在所有渠道为每个独立的观察。加快复发性和多层感知器神经网络训练,减少对网络的初始化,使用层标准化层后可学的层,如LSTM和完全连接层。 | |
channel-wise当地响应(交叉流道)归一化层进行channel-wise正常化。 | |
辍学层随机集输入元素与给定的概率为零。 | |
二维作物层二维裁剪适用于输入。 | |
|
一个STFT层计算短时傅里叶变换的输入。 |
层 | 描述 |
---|---|
一维平均池层执行downsampling除以输入一维池区域,然后计算每个区域的平均值。 | |
二维平均池层执行downsampling除以输入矩形池区域,然后计算每个区域的平均值。 | |
三维平均池层执行downsampling除以三维输入立方形的池区域,然后计算每个区域的平均值。 | |
全球平均水平一维池层执行将采样的平均输出输入的时间和空间维度。 | |
一层二维全球平均池执行将采样通过计算平均高度和宽度尺寸的输入。 | |
三维全球平均池层执行downsampling通过计算身高的均值,输入的宽度、深度和维度。 | |
一个一维最大池层执行downsampling除以输入一维池区域,然后计算每个区域的最大。 | |
一层二维最大池执行downsampling除以输入矩形池区域,然后计算每个区域的最大。 | |
3 d max池层执行downsampling除以三维输入立方形的池区域,然后计算每个区域的最大。 | |
一个一维的全球最大池层执行将采样的最大输出输入的时间和空间维度。 | |
全球最大池二维层执行将采样通过计算的最大高度和宽度尺寸的输入。 | |
全球3 d max池层执行将采样通过计算的最大高度,宽度、深度和维度的输入。 | |
一层二维马克斯unpooling unpools二维最大池的输出层。 |
层 | 描述 |
---|---|
除了一层来自多个神经网络的输入层element-wise补充道。 | |
一个乘法层繁殖element-wise来自多个神经网络的输入层。 | |
深度连接层需要输入,有相同的高度和宽度和连接他们的第三个维度(通道尺寸)。 | |
连接层需要的输入并将它们连接指定的尺寸。输入必须有相同的大小在所有维度除了连接尺寸。 |
dlnetwork
状态值dlarray
对象
的状态
的dlnetwork
对象是一个表包含状态参数名称和值对每一层的网络。
从R2021a,状态值dlarray
对象。这种变化使得当使用更好的支持金宝appAcceleratedFunction
对象。加速深度学习函数,经常改变输入值,例如,一个包含网络的输入状态,必须指定为经常变化的值dlarray
对象。
在以前的版本中,状态值数字数组。
在大多数情况下,您不需要更新你的代码。如果你的代码需要数字状态值数组,然后复制之前的行为,提取数据的状态值手动使用extractdata
函数与dlupdate
函数。
状态= dlupdate (@extractdata dlnet.State);
使用笔记和限制:
代码生成仅支持的金宝appInputNames
和OutputNames
属性。
代码生成不支持金宝appdlnetwork
对象没有输入层。的初始化
财产的dlnetwork
对象必须被设置为true。
您可以生成代码dlnetwork
输入向量序列。的手臂®计算,dlnetwork
可以有顺序和不连续输入层。对于英特尔®MKL-DNN、输入层必须所有序列输入层。代码生成支持包括:金宝app
dlarray
包含向量序列“CT”
或“认知行为治疗”
数据格式。
一个dlnetwork
对象,该对象具有多个输入。RNN网络,不支持多个输入。金宝app
代码生成仅支持的金宝app预测
对象的功能。的dlarray
的输入预测
必须是一个方法单
数据类型。
代码生成不支持金宝appdlnetwork
为纯C / c++目标。
代码生成支持那金宝appdlnetworks
。
创建一个dlnetwork
为代码生成对象,明白了负载Pretrained网络代码生成(MATLAB编码器)。
使用笔记和限制:
代码生成仅支持的金宝appInputNames
和OutputNames
属性。
代码生成不支持金宝appdlnetwork
对象没有输入层。的初始化
财产的dlnetwork
对象必须被设置为true。
您可以生成代码dlnetwork
输入向量序列。代码生成支持包括:金宝app
dlarray
包含向量序列“CT”
或“认知行为治疗”
数据格式。
一个dlnetwork
对象,该对象具有多个输入。RNN网络,不支持多个输入。金宝app
代码生成仅支持的金宝app预测
对象的功能。的dlarray
的输入预测
必须是一个方法单
数据类型。
代码生成支持金宝appdlnetwork
cuDNN和TensorRT目标。代码生成不支持金宝appdlnetwork
手臂马里和纯C / c++目标。
针对TensorRT时INT8
精度,最后一层的网络必须是softmaxLayer
层。
代码生成支持那金宝appdlnetworks
。
创建一个dlnetwork
为代码生成对象,明白了负载Pretrained网络代码生成(GPU编码器)。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。