主要内容

sequenceInputLayer

序列输入层

描述

一个序列输入序列数据网络输入层。

创建

描述

= sequenceInputLayer (inputSize)创建一个序列输入层和设置InputSize财产。

例子

= sequenceInputLayer (inputSize,名称,值)设置可选归一化,的意思是,的名字属性使用名称-值对。您可以指定多个名称-值对。在单引号附上每个属性的名字。

属性

全部展开

图像输入

输入的大小,指定为一个正整数或一个向量的正整数。

  • 输入向量序列,InputSize是一个标量对应的数量特征。

  • 对二维图像序列输入,InputSize向量的三个元素吗[w c h],在那里h图像的高度,w图像宽度,c图片的是渠道的数量。

  • 3 d图像序列的输入,InputSize是四个元素向量(w h d c),在那里h图像的高度,w图像的宽度,d图像深度,c图片的是渠道的数量。

例子:One hundred.

数据规范化应用每次数据通过输入层向前传播,指定为以下之一:

  • “zerocenter”——减去指定的意思的意思是

  • “zscore”——减去指定的意思的意思是然后除以StandardDeviation

  • “rescale-symmetric”——重新输入的范围内[1]使用指定的最小和最大值最小值马克斯,分别。

  • “rescale-zero-one”——重新输入的范围内[0,1]使用指定的最小和最大值最小值马克斯,分别。

  • “没有”——不正常输入数据。

  • 函数处理——规范化数据使用指定的函数。函数必须的形式Y = func (X),在那里X输入数据,输出Y规范化的数据。

提示

软件,默认情况下,自动计算标准化在训练时间统计。节省时间当训练,为归一化并设置指定所需的统计数据“ResetInputNormalization”选项trainingOptions

如果输入数据包含填充,然后正常化时忽略填充层值输入数据。

规范化维度,指定为以下之一:

  • “汽车”——如果训练选项和您指定任何标准化的统计数据(的意思是,StandardDeviation,最小值,或马克斯),然后正常的尺寸相匹配的数据。否则,重新计算统计训练时间和应用channel-wise正常化。

  • “通道”——Channel-wise正常化。

  • “元素”——Element-wise正常化。

  • “所有”——所有值正常化使用标量数据。

对中心零位和z分数意味着正常化,指定为一个数值数组,或空。

  • 输入向量序列,的意思是必须是一个InputSize每通道1的向量方法,数值标量或[]

  • 对二维图像序列输入,的意思是必须是数值型数组的大小一样吗InputSize,1-by-1-byInputSize (3)每通道数组方式,数字标量或[]

  • 3 d图像序列的输入,的意思是必须是数值型数组的大小一样吗InputSize,1-by-1-by-1-byInputSize (4)每通道数组方式,数字标量或[]

如果你指定的意思是属性,然后归一化必须“zerocenter”“zscore”。如果的意思是[],那么软件计算平均培训时间。

你可以设置这个属性在创建网络没有培训(例如,当组装网络使用assembleNetwork)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

标准差用于z分数归一化,指定为一个数值数组,数字标量或空的。

  • 输入向量序列,StandardDeviation必须是一个InputSize每通道1的向量的标准差,数字标量或[]

  • 对二维图像序列输入,StandardDeviation必须是数值型数组的大小一样吗InputSize,1-by-1-byInputSize (3)每通道的标准差,数字标量或[]

  • 3 d图像序列的输入,StandardDeviation必须是数值型数组的大小一样吗InputSize,1-by-1-by-1-byInputSize (4)每通道的标准差,或数字标量。

如果你指定StandardDeviation属性,然后归一化必须“zscore”。如果StandardDeviation[],那么软件计算标准差的培训时间。

你可以设置这个属性在创建网络没有培训(例如,当组装网络使用assembleNetwork)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

最小值为尺度改变,指定为一个数值数组,或空。

  • 输入向量序列,最小值必须是一个InputSize每通道1的向量方法或数值标量。

  • 对二维图像序列输入,最小值必须是数值型数组的大小一样吗InputSize,1-by-1-byInputSize (3)每通道数组的最小值,或数字标量。

  • 3 d图像序列的输入,最小值必须是数值型数组的大小一样吗InputSize,1-by-1-by-1-byInputSize (4)每通道数组的最小值,或数字标量。

如果你指定最小值属性,然后归一化必须“rescale-symmetric”“rescale-zero-one”。如果最小值[],然后在训练时间最小值计算的软件。

你可以设置这个属性在创建网络没有培训(例如,当组装网络使用assembleNetwork)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

最大值为重新调节,指定为一个数值数组,或空。

  • 输入向量序列,马克斯必须是一个InputSize每通道1的向量方法或数值标量。

  • 对二维图像序列输入,马克斯必须是数值型数组的大小一样吗InputSize,1-by-1-byInputSize (3)每通道数组的最大值,数字标量或[]

  • 3 d图像序列的输入,马克斯必须是数值型数组的大小一样吗InputSize,1-by-1-by-1-byInputSize (4)每通道数组的最大值,数字标量或[]

如果你指定马克斯属性,然后归一化必须“rescale-symmetric”“rescale-zero-one”。如果马克斯[],那么软件计算训练时间的最大值。

你可以设置这个属性在创建网络没有培训(例如,当组装网络使用assembleNetwork)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

图层名称,指定为一个特征向量或字符串标量。包括在一层一层图,您必须指定一个非空的独特的层的名字。如果你训练一个网络层和系列的名字被设置为软件自动分配一个名称,那么在训练时间层。

数据类型:字符|字符串

输入层的数量。层没有输入。

数据类型:

输入层的名称。层没有输入。

数据类型:细胞

输出层的数量。这一层只有一个输出。

数据类型:

输出层的名称。这一层只有一个输出。

数据类型:细胞

例子

全部折叠

创建一个序列输入层的名称“seq1”和一个输入12的大小。

层= sequenceInputLayer (12,“名字”,“seq1”)
层= SequenceInputLayer属性:名称:“seq1”InputSize: 12 Hyperparameters规范化:‘没有’NormalizationDimension:“汽车”

包括一个序列输入层数组中。

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer inputSize lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出

创建一个序列输入层的224 - 224年的RGB图像序列的名字“seq1”

层= sequenceInputLayer ((224 224 3),“名字”,“seq1”)
层= SequenceInputLayer属性:名称:“seq1”InputSize: [224 224 3] Hyperparameters正常化:“没有一个”NormalizationDimension:“汽车”

火车深学习LSTM sequence-to-label网络分类。

加载描述的日本元音数据集[1]和[2]。XTrain是一个单元阵列包含270可变长度的序列有12个功能对应LPC倒谱系数。Y是标签的分类向量1,2,…,9。的条目XTrain与12行矩阵(为每个功能一行)和不同数量的列(每个时间步一列)。

[XTrain, YTrain] = japaneseVowelsTrainData;

可视化系列第一次在一个阴谋。每一行对应一个功能。

图绘制(XTrain{1}”)标题(“训练观察1”)numFeatures =大小(XTrain {1}, 1);传奇(“特性”+字符串(1:numFeatures),“位置”,“northeastoutside”)

定义LSTM网络体系结构。指定输入大小12(功能的输入数据的数量)。指定一个LSTM层有100个隐藏的单位和输出序列的最后一个元素。最后,指定9类包括一个完全连接层的9码,其次是softmax层和一层分类。

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer inputSize lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层= 5×1层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出

指定培训选项。指定的解算器“亚当”“GradientThreshold”为1。设置mini-batch大小27和设置时代的最大数量为70。

因为mini-batches小短序列,CPU更适合培训。集“ExecutionEnvironment”“cpu”。火车在GPU,如果可用,集“ExecutionEnvironment”“汽车”(默认值)。

maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (“亚当”,“ExecutionEnvironment”,“cpu”,“MaxEpochs”maxEpochs,“MiniBatchSize”miniBatchSize,“GradientThreshold”,1“详细”假的,“阴谋”,“训练进步”);

火车LSTM网络培训指定的选项。

网= trainNetwork (XTrain、YTrain层,选择);

测试集和分类序列加载到扬声器。

[XTest,欧美]= japaneseVowelsTestData;

测试数据进行分类。指定相同的mini-batch大小用于培训。

XTest YPred =分类(净,“MiniBatchSize”,miniBatchSize);

计算预测的分类精度。

acc = (YPred = =欧美)。/元素个数(欧美)
acc = 0.9514

创建一个LSTM sequence-to-label分类网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层,softmax层和输出层分类。

组的大小顺序输入层特性的输入数据的数量。设置大小完全连接层的类的数量。你不需要指定序列长度。

对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”

numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];

为一个例子,演示如何为sequence-to-label培训LSTM网络分类和分类新数据,看到的使用深度学习序列分类

创建一个LSTM sequence-to-sequence网络分类,使用相同的架构对于sequence-to-label分类,但LSTM层的设置输出模式“序列”

numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];

创建一个LSTM sequence-to-one回归网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层和回归输出层。

组的大小顺序输入层特性的输入数据的数量。完全连接层的大小设置为响应的数量。你不需要指定序列长度。

对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numResponses) regressionLayer];

创建一个LSTM sequence-to-sequence回归网络使用相同的架构对于sequence-to-one回归,但LSTM层的设置输出模式“序列”

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numResponses) regressionLayer];

为一个例子,演示如何训练一个LSTM网络sequence-to-sequence回归和预测新数据,看到的使用深度学习Sequence-to-Sequence回归

你可以更深的插入额外的LSTM LSTM网络层与输出模式“序列”之前LSTM层。为了防止过度拟合,可以插入后辍学层LSTM层。

sequence-to-label分类网络,输出模式的最后LSTM层必须“最后一次”

numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“最后一次”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];

sequence-to-sequence分类网络,输出模式的最后LSTM层必须“序列”

numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= [sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“序列”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];

创建一个深入学习网络包含的图像序列数据,如视频和医学图像数据。

  • 输入序列的图像到一个网络,使用序列输入层。

  • 卷积操作独立应用于每个时间步,首先将图像序列转换为一个数组的图像使用序列折叠层。

  • 恢复执行这些操作后的序列结构,这一系列图像转换为图像序列使用序列展开层。

  • 将图像转化为特征向量,使用平层。

你可以输入向量序列LSTM和BiLSTM层。

定义网络体系结构

创建一个分类LSTM网络将28-by-28灰度图像序列分为10类。

定义以下网络体系结构:

  • 一个序列输入层和一个输入的大小[28 28 1]

  • 一批卷积,规范化,ReLU层块20 5-by-5过滤器。

  • LSTM层有200个隐藏单元输出最后一次步。

  • 完全连接一层10码(类的数量),后跟一个softmax层和一个分类层。

独立执行卷积操作在每个时间步,包括序列卷积前层折叠层。LSTM层期望向量序列的输入。恢复序列结构和重塑卷积层的输出序列的特征向量,插入序列卷积之间展开层和一层平层和LSTM层。

inputSize = [28 28 1];filterSize = 5;numFilters = 20;numHiddenUnits = 200;numClasses = 10;层= [sequenceInputLayer (inputSize“名字”,“输入”)sequenceFoldingLayer (“名字”,“折”)convolution2dLayer (filterSize numFilters,“名字”,“conv”)batchNormalizationLayer (“名字”,bn的)reluLayer (“名字”,“relu”)sequenceUnfoldingLayer (“名字”,“展开”)flattenLayer (“名字”,“平”)lstmLayer (numHiddenUnits“OutputMode”,“最后一次”,“名字”,“lstm”)fullyConnectedLayer (numClasses“名字”,“俱乐部”)softmaxLayer (“名字”,“softmax”)classificationLayer (“名字”,“分类”));

转换层一层图和连接miniBatchSize的输出序列折叠层的相应输入序列展开层。

lgraph = layerGraph(层);lgraph = connectLayers (lgraph,“折/ miniBatchSize”,“展开/ miniBatchSize”);

查看最后的网络体系结构使用情节函数。

图绘制(lgraph)

兼容性的考虑

全部展开

在未来的发布行为改变

行为改变R2020a

引用

[1]m .奖赏,富山,和m . Shimbo。“多维曲线分类使用通过地区。”模式识别的字母。11 - 13号20卷,第1111 - 1103页。

[2]UCI机器学习库:日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese +元音

扩展功能

介绍了R2017b