dlnetwork
深入学习网络定制培训循环
描述
一个dlnetwork
对象支持自定义训练循环使用自动万博1manbetx分化。
提示
对于大多数深度学习的任务,您可以使用一个pretrained网络和适应您自己的数据。为例展示如何使用转移学习再教育卷积神经网络分类一套新的图片,明白了火车深入学习网络对新图像进行分类。或者,您可以创建和培训网络从头开始使用layerGraph
的对象trainNetwork
和trainingOptions
功能。
如果trainingOptions
功能不提供训练选项,你需要你的任务,你可以创建一个自定义训练循环使用自动分化。欲了解更多,请看为自定义训练循环定义深度学习网络。
创建
语法
描述
将在指定的网络层净
= dlnetwork (层
)层
一个初始化dlnetwork
对象代表一个深层神经网络用于自定义训练循环。层
可以是一个LayerGraph
对象或一个层
数组中。层
必须包含一个输入层。
一个初始化dlnetwork
对象为培训做好准备。可学的参数和状态的值净
与初始值初始化培训基于定义的输入规模网络输入层。
还设置了净
= dlnetwork (___、“OutputNames”名称)OutputNames
财产使用任何以前的语法。的OutputNames
属性指定返回网络输出层。设置输出的名字,网络必须初始化。
删除过滤器选择从卷积的修剪净
= dlnetwork (prunableNet
)prunableNet
并返回一个压缩dlnetwork
对象可学的参数较少,规模较小。
修剪深神经网络,你需要深度学习工具箱™模型量化图书馆万博1manbetx支持包。这种支持包万博1manbetx是一个免费的插件,你可以下载使用附加Explorer。另外,看到深度学习工具箱量化模型库。
输入参数
层
- - - - - -网络层
LayerGraph
对象|层
数组
网络层,指定为一个LayerGraph
对象或作为一个层
数组中。
如果层
是一个层
数组,那么dlnetwork
功能连接层系列。
网络层必须不包含输出层。当训练网络,分别计算损失。
层支持的列表万博1manbetxdlnetwork
,请参阅万博1manbetx支持层。
X1,…, Xn
- - - - - -例如网络输入
dlarray
网络输入,指定为格式化dlarray
对象。软件通过网络传播示例的输入来确定适当的大小和格式的可学的和状态参数dlnetwork
。
输入必须格式化的例子dlarray
对象。当层
是一个层
数组,在相同的顺序提供示例输入层中出现要求输入层
数组中。当层
是一个LayerGraph
对象,提供示例输入层的顺序相同,需要输入中出现层
财产的LayerGraph
。
输入不支持当例子万博1manbetx特遣部队
是假的。
特遣部队
- - - - - -国旗返回初始化dlnetwork
1
(真正的)(默认)|0
(假)
国旗返回初始化dlnetwork
指定为一个数字或逻辑1
(真正的)或0
(假)。
如果特遣部队
是1
,然后软件初始化可学的状态参数净
与初始值进行训练,根据网络输入层或提供的示例输入。
如果特遣部队
是0
软件没有初始化,那么可学的和状态参数。使用未初始化网络之前,您必须首先初始化它使用初始化
函数。输入不支持当例子万博1manbetx特遣部队
是假的。
prunableNet
- - - - - -利用一阶泰勒近似网络修剪
TaylorPrunableNetwork
对象
网络修剪利用一阶泰勒近似,指定为一个TaylorPrunableNetwork
对象。
属性
层
- - - - - -网络层
层
数组
这个属性是只读的。
网络层,指定为一个层
数组中。
连接
- - - - - -层连接
表
这个属性是只读的。
层连接,指定为一个表有两列。
每个表格行表示层的连接图。第一列,源
,指定每个连接的来源。第二列,目的地
,指定每个连接的目的地。连接源和目的地是层名称或形式“layerName / IOName”
,在那里“IOName”
层的名称输入或输出。
数据类型:表
可学的
- - - - - -网络可学的参数
表
网络可学的参数,指定为一个表有三列:
层
——层名称指定为一个字符串标量。参数
参数名称,指定为一个字符串标量。价值
——指定为一个参数的值dlarray
对象。
网络可学的参数包含网络学习的特性。例如,卷积和完全连接层的权重。
数据类型:表
InputNames
- - - - - -网络输入层的名字
单元阵列的特征向量
这个属性是只读的。
网络输入层名称指定为一个单元阵列的特征向量。
数据类型:细胞
初始化
- - - - - -国旗为初始化网络
0
(假)|1
(真正的)
这个属性是只读的。
为初始化网络,指定为0
(虚假的)或1
(真正的)。
如果初始化
是0
(假),网络是没有初始化。必须初始化网络才能使用它。初始化网络使用初始化
函数。
如果初始化
是1
(真正的),初始化网络,可用于培训和推理。如果你改变可学的参数的值——例如,在训练的价值初始化
仍然是1
(真正的)。
数据类型:逻辑
对象的功能
预测 |
计算深度学习网络输出推理 |
向前 |
计算深度学习网络输出进行训练 |
初始化 |
可学的和状态参数进行初始化dlnetwork |
layerGraph |
图深度学习的网络层 |
setL2Factor |
L2的正则化因子层可学的参数设置 |
setLearnRateFactor |
学习速率因子层可学的参数设置 |
getLearnRateFactor |
得到学习速率因子层可学的参数 |
getL2Factor |
得到了L2正则化因子层可学的参数 |
resetState |
重置状态参数的神经网络 |
例子
Pretrained网络转换为dlnetwork
对象
实现一个自定义您的网络培训循环,首先将它转换成一个dlnetwork
对象。不包括输出层dlnetwork
对象。相反,您必须指定自定义训练循环中损失函数。
加载一个pretrained GoogLeNet模型使用googlenet
函数。这个函数需要深度学习工具箱™模型GoogLeNet网络万博1manbetx支持包。如果这种支持包没万博1manbetx有安装,那么函数提供一个下载链接。
网= 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
列车网络的使用自定义训练循环
这个例子展示了如何训练网络,把手写的数字和一个定制的学习速率的时间表。
你可以训练使用的大多数类型的神经网络trainNetwork
和trainingOptions
功能。如果trainingOptions
函数不提供你需要的选项(例如,一个定制的学习速率的时间表),然后你可以定义自己的自定义训练循环使用dlarray
和dlnetwork
对象自动分化。为一个例子,演示如何培训pretrained深学习网络使用trainNetwork
功能,请参阅学习使用Pretrained网络传输。
训练一个深层神经网络是一种优化的任务。通过考虑一个神经网络作为一个函数 ,在那里 网络的输入, 可学的参数集,您可以优化吗 减少一些损失值基于训练数据。例如,优化可学的参数 这样,对于一个给定的输入 与相应的目标 ,他们之间的误差最小化预测 和 。
取决于使用的损失函数类型的任务。例如:
对于分类任务,您可以最小化之间的交叉熵误差预测和目标。
对于回归的任务,您可以最小化之间的均方误差预测和目标。
您可以使用梯度下降优化目标:最小化损失 通过迭代更新可学的参数 通过采取措施对最小使用渐变的损失对可学的参数。梯度下降算法更新可学的参数通常使用的更新一步的变体形式 ,在那里 是迭代数, 是学习速率, 表示渐变(衍生品的损失对可学的参数)。
这个例子列车网络分类手写数字的基于时间的衰减学习速率的时间表:对于每一次迭代,求解器使用的学习速率 ,在那里t是迭代数, 最初的学习速率,k是衰减的。
负荷训练数据
数字数据加载图像数据存储使用imageDatastore
功能和指定包含图像数据的文件夹。
dataFolder = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);imd = imageDatastore (dataFolder,…IncludeSubfolders = true,…。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 =元素个数(类);
定义网络
定义网络图像分类。
图像输入,指定一个图像输入层与输入训练数据匹配的大小。
不正常的图像输入,设置
归一化
选择输入层“没有”
。指定三个convolution-batchnorm-ReLU块。
垫卷积的输入层,通过设置的输出具有相同的大小
填充
选项“相同”
。卷积第一层指定20过滤器的大小5。对于剩下的卷积层指定20过滤器的大小3。
对于分类,指定一个完全连接层与大小匹配的类的数量
输出映射到概率,包括softmax层。
当培训网络使用自定义循环,不包括一个输出层。
层= [imageInputLayer (inputSize正常化=“没有”)convolution2dLayer(5、20、填充=“相同”)batchNormalizationLayer reluLayer convolution2dLayer(3、20、填充=“相同”)batchNormalizationLayer reluLayer convolution2dLayer(3、20、填充=“相同”)batchNormalizationLayer reluLayer fullyConnectedLayer (numClasses) softmaxLayer];
创建一个dlnetwork
数组对象的层。
净= dlnetwork(层)
网= dlnetwork属性:层:[12×1 nnet.cnn.layer.Layer]连接:[11×2表]可学的:[14×3表]状态:[6×3表]InputNames: {“imageinput”} OutputNames: {“softmax”}初始化:1
定义模型损失函数
训练一个深层神经网络是一种优化的任务。通过考虑一个神经网络作为一个函数 ,在那里 网络的输入, 可学的参数集,您可以优化吗 减少一些损失值基于训练数据。例如,优化可学的参数 这样,对于一个给定的输入 与相应的目标 ,他们之间的误差最小化预测 和 。
创建函数modelLoss
中列出,损失函数模型的例子中,这需要作为输入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设备。万博1manbetx支持设备的信息,请参阅万博1manbetxGPU的万博1manbetx支持版本(并行计算工具箱)。
兆贝可= minibatchqueue (augimdsTrain,…MiniBatchSize = MiniBatchSize,…MiniBatchFcn = @preprocessMiniBatch,…MiniBatchFormat = [“SSCB””“]);
初始化培训进展阴谋。
图C = colororder;lineLossTrain = animatedline(颜色= C (2:));ylim([0正])包含(“迭代”)ylabel (“损失”网格)在
个解算器初始化速度参数。
速度= [];
列车网络使用自定义训练循环。对于每一个时代,洗牌和遍历mini-batches数据的数据。为每个mini-batch:
损失评估模型,使用渐变和状态
dlfeval
和modelLoss
功能和更新网络状态。确定基于时间的学习速率衰减学习速率的时间表。
更新网络参数使用
sgdmupdate
函数。显示培训进展。
迭代= 0;开始=抽搐;%循环时期。为时代= 1:numEpochs%洗牌数据。洗牌(兆贝可);%在mini-batches循环。而hasdata(兆贝可)迭代=迭代+ 1;% mini-batch读取的数据。[X, T] =下一个(兆贝可);%评估模型梯度、州和使用dlfeval和损失% modelLoss功能和更新网络状态。(损失、渐变、状态)= dlfeval (@modelLoss,净,X, T);网。=状态;%确定为基于时间的学习速率衰减学习速率的时间表。learnRate = initialLearnRate /(1 +衰变*迭代);%更新使用个优化网络参数。(净、速度)= sgdmupdate(净、渐变速度,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(净、mbqTest、类);
评估分类精度。
tt = imdsValidation.Labels;精度=意味着(tt = =次)
精度= 0.7210
图表可视化预测在一个混乱。
次图confusionchart (tt)
大值对应的类的对角线显示准确的预测。大值对应的类之间的非对角的表示强烈的困惑。
万博1manbetx支持功能
损失函数模型
的modelLoss
函数接受一个dlnetwork
对象净
mini-batch的输入数据X
与相应的目标T
并返回损失,损失的梯度参数对可学的净
,和网络状态。自动计算梯度,使用dlgradient
函数。
函数(损失、渐变、状态)= modelLoss(净,X, T)%通过网络转发数据。[Y,状态]=前进(净,X);%计算熵的损失。损失= crossentropy (Y, T);%计算梯度的损失对可学的参数。梯度= dlgradient(损失、net.Learnables);结束
模型的预测函数
的modelPredictions
函数接受一个dlnetwork
对象净
,一个minibatchqueue
的输入数据兆贝可
网络类,计算模型遍历所有数据的预测minibatchqueue
对象。这个函数使用onehotdecode
函数找到预测类最高的分数。
函数Y = modelPredictions(净、兆贝可类)Y = [];%在mini-batches循环。而hasdata(兆贝可)X =(兆贝可);%进行预测。成绩=预测(净,X);%解码标签和附加到输出。标签= onehotdecode(成绩、类1)';Y = [Y;标签);结束结束
小批预处理功能
的preprocessMiniBatch
函数进行预处理的mini-batch预测和标签使用以下步骤:
使用预处理的图像
preprocessMiniBatchPredictors
函数。从传入单元阵列提取标签数据和连接到一个直言沿着二维数组。
一个炎热的分类标签编码成数字数组。编码的第一个维度产生一个相匹配的形状编码阵列网络输出。
函数[X, T] = preprocessMiniBatch (dataX人数()%预处理预测。X = preprocessMiniBatchPredictors (dataX);%从细胞中提取标签数据和连接。猫(T = 2,人数({1:结束});%一个炎热的编码标签。T = onehotencode (T, 1);结束
Mini-Batch预测预处理功能
的preprocessMiniBatchPredictors
函数进行预处理mini-batch预测因子的提取图像数据从输入单元阵列和连接到一个数字数组。灰度输入,连接在第四维度添加每个图像的三维空间,作为一个单通道维度。
函数X = preprocessMiniBatchPredictors (dataX)%连接。猫(X = 4, dataX{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
在训练时间自动初始化。有关更多信息,请参见深入学习网络组成。
更多关于
万博1manbetx支持层
的dlnetwork
下面列出的功能支持万博1manbetx层和自定义层没有向前函数返回一个非空的记忆价值。
层 | 描述 |
---|---|
图像输入层输入二维图像网络和应用数据规范化。 | |
三维图像输入层输入3 d图像或卷到网络和应用数据规范化。 | |
一个序列输入序列数据网络输入层。 | |
功能网络输入层的输入特性数据和应用数据规范化。使用这一层当你有一个数据集的数字标量代表特性(数据没有空间和时间维度)。 |
层 | 描述 |
---|---|
一个一维卷积层滑动卷积过滤器适用于一维输入。 | |
一个二维卷积层滑动卷积过滤器适用于二维输入。 | |
三维卷积层滑动立方卷积过滤器适用于三维输入。 | |
一层二维分组卷积分离输入通道进入组织和应用滑动卷积过滤器。使用分组卷积层channel-wise分离(也称为深度方面可分)卷积。 | |
一层转置二维卷积upsamples二维特征图。 | |
一层转置三维卷积upsamples三维特征图。 | |
一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。 |
层 | 描述 |
---|---|
一个序列输入序列数据网络输入层。 | |
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。 | |
双向LSTM (BiLSTM)层学习双向长期时间步长之间的依赖关系的时间序列或序列数据。这些依赖项可以是有用的,当你想要完成网络学习时间序列在每个时间步。 | |
格勒乌层学习时间步骤时间序列和序列数据之间的依赖关系。 | |
平层坍塌的输入通道的空间维度的维度。 |
为lstmLayer
,bilstmLayer
,gruLayer
对象,dlnetwork
对象支持图层的默万博1manbetx认值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来自多个神经网络的输入层。 | |
深度连接层需要输入,有相同的高度和宽度和连接他们的第三个维度(通道尺寸)。 | |
连接层需要的输入并将它们连接指定的尺寸。输入必须有相同的大小在所有维度除了连接尺寸。 |
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成仅支持的万博1manbetx
InputNames
和OutputNames
属性。代码生成不支持万博1manbetx
dlnetwork
对象没有输入层。的初始化
财产的dlnetwork
对象必须被设置为true。您可以生成代码
dlnetwork
向量或图像序列输入。的手臂®计算,dlnetwork
可以有顺序和不连续输入层。对于英特尔®MKL-DNN、输入层必须所有序列输入层。代码生成支持包括:万博1manbetxdlarray
包含向量序列“CT”
或“认知行为治疗”
数据格式。dlarray
包含图像序列“SSCT”
或“SSCBT”
数据格式。多输入
dlnetwork
与异构输入层。RNN网络,不支持多个输入。万博1manbetx
代码生成仅支持的万博1manbetx
预测
对象的功能。的dlarray
的输入预测
必须是一个方法单
数据类型。代码生成支持那万博1manbetx
dlnetworks
。创建一个
dlnetwork
为代码生成对象,明白了负载Pretrained网络代码生成(MATLAB编码器)。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
代码生成仅支持的万博1manbetx
InputNames
和OutputNames
属性。代码生成不支持万博1manbetx
dlnetwork
对象没有输入层。的初始化
财产的dlnetwork
对象必须被设置为true。您可以生成代码
dlnetwork
向量和输入图像序列。代码生成支持包括:万博1manbetxdlarray
包含向量序列“CT”
或“认知行为治疗”
数据格式。dlarray
包含图像序列“SSCT”
或“SSCBT”
数据格式。多输入
dlnetwork
与异构输入层。RNN网络,不支持多个输入。万博1manbetx
代码生成仅支持的万博1manbetx
预测
对象的功能。的dlarray
的输入预测
必须是一个方法单
数据类型。代码生成支持万博1manbetx
dlnetwork
cuDNN和TensorRT目标。代码生成不支持万博1manbetxdlnetwork
对手臂马里的目标。针对TensorRT时
INT8
精度,最后一层的网络必须是softmaxLayer
层。代码生成支持那万博1manbetx
dlnetworks
。创建一个
dlnetwork
为代码生成对象,明白了负载Pretrained网络代码生成(GPU编码器)。
版本历史
介绍了R2019bR2021a:dlnetwork
状态值dlarray
对象
的状态
的dlnetwork
对象是一个表包含状态参数名称和值对每一层的网络。
从R2021a,状态值dlarray
对象。这种变化使得当使用更好的支持万博1manbetxAcceleratedFunction
对象。加速深度学习函数,经常改变输入值,例如,一个包含网络的输入状态,必须指定为经常变化的值dlarray
对象。
在以前的版本中,状态值数字数组。
在大多数情况下,您不需要更新你的代码。如果你的代码需要数字状态值数组,然后复制之前的行为,提取数据的状态值手动使用extractdata
函数与dlupdate
函数。
状态= dlupdate (@extractdata net.State);
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。