主要内容

sequenceUnfoldingLayer

序列展开层

描述

序列展开层在序列折叠后恢复输入数据的序列结构。

若要使用序列展开层,必须连接miniBatchSize输出折叠层的相应序列miniBatchSize序列展开层的输入。有关示例,请参见创建视频分类网络

创建

描述

= sequenceUnfoldingLayer创建一个序列展开层。

例子

= sequenceUnfoldingLayer(“名字”,的名字创建一个序列展开层,并设置可选的名字属性。例如,sequenceUnfoldingLayer('名称',' unfold1 ')创建名称为序列展开层“unfold1”.将属性名用单引号括起来。

属性

全部展开

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有该名称的层分配名称

数据类型:字符|字符串

该层的输入数量。

这个层有两个输入:

  • “在”—输入特征图。

  • “miniBatchSize”-对应序列折叠层的小批尺寸。此输出必须连接到“miniBatchSize”输出相应的序列折叠层。

数据类型:

输入层的名称。

这个层有两个输入:

  • “在”—输入特征图。

  • “miniBatchSize”-对应序列折叠层的小批尺寸。此输出必须连接到“miniBatchSize”输出相应的序列折叠层。

数据类型:细胞

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建一个序列展开层的名称“unfold1”

层=序列展开层(“名字”“unfold1”
Name: 'unfold1' NumInputs: 2 InputNames: {'in' 'miniBatchSize'}

为包含图像序列的数据(如视频和医学图像数据)创建深度学习网络。

  • 要将图像序列输入到网络中,请使用序列输入层。

  • 为了独立地对每个时间步应用卷积运算,首先使用序列折叠层将图像序列转换为图像数组。

  • 若要在执行这些操作后恢复序列结构,请使用序列展开层将此图像数组转换回图像序列。

  • 要将图像转换为特征向量,请使用压平层。

然后,您可以将向量序列输入到LSTM和BiLSTM层。

定义网络架构

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

定义如下网络架构:

  • 输入大小为的序列输入层[28 28 1]

  • 一个带有20个5 × 5滤波器的卷积、批归一化和ReLU层块。

  • 一个带有200个隐藏单元的LSTM层,只输出最后一个时间步长。

  • 一个大小为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(“折/ miniBatchSize”“展开/ miniBatchSize”);

工具查看最终的网络架构情节函数。

图绘制(lgraph)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

在R2019a中引入