sequenceInputLayer
序列输入层
描述
一个序列输入序列数据网络输入层。
创建
属性
输入序列
InputSize
- - - - - -大小的输入
正整数|向量的正整数
输入的大小,指定为一个正整数或一个向量的正整数。
输入向量序列,
InputSize
是一个标量对应的数量特征。对于一维图像序列输入,
InputSize
是两个元素向量(h c)
,在那里h
图像高度和吗c
图片的是渠道的数量。对二维图像序列输入,
InputSize
向量的三个元素吗[w c h]
,在那里h
图像的高度,w
图像宽度,c
图片的是渠道的数量。3 d图像序列的输入,
InputSize
是四个元素向量(w h d c)
,在那里h
图像的高度,w
图像的宽度,d
图像深度,c
图片的是渠道的数量。
指定最小序列长度的输入数据,使用最小长度
财产。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
最小长度
- - - - - -最低输入数据序列的长度
1
(默认)|正整数
最小序列长度的输入数据,指定为一个正整数。当培训或做预测的网络,如果输入数据都不到最小长度
时间步骤,然后软件将抛出一个错误。
当您创建一个网络downsamples数据在时间维度,你必须照顾好你,网络支持培训数据和预测数据。金宝app有些深度学习层要求输入最小序列长度。例如,一个一维卷积层要求输入至少有尽可能多的时间步过滤器的大小。
时间序列的序列数据通过网络传播,序列长度可以改变。例如,将采样操作,如一维分布可以用更少的步骤的时间比其输入输出数据。这意味着将采样操作会导致后来层网络中抛出一个错误,因为数据已经较短的序列长度超过所需的最小长度层。
火车或组装一个网络时,软件会自动检查长度为1的序列可以通过网络传播。一些网络可能不支持长度为1的序列,但可以成功传播金宝app的时间序列长度。检查网络支持传播你的训练和预期的预测数据,设置金宝app最小长度
属性值的最小长度小于或等于您的数据和预期的最小长度的预测数据。
提示
为了防止卷积和池层变化的数据的大小,设置填充
层的选项“相同”
或“因果”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
归一化
- - - - - -数据归一化
“没有”
(默认)|“zerocenter”
|“zscore”
|“rescale-symmetric”
|“rescale-zero-one”
|函数处理
数据规范化应用每次数据通过输入层向前传播,指定为以下之一:
提示
软件,默认情况下,自动计算出归一化统计时使用trainNetwork
函数。节省时间当训练,为归一化并设置指定所需的统计数据ResetInputNormalization
选项trainingOptions
来0
(的意见
)。
软件标准化适用于所有输入元素,包括填充的值。
数据类型:字符
|字符串
|function_handle
NormalizationDimension
- - - - - -规范化维度
“汽车”
(默认)|“通道”
|“元素”
|“所有”
规范化维度,指定为以下之一:
“汽车”
——如果训练选项假
和您指定任何标准化的统计数据(的意思是
,StandardDeviation
,最小值
,或马克斯
),然后正常的尺寸相匹配的数据。否则,重新计算统计训练时间和应用channel-wise正常化。“通道”
——Channel-wise正常化。“元素”
——Element-wise正常化。“所有”
——所有值正常化使用标量数据。
数据类型:字符
|字符串
的意思是
- - - - - -对中心零位和z分数意味着正常化
[]
(默认)|数字数组|数字标量
对中心零位和z分数意味着正常化,指定为一个数值数组,或空。
如果你指定的意思是
属性,然后归一化
必须“zerocenter”
或“zscore”
。如果的意思是
是[]
,那么trainNetwork
函数计算均值和忽略填充的值。培养一个dlnetwork
对象使用自定义训练循环或组装一个网络没有训练用的assembleNetwork
功能,您必须设置的意思是
属性数值标量或数字数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
StandardDeviation
- - - - - -标准偏差
[]
(默认)|数字数组|数字标量
标准差用于z分数归一化,指定为一个数值数组,数字标量或空的。
如果你指定StandardDeviation
属性,然后归一化
必须“zscore”
。如果StandardDeviation
是[]
,那么trainNetwork
函数计算均值和忽略填充的值。培养一个dlnetwork
对象使用自定义训练循环或组装一个网络没有训练用的assembleNetwork
功能,您必须设置StandardDeviation
属性数值标量或数字数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
最小值
- - - - - -最小值为尺度改变
[]
(默认)|数字数组|数字标量
最小值为尺度改变,指定为一个数值数组,或空。
如果你指定最小值
属性,然后归一化
必须“rescale-symmetric”
或“rescale-zero-one”
。如果最小值
是[]
,那么trainNetwork
函数计算出最小值和忽略填充的值。培养一个dlnetwork
对象使用自定义训练循环或组装一个网络没有训练用的assembleNetwork
功能,您必须设置最小值
属性数值标量或数字数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
马克斯
- - - - - -最高价值尺度改变
[]
(默认)|数字数组|数字标量
最大值为重新调节,指定为一个数值数组,或空。
如果你指定马克斯
属性,然后归一化
必须“rescale-symmetric”
或“rescale-zero-one”
。如果马克斯
是[]
,那么trainNetwork
函数计算出最大值和忽略填充的值。培养一个dlnetwork
对象使用自定义训练循环或组装一个网络没有训练用的assembleNetwork
功能,您必须设置马克斯
属性数值标量或数字数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
SplitComplexInputs
- - - - - -国旗来输入数据分割成真实的和虚构的组件
0
(假
)(默认)|1
(真正的
)
这个属性是只读的。
国旗将输入数据转换成实数和虚数组件指定为这些值之一:
0
(假
)——不分割输入数据。1
(真正的
)——数据分割成真实和虚构的组件。
当SplitComplexInputs
是1
层,然后输出通道作为输入数据的两倍。例如,如果输入数据是复杂值numChannels
渠道,那么层输出数据2 * numChannels
渠道,渠道1
通过numChannels
包含输入数据和真正的组件numChannels + 1
通过2 * numChannels
包含输入数据的虚构的成分。如果输入数据是真实的,那么通道numChannels + 1
通过2 * numChannels
都是零。
输入复数的数据网络,SplitComplexInputs
必须选择输入层1
。
为一个例子,演示如何训练一个网络与复值数据,看看火车与复数的数据网络。
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层
数组输入,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
函数自动分配名称层的名称”
。
数据类型:字符
|字符串
NumInputs
- - - - - -输入数量
0(默认)
这个属性是只读的。
输入层的数量。层没有输入。
数据类型:双
InputNames
- - - - - -输入名字
{}
(默认)
这个属性是只读的。
输入层的名称。层没有输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出
1
(默认)
这个属性是只读的。
输出层的数量。这一层只有一个输出。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
(默认)
这个属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
创建序列输入层
创建一个序列输入层的名称“seq1”
和一个输入12的大小。
层= sequenceInputLayer (12,“名字”,“seq1”)
层= SequenceInputLayer属性:名称:“seq1”InputSize: 12最小长度:1 SplitComplexInputs: 0 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]最小长度:1 SplitComplexInputs: 0 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]
层x1 = 5层阵列层: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.9459
分类LSTM网络
创建一个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网络
创建一个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层。为了防止过度拟合,可以插入后辍学层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)
引用
[1]m .奖赏,富山,和m . Shimbo。“多维曲线分类使用通过地区。”模式识别的字母。11 - 13号20卷,第1111 - 1103页。
[2]UCI机器学习库:日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese +元音
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
为输入向量序列,在代码生成功能必须是一个常数。
代码生成不支持金宝app
“归一化”
指定使用一个函数处理。代码生成不支持复杂的输入和不支持金宝app
“SplitComplexInputs”
选择。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
生成CUDA®或c++代码通过使用GPU编码器™,你必须首先构建和训练神经网络。一旦网络训练和评估,您可以配置代码生成器来生成代码和部署使用NVIDIA的卷积神经网络平台上®或手臂®GPU处理器。有关更多信息,请参见深度学习GPU编码器(GPU编码器)。
对于这一层,您可以生成代码,利用NVIDIA CUDA深层神经网络库(cuDNN),或NVIDIA TensorRT™高性能推理库。
cuDNN库支持向量和二维图像序列。金宝appTensorRT图书馆只支持向量输入序列。金宝app
为输入向量序列,在代码生成功能必须是一个常数。
图像序列的输入,高度,宽度,和渠道的数量必须在代码生成一个常数。
代码生成不支持金宝app
“归一化”
指定使用一个函数处理。代码生成不支持复杂的输入和不支持金宝app
“SplitComplexInputs”
选择。
版本历史
介绍了R2017bR2020a:trainNetwork
计算时忽略了填充值归一化数据
从R2020a开始,trainNetwork
计算时忽略了填充值归一化数据。这意味着归一化
选项sequenceInputLayer
现在让培训不变的数据操作,例如,“zerocenter”
现在标准化意味着训练结果的均值数据不变。
如果你训练的序列,计算归一化因素可能在早期版本不同,可以产生不同的结果。
R2019b:sequenceInputLayer
默认情况下,使用channel-wise中心零位规范化标准化
从R2019b开始,sequenceInputLayer
默认情况下,使用channel-wise中心零位规范化标准化。在以前的版本中,这一层使用element-wise正常化。复制这种行为,设置NormalizationDimension
选择这一层“元素”
。
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。