主要内容

激活

计算深度学习网络层激活

描述

您可以在CPU或GPU上计算深度学习网络层激活。使用GPU需要并行计算工具箱™和支持的GPU设备。有关支持的设备的信息,请参见GPU计算的需求(并行计算工具箱)方法指定硬件要求ExecutionEnvironment名称-值参数。

计算激活使用训练SeriesNetworkDAGNetwork,可以使用激活函数。计算a的激活度dlnetwork对象,使用向前预测函数并指定输出选择。

行为=激活(图片返回带有名称或编号的层的网络激活使用指定的映像。

行为=激活(序列使用指定的序列返回该层的网络激活。

行为=激活(特性使用指定的特性数据返回该层的网络激活。

行为=激活(X1,…,XN使用数值数组或单元格数组中的数据返回该层的网络激活X1、……XN对于多输入网络.输入西对应于网络输入net.InputNames(我)

行为=激活(混合使用训练过的网络返回该层的网络激活具有混合数据类型的多个输入。

例子

行为=激活(___名称=值返回带有由一个或多个名称-值对参数指定的附加选项的网络激活。例如,OutputAs = "行"指定激活输出格式为“行”.将此语法与前面语法中的任何输入参数一起使用。在所有其他输入参数之后指定名称-值参数。

例子

全部折叠

这个例子展示了如何从预先训练的卷积神经网络中提取学习到的图像特征,并使用这些特征训练图像分类器。

特征提取是利用预训练深度网络的表征能力最简单、最快的方法。例如,您可以训练支持向量机(SVM)使用fitcecoc(统计和机器学习工具箱™)提取的特征。因为特征提取只需要通过一次数据,如果您没有GPU来加速网络训练,那么这是一个很好的起点。

加载数据

解压缩示例映像并将其作为映像数据存储加载。imageDatastore根据文件夹名称自动标记图像,并将数据存储为ImageDatastore对象。映像数据存储使您可以存储大型映像数据,包括无法装入内存的数据。将数据分成70%的训练数据和30%的测试数据。

解压缩(“MerchData.zip”);imd = imageDatastore (“MerchData”...IncludeSubfolders = true,...LabelSource =“foldernames”);[imdsTrain, imdsTest] = splitEachLabel (imd, 0.7,“随机”);

这个非常小的数据集现在有55张训练图像和20张验证图像。显示一些示例图像。

numImagesTrain =元素个数(imdsTrain.Labels);idx = randperm (numImagesTrain 16);我= imtile (imd,“帧”, idx);图imshow(我)

负载Pretrained网络

加载一个预先训练的SqueezeNet网络。SqueezeNet接受了超过100万张图像的训练,可以将图像分为1000个对象类别,例如键盘、鼠标、铅笔和许多动物。因此,该模型学习了广泛的图像的丰富特征表示。

网= squeezenet;

分析网络架构。

analyzeNetwork(净)

2022 - 01 - 07 - _16 - 31 - 30. - png

第一层是图像输入层,要求输入图像的大小为227 × 227 × 3,其中3是颜色通道的数量。

.InputSize inputSize = net.Layers (1)
inputSize =1×3227 227 3

提取图像特征

该网络构建了输入图像的层次表示。较深层包含较高级的特征,由较早期层的较低级特征构造。要获得训练和测试图像的特征表示,请使用激活在全球平均池化层“pool10”.要获得图像的较低级别表示,请使用网络中的较早层。

网络需要大小为227 × 227 × 3的输入图像,但是图像数据存储中的图像有不同的大小。若要在将训练和测试图像输入到网络之前自动调整它们的大小,请创建增强的图像数据存储,指定所需的图像大小,并使用这些数据存储作为输入参数激活

augimdsTrain = augmentedImageDatastore (inputSize (1:2), imdsTrain);augimdsTest = augmentedImageDatastore (inputSize (1:2), imdsTest);层=“pool10”;featuresTrain =激活(净、augimdsTrain层,OutputAs =“行”);featuresTest =激活(净、augimdsTest层,OutputAs =“行”);

从训练和测试数据中提取类标签。

TTrain = imdsTrain.Labels;tt = imdsTest.Labels;

适合图像分类器

利用从训练图像中提取的特征作为预测变量,拟合多类支持向量机(SVM)fitcecoc(统计和机器学习工具箱)。

mdl = fitcecoc (featuresTrain TTrain);

测试图像进行分类

利用训练好的支持向量机模型和从测试图像中提取的特征对测试图像进行分类。

featuresTest YPred =预测(mdl);

显示四个带有预测标签的样本测试图像。

Idx = [1 5 10 15];数字i = 1:numel(idx) subplot(2,2,i) i = readimage(imdsTest,idx(i));标签= YPred (idx (i));imshow (I)标题(标签)结束

计算测试集上的分类精度。准确性是网络正确预测的标签的比例。

精度=平均值(YPred == TTest)
精度= 0.9500

该支持向量机具有较高的精度。如果使用特征提取的准确率不够高,那么可以尝试迁移学习。

输入参数

全部折叠

训练过的网络,指定为SeriesNetwork或者一个DAGNetwork对象。可以通过导入预先训练的网络(例如,通过使用googlenet功能)或通过训练自己的网络使用trainNetwork

图像数据,指定为以下之一。

数据类型 描述 示例使用
数据存储 ImageDatastore 保存在磁盘上的映像的数据存储

用保存在磁盘上的图像进行预测,其中图像的大小相同。

当图像大小不同时,使用AugmentedImageDatastore对象。

AugmentedImageDatastore 应用随机仿射几何变换的数据存储,包括调整大小、旋转、反射、剪切和平移

用保存在磁盘上的图像进行预测,其中图像的大小不同。

TransformedDatastore 使用自定义转换函数转换从底层数据存储读取的批量数据的数据存储

  • 对输出不支持的数据存储进行转换激活

  • 对数据存储输出应用自定义转换。

CombinedDatastore 从两个或多个基础数据存储读取数据的数据存储

  • 使用具有多个输入的网络进行预测。

  • 组合来自不同数据源的预测器。

自定义mini-batch数据存储 返回小批量数据的自定义数据存储

使用其他数据存储不支持的格式的数据进行预测。

有关详细信息,请参见开发自定义小批量数据存储

数字数组 指定为数字数组的图像 使用适合内存的数据进行预测,不需要调整大小等额外处理。
表格 指定为表的图像 使用存储在表格中的数据进行预测。

当使用具有多个输入的网络的数据存储时,该数据存储必须是TransformedDatastoreCombinedDatastore对象。

提示

对于图像序列,例如视频数据,使用序列输入参数。

数据存储

数据存储读取小批的图像和响应。当您的数据无法装入内存中时,或者当您希望调整输入数据的大小时,请使用数据存储。

这些数据存储直接兼容激活对图像数据。

请注意,ImageDatastore对象允许使用预取批量读取JPG或PNG图像文件。如果使用自定义函数读取图像,则ImageDatastore对象不预取。

提示

使用augmentedImageDatastore用于深度学习的图像高效预处理,包括图像调整。

请勿使用readFcn选择的imageDatastore函数用于预处理或调整大小,因为此选项通常非常慢。

方法可以使用其他内置数据存储进行预测变换而且结合功能。这些函数可以将从数据存储中读取的数据转换为所需的格式分类

所需的数据存储输出格式取决于网络架构。

网络体系结构 数据存储输出 示例输出
单输入

表或单元格数组,其中第一列指定预测器。

表元素必须是标量、行向量或包含数字数组的1 × 1单元格数组。

自定义数据存储必须输出表。

data =阅读(ds)
data = 4×1表预测器__________________ {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double}
data =阅读(ds)
Data = 4×1 cell array {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double}
多个输入

单元格数组至少numInputs列,numInputs是网络输入的数量。

第一个numInputs列指定每个输入的预测器。

输入的顺序由InputNames网络属性。

data =阅读(ds)
数据= 4×2 cell array {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double}

预测器的格式取决于数据的类型。

数据 格式
二维图像

h——- - - - - -w——- - - - - -c数字数组,hw,c图像的高度、宽度和通道数是分别的吗

三维图像 h——- - - - - -w——- - - - - -d——- - - - - -c数字数组,hwd,c图像的高度、宽度、深度和通道数是否分别为

有关更多信息,请参见用于深度学习的数据存储

数字数组

对于适合内存且不需要额外处理(如增强)的数据,可以将图像数据集指定为数字数组。

数值数组的大小和形状取决于图像数据的类型。

数据 格式
二维图像

h——- - - - - -w——- - - - - -c——- - - - - -N数字数组,hw,c图像的高度、宽度和通道数是否分别为N是图像的数量吗

三维图像 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -N数字数组,hwd,c图像的高度、宽度、深度和通道数是否分别为N是图像的数量吗

表格

作为数据存储或数字数组的替代方案,您还可以在表中指定图像。

在表中指定图像时,表中的每一行都对应于一个观察值。

对于图像输入,预测器必须在表的第一列中,指定为以下之一:

  • 图像的绝对或相对文件路径,指定为字符向量

  • 1 × 1单元格数组包含h——- - - - - -w——- - - - - -c表示二维图像的数值数组,其中hw,c分别对应于图像的高度、宽度和通道数

提示

将复值数据输入到网络中SplitComplexInputs输入层的选项必须为1

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|表格
复数的支持:是的

序列或时间序列数据,指定为下列之一。

数据类型 描述 示例使用
数据存储 TransformedDatastore 使用自定义转换函数转换从底层数据存储读取的批量数据的数据存储

  • 对输出不支持的数据存储进行转换激活

  • 对数据存储输出应用自定义转换。

CombinedDatastore 从两个或多个基础数据存储读取数据的数据存储

  • 使用具有多个输入的网络进行预测。

  • 组合来自不同数据源的预测器。

自定义mini-batch数据存储 返回小批量数据的自定义数据存储

使用其他数据存储不支持的格式的数据进行预测。

有关详细信息,请参见开发自定义小批量数据存储

数字或单元格数组 指定为数值数组的单个序列或指定为数值数组的单元数组的序列数据集 使用适合内存的数据进行预测,不需要额外的处理,如自定义转换。

数据存储

数据存储读取小批序列和响应。当您的数据无法装入内存时,或者当您想对数据应用转换时,请使用数据存储。

这些数据存储直接兼容激活序列数据:

方法可以使用其他内置数据存储进行预测变换而且结合功能。这些函数可以将从数据存储读取的数据转换为所需的表或单元格数组格式激活.例如,可以转换和组合从内存数组和CSV文件中读取的数据ArrayDatastore和一个TabularTextDatastore对象,分别。

数据存储必须返回表或单元格数组中的数据。自定义小批处理数据存储必须输出表。

数据存储输出 示例输出
表格
data =阅读(ds)
data = 4×2表预测  __________________ { 12×50双}{12×50双}{12×50双}{12×50双}
单元阵列
data =阅读(ds)
Data = 4×2 cell array {12×50 double} {12×50 double} {12×50 double} {12×50 double}

预测器的格式取决于数据的类型。

数据 格式的预测
向量序列

c——- - - - - -年代矩阵,c序列的特征数和年代是序列长度

一维图像序列

h——- - - - - -c——- - - - - -年代数组,h而且c分别对应于图像的高度和通道数,和年代为序列长度。

小批中的每个序列必须具有相同的序列长度。

二维图像序列

h——- - - - - -w——- - - - - -c——- - - - - -年代数组,hw,c分别对应于图像的高度、宽度和通道数,和年代为序列长度。

小批中的每个序列必须具有相同的序列长度。

三维图像序列

h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代数组,hwd,c分别对应于图像的高度、宽度、深度和通道数,和年代为序列长度。

小批中的每个序列必须具有相同的序列长度。

对于表中返回的预测器,元素必须包含数值标量、数值行向量或包含数值数组的1 × 1单元格数组。

有关更多信息,请参见用于深度学习的数据存储

数字或单元格数组

对于适合内存且不需要其他处理(如自定义转换)的数据,可以将单个序列指定为数值数组,或将序列数据集指定为数值数组的单元格数组。

对于单元格数组输入,单元格数组必须是N-by-1单元格数组的数字数组,其中N是观察数。表示序列的数值数组的大小和形状取决于序列数据的类型。

输入 描述
向量序列 c——- - - - - -年代矩阵,c序列的特征数量和年代是序列长度
一维图像序列 h——- - - - - -c——- - - - - -年代数组,h而且c分别对应图像的高度和通道数,和年代是序列长度
二维图像序列 h——- - - - - -w——- - - - - -c——- - - - - -年代数组,hw,c分别对应于图像的高度、宽度和通道数,和年代是序列长度
三维图像序列 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代,在那里hwd,c分别为三维图像的高度、宽度、深度和通道数,和年代是序列长度

提示

将复值数据输入到网络中SplitComplexInputs输入层的选项必须为1

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|细胞
复数的支持:是的

特征数据,指定为以下之一。

数据类型 描述 示例使用
数据存储 TransformedDatastore 使用自定义转换函数转换从底层数据存储读取的批量数据的数据存储

  • 对输出不支持的数据存储进行转换激活

  • 对数据存储输出应用自定义转换。

CombinedDatastore 从两个或多个基础数据存储读取数据的数据存储

  • 使用具有多个输入的网络进行预测。

  • 组合来自不同数据源的预测器。

自定义mini-batch数据存储 返回小批量数据的自定义数据存储

使用其他数据存储不支持的格式的数据进行预测。

有关详细信息,请参见开发自定义小批量数据存储

表格 作为表指定的特性数据 使用存储在表格中的数据进行预测。
数字数组 指定为数值数组的特征数据 使用适合内存的数据进行预测,不需要额外的处理,如自定义转换。

数据存储

数据存储读取特性数据和响应的小批。当您的数据无法装入内存时,或者当您想对数据应用转换时,请使用数据存储。

这些数据存储直接兼容激活特性数据:

方法可以使用其他内置数据存储进行预测变换而且结合功能。这些函数可以将从数据存储读取的数据转换为所需的表或单元格数组格式激活.有关更多信息,请参见用于深度学习的数据存储

对于有多个输入的网络,数据存储必须是TransformedDatastoreCombinedDatastore对象。

数据存储必须返回表或单元格数组中的数据。自定义小批处理数据存储必须输出表。数据存储输出的格式取决于网络架构。

网络体系结构 数据存储输出 示例输出
单个输入层

包含至少一列的表或单元格数组,其中第一列指定预测器。

表元素必须是标量、行向量或包含数字数组的1 × 1单元格数组。

自定义小批处理数据存储必须输出表。

有一个输入的网络表:

data =阅读(ds)
data = 4×2表预测  __________________ { 24×24×1双}{1双}{24×1双}{24×1双}

有一个输入的网络单元格数组:

data =阅读(ds)
Data = 4×1 cell array {24×1 double} {24×1 double} {24×1 double} {24×1 double}

多个输入层

单元格数组至少numInputs列,numInputs是网络输入的数量。

第一个numInputs列指定每个输入的预测器。

输入的顺序由InputNames网络属性。

有两个输入的网络单元阵列:

data =阅读(ds)
数据= 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double}

预测器肯定是这样c-by-1列向量,其中c就是特征的数量。

有关更多信息,请参见用于深度学习的数据存储

表格

对于适合内存且不需要额外处理(如自定义转换)的特征数据,可以将特征数据和响应指定为表。

表中的每一行都对应一个观察结果。预测器在表列中的排列取决于任务的类型。

任务 预测
功能分类

在一个或多个列中指定为标量的特性。

数字数组

对于适合内存且不需要其他处理(如自定义转换)的特征数据,可以将特征数据指定为数值数组。

数值数组必须是N——- - - - - -numFeatures数字数组,N观察的次数和numFeatures是输入数据的特征数。

提示

将复值数据输入到网络中SplitComplexInputs输入层的选项必须为1

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|表格
复数的支持:是的

具有多个输入的网络的数字或单元格数组。

对于图像、序列和特征预测器输入,预测器的格式必须与中描述的格式相匹配图片序列,或特性参数描述,分别。

有关演示如何训练具有多个输入的网络的示例,请参见图像与特征数据训练网络

将复值数据输入到网络中SplitComplexInputs输入层的选项必须为1

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|细胞
复数的支持:是的

混合数据,指定为以下之一。

数据类型 描述 示例使用
TransformedDatastore 使用自定义转换函数转换从底层数据存储读取的批量数据的数据存储

  • 使用具有多个输入的网络进行预测。

  • 不支持的数据存储的转换输出激活所以他们有必要的格式。

  • 对数据存储输出应用自定义转换。

CombinedDatastore 从两个或多个基础数据存储读取数据的数据存储

  • 使用具有多个输入的网络进行预测。

  • 组合来自不同数据源的预测器。

自定义mini-batch数据存储 返回小批量数据的自定义数据存储

使用其他数据存储不支持的格式的数据进行预测。

有关详细信息,请参见开发自定义小批量数据存储

方法可以使用其他内置数据存储进行预测变换而且结合功能。这些函数可以将从数据存储读取的数据转换为所需的表或单元格数组格式激活.有关更多信息,请参见用于深度学习的数据存储

数据存储必须返回表或单元格数组中的数据。自定义小批处理数据存储必须输出表。数据存储输出的格式取决于网络架构。

数据存储输出 示例输出

单元阵列与numInputs列,numInputs是网络输入的数量。

输入的顺序由InputNames网络属性。

data =阅读(ds)
数据= 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double}

对于图像、序列和特征预测器输入,预测器的格式必须与中描述的格式相匹配图片序列,或特性参数描述,分别。

有关演示如何训练具有多个输入的网络的示例,请参见图像与特征数据训练网络

提示

若要将数字数组转换为数据存储,请使用arrayDatastore

层提取激活,指定为数值索引或字符向量。

计算a的活化SeriesNetwork对象,使用它的数值索引指定层,或作为对应于层名的字符向量。

计算a的活化DAGNetwork对象,指定该层作为对应于层名的字符向量。如果层有多个输出,指定层和输出作为层名,后面跟着字符“/”,然后是层输出的名称。也就是说,是这样的形式“layerName / outputName”

例子:3.

例子:“conv1”

例子:“mpool /出”

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:MiniBatchSize = 256指定小批处理大小为256。

输出激活的格式指定为“通道”“行”,或“列”.有关输出格式的说明,请参见行为

对于图像输入,如果OutputAs选择是“通道”,则输入数据中的图像可以大于网络图像输入层的输入大小。对于其他输出格式,输入中的图像必须与网络图像输入层的输入大小相同。

用于预测的小批量的大小,指定为正整数。更大的迷你批处理大小需要更多的内存,但可以导致更快的预测。

填充、截断或分割输入序列的选项,指定为以下之一:

  • “最长”-每个小批中的衬垫序列与最长序列的长度相同。这个选项不会丢弃任何数据,尽管填充会给网络带来噪音。

  • “最短”-截断每个小批中的序列,使其长度与最短的序列相同。此选项确保不添加填充,但代价是丢弃数据。

  • 正整数——对于每个小批,将序列填充为小批中最长序列的长度,然后将序列分割为指定长度的更小的序列。如果发生分裂,那么软件会创建额外的小批量。如果指定的序列长度没有平均分配数据的序列长度,那么包含这些序列末端的小批次的长度小于指定的序列长度。如果完整序列不适合内存,则使用此选项。或者,尝试减少每个小批处理的序列数量MiniBatchSize选项设置为较低的值。

要了解关于填充、截断和分割输入序列的效果的更多信息,请参见序列填充、截断和分割

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

用来填充输入序列的值,指定为标量。

该选项仅在以下情况下有效SequenceLength“最长”或者一个正整数。不垫序列用因为这样做会在整个网络中传播错误。

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

填充或截断的方向,指定为下列之一:

  • “正确”-在右侧填充或截断序列。序列开始在同一时间步骤和软件截断或添加填充序列的结尾。

  • “左”-在左侧填充或截断序列。该软件截断或添加填充序列的开始,以使序列结束在同一时间步骤。

因为循环层每次处理一个时间步的序列数据,当循环层OutputMode属性是“最后一次”,在最后的时间步长的任何填充都会对图层输出产生负面影响。若要在左侧填充或截断序列数据,请设置SequencePaddingDirection选项“左”

对于序列到序列网络(当OutputMode属性是“序列”对于每个循环层),第一个时间步骤中的任何填充都可能对早期时间步骤的预测产生负面影响。若要在右侧填充或截断序列数据,请设置SequencePaddingDirection选项“正确”

要了解关于填充、截断和分割输入序列的效果的更多信息,请参见序列填充、截断和分割

性能优化,指定为以下之一:

  • “汽车”-自动应用适合输入网络和硬件资源的一些优化。

  • “墨西哥人”—编译并执行MEX函数。该选项仅在使用GPU时有效。使用GPU需要并行计算工具箱和支持的GPU设备。有关支持的设备的信息,请参见GPU计算的需求(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,则软件返回一个错误。

  • “没有”—禁用所有加速。

如果加速度“汽车”,然后用MATLAB®应用许多兼容优化,但不生成MEX函数。

“汽车”而且“墨西哥人”选项可以以增加初始运行时间为代价提供性能优势。使用兼容参数的后续调用会更快。当您计划使用新的输入数据多次调用函数时,请使用性能优化。

“墨西哥人”选项根据函数调用中使用的网络和参数生成并执行MEX函数。您可以同时拥有与单个网络相关联的多个MEX函数。清除网络变量也会清除与该网络关联的任何MEX函数。

“墨西哥人”选项在使用单一GPU时可用。

使用“墨西哥人”选项,你必须安装C/ c++编译器和GPU Coder™接口深度学习库支持包。在MATLAB中使用Add-On Explorer安装支持包。有关设置说明,请参见墨西哥人设置(GPU编码器).GPU Coder不需要。

“墨西哥人”选项支持包含在支持层(GPU编码器)页,除了sequenceInputLayer而且featureInputLayer对象。

MATLAB编译器™不支持在使用“墨西哥人”选择。

硬件资源,指定为以下之一:

  • “汽车”—如果有图形处理器,请使用;否则,请使用CPU。

  • “图形”—使用GPU。使用GPU需要并行计算工具箱和支持的GPU设备。有关支持的设备的信息,请参见GPU计算的需求(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,则软件返回一个错误。

  • “cpu”—使用CPU。

  • “multi-gpu”—在一台机器上使用多个gpu,根据默认集群配置文件使用本地并行池。如果当前没有并行池,软件启动一个并行池,池大小等于可用gpu的数量。

  • “平行”—根据默认集群配置文件使用本地或远程并行池。如果当前没有并行池,软件将使用默认的集群配置文件启动一个并行池。如果池可以访问GPU,那么只有具有唯一GPU的工作者执行计算。如果池中没有gpu,那么计算将在所有可用的CPU工作者上进行。

有关何时使用不同执行环境的更多信息,请参见在并行、gpu和云上扩展深度学习

“图形”“multi-gpu”,“平行”选项需要并行计算工具箱。要使用GPU进行深度学习,还必须有支持的GPU设备。有关支持的设备的信息,请参见GPU计算的需求(并行计算工具箱)如果您选择了其中一个选项,而并行计算工具箱或合适的GPU不可用,那么软件将返回一个错误。

与具有循环层的网络并行进行预测(通过设置ExecutionEnvironment要么“multi-gpu”“平行”),SequenceLength选项必须是“最短”“最长”

具有自定义层的网络包含状态参数不支持并行预测。

输出参数

全部折叠

来自网络层的激活,作为数值数组或数值数组的单元格数组返回。的格式行为取决于输入数据的类型,层输出的类型和指定的OutputAs选择。

图像或折叠序列输出

如果该层输出图像或折叠序列数据,则行为是一个数值数组。

OutputAs 行为
“通道”

对于二维图像输出,行为是一个h——- - - - - -w——- - - - - -c——- - - - - -n数组,hw,c所选层的输出通道的高度、宽度和数量分别是和吗n是图像的数量。在这种情况下,法》(::,:,我)控件的激活th形象。

对于3d图像输出,行为是一个h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -n数组,hwd,c为所选层的输出分别设置的高度、宽度、深度和通道数量和n是图像的数量。在这种情况下,法案(::,:,:,我)控件的激活th形象。

对于折叠的二维图像序列输出,行为是一个h——- - - - - -w——- - - - - -c————(n年代)数组,hw,c分别为所选层输出的高度、宽度和通道数,n是数列的个数,和年代为序列长度。在这种情况下,法》(:,:,:,(t - 1) * n + k)包含时间步长的激活tk序列。

对于折叠的三维图像序列输出,行为是一个h——- - - - - -w——- - - - - -d——- - - - - -c————(n年代)数组,hwd,c分别为所选层输出的高度、宽度、深度和通道数,n是数列的个数,和年代为序列长度。在这种情况下,行为 (:,:,:,:,( t - 1) * n + k)包含时间步长的激活tk序列。

“行”

对于二维和三维图像输出,行为是一个n——- - - - - -矩阵,n是图像的数量和是该层的输出元素的数量。在这种情况下,法案(我,:)控件的激活th形象。

对于折叠的二维和三维图像序列输出,行为是一个(n年代)———矩阵,n就是序列的个数,年代是序列长度,和是该层的输出元素的数量。在这种情况下,法》((t - 1) * n + k,:)包含时间步长的激活tk序列。

“列”

对于二维和三维图像输出,行为是一个——- - - - - -n矩阵,从选择的层和输出元素的数量n是图像的数量。在这种情况下,法》(:,我)控件的激活th形象。

对于折叠的二维和三维图像序列输出,行为是一个————(n年代)矩阵,为所选层的输出元素数量,n是数列的个数,和年代为序列长度。在这种情况下,法案(:,(t - 1) * n + k)包含时间步长的激活tk序列。

顺序输出

如果有序列输出(例如,LSTM层的输出模式“序列”),然后行为是单元格数组。在这种情况下,“OutputAs”选项必须是“通道”

OutputAs 行为
“通道”

对于矢量序列输出,行为是一个n-by-1 cell array ofc——- - - - - -年代矩阵,n就是序列的个数,c序列中特征的数量,和年代为序列长度。

对于二维图像序列输出,行为是一个n-by-1 cell array ofh——- - - - - -w——- - - - - -c——- - - - - -年代矩阵,n就是序列的个数,hw,c图像的高度、宽度和通道数分别是和吗年代为序列长度。

对于三维图像序列输出,行为是一个n-by-1 cell array ofh——- - - - - -w——- - - - - -c——- - - - - -d——- - - - - -年代矩阵,n就是序列的个数,hwd,c图像的高度、宽度、深度和通道数量分别是和吗年代为序列长度。

在这些情况下,行为{我}控件的激活序列。

特征向量和单时间步输出

如果输出特征向量或序列的单个时间步(例如,具有输出模式的LSTM层)“最后一次”),然后行为是一个数值数组。

OutputAs 行为
“通道”

对于包含向量数据的特征向量或单个时间步长,行为是一个c——- - - - - -n矩阵,n观察的次数和c就是特征的数量。

对于包含二维图像数据的单个时间步长,行为是一个h——- - - - - -w——- - - - - -c——- - - - - -n数组,n序列的个数和hw,c分别为图像的高度、宽度和通道数。

对于包含三维图像数据的单个时间步长,行为是一个h——- - - - - -w——- - - - - -c——- - - - - -d——- - - - - -n数组,n序列的个数和hwd,c分别为图像的高度、宽度、深度和通道数。

“行” n——- - - - - -矩阵,n观察的次数和是所选层的输出元素的数量。在这种情况下,法案(我,:)控件的激活序列。
“列” ——- - - - - -n矩阵,从选择的层和输出元素的数量n是观察数。在这种情况下,法》(:,我)控件的激活th形象。

算法

训练网络时使用trainNetwork函数,或者在使用预测或验证函数时DAGNetwork而且SeriesNetwork对象,该软件使用单精度浮点算术执行这些计算。用于训练、预测和验证的函数包括trainNetwork预测分类,激活.当你使用cpu和gpu训练网络时,该软件使用单精度算法。

参考文献

[1]工藤,美一,富山俊,Shimbo Masaru。“利用穿过区域的多维曲线分类”。模式识别的字母20日,没有。11-13(1999年11月):1103-11。https://doi.org/10.1016/s0167 - 8655 (99) 00077 - x

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

扩展功能

版本历史

介绍了R2016a

全部展开

Baidu
map