主要内容

sequenceFoldingLayer

序列折叠层

描述

序列折叠层将一批图像序列转换为一批图像。使用序列折叠层对图像序列的时间步独立进行卷积运算。

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

创建

描述

= sequenceFoldingLayer创建一个序列折叠层。

例子

= sequenceFoldingLayer(“名字”,的名字创建序列折叠层并设置可选项的名字属性使用名称-值对。例如,sequenceFoldingLayer(“名字”,“褶皱”)用名称创建一个序列折叠层“褶皱”.将属性名用单引号括起来。

属性

全部展开

层名,指定为字符向量或字符串标量。若要在层图中包含层,必须指定非空的唯一层名。如果你用层和的名字被设置为'',然后软件在训练时自动为该层分配一个名称。

数据类型:字符|字符串

层的输入数。这一层只接受单个输入。

数据类型:

输入层名。这一层只接受单个输入。

数据类型:细胞

层输出的数量。

该层有两个输出:

  • “出”—与重塑输入相对应的输出特征图。

  • “miniBatchSize”-进入层的小批量的大小。该输出必须连接到“miniBatchSize”对应序列展开层的输入。

数据类型:

输出层的名称。

该层有两个输出:

  • “出”—与重塑输入相对应的输出特征图。

  • “miniBatchSize”-进入层的小批量的大小。该输出必须连接到“miniBatchSize”对应序列展开层的输入。

数据类型:细胞

例子

全部折叠

创建一个序列折叠层,命名为“褶皱”

层= sequenceFoldingLayer (“名字”“褶皱”
NumOutputs: 2 OutputNames: {'out' 'miniBatchSize'}

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

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

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

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

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

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

定义网络体系结构

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

定义以下网络架构:

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

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

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

  • 一个大小为10(类的数量)的完全连接层,其次是软最大层和分类层。

为了在每个时间步骤上独立地进行卷积运算,在卷积层之前包含一个序列折叠层。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)

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

扩展功能

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

介绍了R2019a