序列输入层
序列输入层将序列数据输入到网络。
输入
- - - - - -大小的输入输入的大小,指定为正整数或正整数的向量。
对于向量序列输入,输入
是对应于特征数量的标量。
对于2-D图像序列输入,输入
是三个元素的矢量[w c h]
, 在哪里h
是图像高度,w
是图像宽度,和c
为图像的通道数。
对于3-D图像序列输入,输入
是四个元素的向量吗[H W D C]
, 在哪里h
是图像高度,w
为图像宽度,d
是图像深度,还有c
为图像的通道数。
例子:100.
正常化
- - - - - -数据归一化“没有”
(默认)|'Zerocenter'
|“zscore”
|“rescale-symmetric”
|'Rescale-Zero-One'
|函数处理要应用每次数据的数据归一化将通过输入图层向前传播,指定为以下之一:
提示
默认情况下,该软件可自动计算培训时间的标准化统计信息。要节省培训时,请指定规范化所需的统计信息,并设置'resetInputnormalization'
选项培训选项
到假
.
如果输入数据包含填充,则在归一化输入数据时,该图层忽略了填充值。
正常化Dimension.
- - - - - -规范化维度“汽车”
(默认)|'渠道'
|“元素”
|“所有”
标准化维度,指定为以下之一:
“汽车”
—如果培训选项是假
并且您指定了任何归一化统计信息(意思
,standarddeviation.
,闵
, 要么最大限度
),然后通过匹配统计数据的尺寸标准化。否则,重新计算培训时间并申请渠道明智的归一化。
'渠道'
- 渠道 - 明智的标准化。
“元素”
——Element-wise正常化。
“所有”
- 使用标量统计来规范所有值。
意思
- - - - - -零中心和Z分数标准化的意思[]
(默认)|数字数组|数字标量零中心和z评分标准化的意思,指定为数字阵列或空。
如果您指定了意思
属性,然后正常化
必须是'Zerocenter'
要么“zscore”
.如果意思
是[]
,然后软件计算训练时的平均值。
您可以在不进行培训的情况下创建网络时设置此属性(例如,使用汇编
).
数据类型:单身的
|双倍的
|INT8.
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|UINT64
standarddeviation.
- - - - - -标准偏差[]
(默认)|数字数组|数字标量用于z-score标准化的标准偏差,指定为数字数组、数字标量或空。
如果您指定了standarddeviation.
属性,然后正常化
必须是“zscore”
.如果standarddeviation.
是[]
,然后软件计算训练时的标准差。
您可以在不进行培训的情况下创建网络时设置此属性(例如,使用汇编
).
数据类型:单身的
|双倍的
|INT8.
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|UINT64
闵
- - - - - -重新划分的最小值[]
(默认)|数字数组|数字标量重新定义的最小值,指定为数字数组或空。
如果您指定了闵
属性,然后正常化
必须是“rescale-symmetric”
要么'Rescale-Zero-One'
.如果闵
是[]
,然后软件在训练时间计算最小值。
您可以在不进行培训的情况下创建网络时设置此属性(例如,使用汇编
).
数据类型:单身的
|双倍的
|INT8.
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|UINT64
最大限度
- - - - - -重新划分的最大值[]
(默认)|数字数组|数字标量用于重新缩放的最大值,指定为数字数组,或为空。
如果您指定了最大限度
属性,然后正常化
必须是“rescale-symmetric”
要么'Rescale-Zero-One'
.如果最大限度
是[]
,然后软件在训练时间计算最大值。
您可以在不进行培训的情况下创建网络时设置此属性(例如,使用汇编
).
数据类型:单身的
|双倍的
|INT8.
|int16
|INT32.
|INT64.
|uint8.
|uint16
|UINT32.
|UINT64
名称
- - - - - -层的名字''
(默认)|字符向量|字符串标量图层名称,指定为字符向量或字符串标量。要在图层图中包含一个图层,必须指定非空,唯一的图层名称。如果您使用该图层培训系列网络名称
被设置为''
,然后软件在训练时自动为该层分配一个名称。
数据类型:char
|细绳
numinputs.
- - - - - -输入数量图层的输入数。该层没有输入。
数据类型:双倍的
输入名称
- - - - - -输入名称{}
(默认)图层的输入名称。该层没有输入。
数据类型:细胞
NumOutputs
- - - - - -输出数量图层的输出数。此图层仅具有单个输出。
数据类型:双倍的
输出名称
- - - - - -输出的名字{'出去'}
(默认)图层的输出名称。此图层仅具有单个输出。
数据类型:细胞
创建一个序列输入层的名称'seq1'
和输入大小为12。
tillay = sequenceInputlayer(12,“名字”,'seq1')
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: 12 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
包括序列输入层层
数组中。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer(InputSize)LSTMLAYER(NUMHIDNEDURITS,'OutputMode',“最后一次”)软连接层(numClasses)
图层= 5x1层阵列带有图层:1''序列输入序列输入,带12尺寸2''LSTM LSTM,具有100个隐藏单元3'完全连接的9完全连接的第4层''Softmax SoftMax 5''分类输出CrossentRopyex
创建具有名称224-224 RGB图像的序列的序列输入层'seq1'
.
layer = sequenceInputlayer([224 224 3],“名字”,'seq1')
tillay = sequenceInputLayer具有属性:名称:'SEQ1'输入:[224 224 3] radipameters标准化:'无'标准化dimension:'auto'
培训深度学习LSTM网络,用于序列到标签分类。
如[1]和[2]中所述加载日语元音数据集。XTrain.
是含有270个变化长度序列的细胞阵列,其具有对应于LPC综合系数的12个特征。Y
是标签1,2,...,9的分类矢量。参赛作品XTrain.
是具有12行的矩阵(每个特征的一行)和不同数量的列(每次步骤一列)。
[Xtrain,Ytrain] = JapanesevowelstrainData;
在绘图中可视化第一次序列。每行对应于特征。
图绘制(XTrain{1}”)标题(“培训观察1”)numfeatures = size(xtrain {1},1);传奇(“特征 ”+字符串(1:numFeatures),'地点',“northeastoutside”)
定义LSTM网络架构。指定输入大小为12(输入数据的特征数量)。指定一个LSTM层有100个隐藏单元,并输出序列的最后一个元素。最后,通过包含大小为9的完全连接层、softmax层和分类层来指定9个类。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer(InputSize)LSTMLAYER(NUMHIDNEDURITS,'OutputMode',“最后一次”)软连接层(numClasses)
图层= 5×1层阵列,带有图层:1''序列输入序列输入,带12尺寸2''LSTM LSTM,具有100个隐藏单元3'完全连接的9个完全连接的第4层''Softmax SoftMax 5''分类输出CrossentRopyex
指定培训选项。指定求解器为'亚当'
和“GradientThreshold”
为1。设置mini-batch size为27,最大epoch数为70。
由于迷你批次具有短序列,因此CPU更适合培训。放“ExecutionEnvironment”
到'中央处理器'
.在GPU上训练,如果有的话,设置“ExecutionEnvironment”
到“汽车”
(默认值)。
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions ('亚当',......“ExecutionEnvironment”,'中央处理器',......'maxepochs',maxepochs,......'minibatchsize',小匹马,......“GradientThreshold”,1,......'verbose',错误的,......“阴谋”,'培训 - 进步');
使用指定的培训选项列车LSTM网络。
net = trainnetwork(xtrain,ytrain,图层,选项);
加载测试集并将序列分类为扬声器。
[xtest,ytest] =日本韦沃尔斯特迪塔
分类测试数据。指定用于培训的相同百分比大小。
XTest YPred =分类(净,'minibatchsize', miniBatchSize);
计算预测的分类精度。
ACC = SUM(YPRED == ytest)./ numel(ytest)
ACC = 0.9514
为了创建用于序列到标签分类的LSTM网络,创建包含序列输入层,LSTM层,完全连接的层,软MAX层和分类输出层的层数组。
将序列输入层的大小设置为输入数据的特征数。将完全连接的图层的大小设置为类的数量。您无需指定序列长度。
对于LSTM图层,指定隐藏单元的数量和输出模式“最后一次”
.
numfeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,'OutputMode',“最后一次”) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer;
有关如何培训LSTM网络以获取序列到标签分类和分类新数据的示例,请参阅使用深度学习序列分类.
要为序列到序列分类创建LSTM网络,请使用与序列到标签分类相同的架构,但将LSTM层的输出模式设置为“序列”
.
numfeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,'OutputMode',“序列”) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer;
要创建序列到一回归的LSTM网络,需要创建一个包含序列输入层、LSTM层、全连接层和回归输出层的层阵列。
将序列输入层的大小设置为输入数据的特征数。将完全连接的图层的大小设置为响应的数量。您无需指定序列长度。
对于LSTM图层,指定隐藏单元的数量和输出模式“最后一次”
.
numfeatures = 12;numhidendunits = 125;numreponses = 1;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,'OutputMode',“最后一次”)全连接列(NumResponses)回归范围];
要为序列到序列回归创建LSTM网络,请使用与序列到一个回归相同的架构,但将LSTM层的输出模式设置为“序列”
.
numfeatures = 12;numhidendunits = 125;numreponses = 1;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,'OutputMode',“序列”)全连接列(NumResponses)回归范围];
有关如何训练LSTM网络进行序列到序列回归和预测新数据的示例,请参见使用深度学习的序列到序列回归.
您可以通过使用输出模式插入额外的LSTM层来更深入地制作LSTM网络“序列”
在LSTM层之前。为防止过度装备,您可以在LSTM层后插入丢弃层。
对于序列到标签分类网络,必须是最后一个LSTM层的输出模式“最后一次”
.
numfeatures = 12;numhiddentunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [......SequenceInputLayer(NumFeatures)LSTMLAYER(numhidentunits1,'OutputMode',“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2'OutputMode',“最后一次”) dropoutLayer(0.2) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer];
对于序列到序列分类网络,必须是最后一个LSTM层的输出模式“序列”
.
numfeatures = 12;numhiddentunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [......SequenceInputLayer(NumFeatures)LSTMLAYER(numhidentunits1,'OutputMode',“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2'OutputMode',“序列”) dropoutLayer(0.2) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer];
为包含图像序列的数据创建深度学习网络,例如视频和医学图像数据。
要将图像序列输入到网络中,请使用序列输入层。
为了将卷积操作独立应用于每次步骤,首先使用序列折叠层将图像的序列转换为图像阵列。
要在执行这些操作后恢复序列结构,请使用序列展开层将此阵列图像转换回图像序列。
要将图像转换为特征向量,请使用扁平层。
然后,您可以将向量序列输入到LSTM和Bilstm层中。
定义网络架构
创建一个分类LSTM网络,将28-×28灰度图像的序列分类为10类。
定义以下网络架构:
序列输入层,其输入大小为[28 28 1]
.
具有20个5 × 5滤波器的卷积、批处理归一化和ReLU层块。
一个LSTM层,具有200个隐藏单元,仅输出最后一次步骤。
完全连接的大小10(类数),后跟软MAX层和分类层。
为了独立地在每次上执行卷积操作,包括卷积层之前的序列折叠层。LSTM层预计向量序列输入。为了恢复序列结构并将卷积层的输出重新塑造到特征向量的序列,在卷积层和LSTM层之间插入序列展开层和平坦层。
输入= [28 28 1];filtersize = 5;numfilters = 20;numhidendunits = 200;numclasses = 10;层= [......sequenceInputLayer (inputSize“名字”,“输入”)SechandFoldingLayer(“名字”,“折”)卷积2dlayer(过滤,numfilters,“名字”,'conv'batchnormalizationlayer(“名字”,'bn') reluLayer (“名字”,'relu')SequencunfoldingLayer(“名字”,'展开')Flattenlayer(“名字”,“平”)lstmlayer(numhidendunits,'OutputMode',“最后一次”,“名字”,'lstm')全连接列(numcrasses,“名字”,'fc') softmaxLayer (“名字”,'softmax'scassificationlayer(“名字”,'分类')];
将图层转换为图层图并连接miniBatchSize
序列折叠层的输出到序列展开层的相应输入。
Lgraph = LayerGraph(层);Lgraph = ConnectLayers(LAPHAGE,“折/ miniBatchSize”,'展开/小贴士');
使用介绍最终网络架构情节
函数。
图绘图(LGROP)
sequenceInputlayer.
,默认情况下,使用通道方向的归一化进行零中心归一化未来发布的行为变化
从R2019B开始,sequenceInputlayer.
默认情况下,使用频道明智的归一化进行零中心归一化。在以前的版本中,此图层使用元素 - 明智的归一化。重现此行为,设置正常化Dimension.
此图层的选项“元素”
.
sequenceInputlayer.
在规范化时忽略填充值R2020A中的行为发生了变化
从R2020A开始,sequenceInputlayer.
对象归一化时忽略输入数据中的填充值。这意味着正常化
选项在sequenceInputlayer.
例如,让训练对数据操作保持不变,'Zerocenter'
归一化现在意味着培训结果不变于数据的平均值。
如果您在填充序列上训练,则在早期版本中计算出的归一化因子可能不同,并且可以产生不同的结果。
[1] M. Kudo,J. Toyama和M. Shimbo。“使用过度区域的多维曲线分类。”模式识别字母.卷。20,第11-13页,第1103-1111页。
[2]UCI机器学习存储库:日语元音数据集.https://archive.ics.uci.edu/ml/datasets/japanese+vowels.
对于向量序列输入,在代码生成期间必须是常数的特征数量。
代码生成不支持金宝app'正常化'
使用函数句柄指定。
使用说明和限制:
生成CUDA.®或使用GPU编码器™或C ++代码,必须先构建和培训深度神经网络。一旦网络训练和评估,您可以将代码生成器配置为生成代码并在使用NVIDIA的平台上部署卷积神经网络®或手臂®GPU处理器。有关更多信息,请参阅与GPU编码器深入学习(GPU编码器).
对于此图层,您可以生成利用NVIDIA CUDA深神经网络库(CUDNN)或NVIDIA TENSORT™高性能推理库的代码。
CUDNN库支持向量和2-D图像序列金宝app。TensorR库仅支持载体输入序列。金宝app
对于向量序列输入,在代码生成期间必须是常数的特征数量。
对于图像序列输入,高度,宽度和通道数量在代码生成期间必须是常数。
代码生成不支持金宝app'正常化'
使用函数句柄指定。
Bilstmlayer.
|classifyandupdateState.
|深网络设计师|featureInputLayer.
|flattenLayer
|gruLayer
|lstmlayer.
|predictandanddatestate.
|重置静止
|sequenceFoldingLayer
|sequenceUnfoldingLayer
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。