主要内容

激活

计算深度学习网络层激活

描述

你可以计算深度学习网络层激活一个CPU或GPU。使用GPU需要并行计算工具箱™和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)指定使用的硬件需求ExecutionEnvironment名称-值对的论点。

行为=激活(,洛桑国际管理发展学院,)返回网络激活特定的层使用训练网络和图像数据存储的图像数据洛桑国际管理发展学院

行为=激活(,ds,)返回网络激活使用数据存储中的数据ds

行为=激活(,X,)返回网络激活使用图像或特性数值数组中的数据X

行为=激活(,X1,…, XN)返回数值数组中的数据网络激活X1、…XNmutli-input网络。输入对应于网络的输入net.InputNames(我)

行为=激活(,序列,)返回网络激活的复发性网络(例如,一个LSTM或格勒乌网络),在那里序列包含顺序或时间序列预测。

行为=激活(,资源描述,)返回网络激活使用数据表中资源描述

例子

行为=激活(___,名称,值)返回网络激活附加选项指定一个或多个参数名称-值对。例如,“OutputAs”、“行”指定激活输出格式“行”。其他所有输入参数后指定参数名称-值对。

例子

全部折叠

这个例子展示了如何提取图像特征认识从pretrained卷积神经网络,训练一个图像分类器,并使用这些特性。特征提取是最简单和最快的方式使用pretrained深层网络的表征能力。例如,您可以使用训练支持向量机(SVM)金宝appfitcecoc(统计和机器学习的工具箱™)提取的特征。因为特征提取只需要一个通过数据,这是一个很好的起点,如果你没有一个GPU加速网络训练。

加载数据

解压缩和加载示例图像作为图像数据存储。imageDatastore自动标签图像基于文件夹的名字和存储数据作为ImageDatastore对象。图像数据存储可以存储大量图像数据,包括数据,并不适合在内存中。把数据分成70%的训练,30%测试数据。

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

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

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

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

负载Pretrained网络

加载一个pretrained SqueezeNet网络。SqueezeNet培训超过一百万张图片,可以分类图像到1000年对象类别,例如,键盘,鼠标,铅笔,和许多动物。结果,模型已经学会丰富广泛的图像特征表示。

网= squeezenet;

分析网络体系结构。

analyzeNetwork(净)

图像输入层,第一层要求输入的图像大小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”,“行”);

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

YTrain = imdsTrain.Labels;欧美= imdsTest.Labels;

适合图像分类器

使用从训练图像提取的特征作为预测变量和适应多类支持向量机(SVM)使用金宝appfitcecoc(统计和机器学习的工具箱)。

mdl = fitcecoc (featuresTrain YTrain);

测试图像进行分类

使用训练SVM模型分类测试图像和测试图像的特征提取。

featuresTest YPred =预测(mdl);

显示四个样品的测试图像与他们预测标签。

idx = [1 5 10 15];图i = 1:元素个数(idx)次要情节(2,2,我)我= readimage (imdsTest idx (i));标签= YPred (idx (i));imshow (I)标题(标签)结束

图包含4轴对象。坐标轴对象1标题MathWorks帽包含一个类型的对象的形象。坐标轴对象2标题MathWorks多维数据集包含一个类型的对象的形象。坐标轴对象3标题MathWorks扑克牌包含一个类型的对象的形象。坐标轴对象4标题MathWorks螺丝刀包含一个类型的对象的形象。

计算测试集上的分类精度。精度是标签的一部分网络预测正确。

精度=意味着(YPred = =次)
精度= 1

这SVM具有较高的精度。如果使用特征提取精度不够高,然后试着转移学习。

输入参数

全部折叠

训练网络,作为一个指定SeriesNetwork或者一个DAGNetwork对象。你可以通过导入pretrained训练网络的网络(例如,通过使用googlenet函数)或通过训练自己的网络使用trainNetwork

图像数据存储,指定为一个ImageDatastore对象。

ImageDatastore允许分批阅读使用预取JPG和PNG图像文件。如果你使用一个自定义函数读取图像,然后ImageDatastore不预取。

提示

使用augmentedImageDatastore为深度学习有效的图像预处理包括图像缩放。

不使用readFcn选择imageDatastore为预处理或调整这个选项通常是明显慢。

数据存储的内存不足数据和预处理。数据存储必须返回一个表或一个单元阵列中的数据。数据存储的格式输出取决于网络体系结构。

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

表或单元阵列,第一列指定了预测。

表格元素必须标量、行向量或1×1细胞数组包含一个数字数组。

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

data =阅读(ds)
data = 4×1表预测_____________{224×224×3双}{224×224×3双}{224×224×3双}{224×224×3双}
data =阅读(ds)
data = 4×1单元阵列{224×224×3双}{224×224×3双}{224×224×3双}{224×224×3双}
多个输入

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

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

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

data =阅读(ds)
data = 4×2单元阵列{224×224×3双}{128×128×3双}{224×224×3双}{128×128×3双}{224×224×3双}{128×128×3双}{224×224×3双}{128×128×3双}

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

数据 格式的预测
二维图像

h——- - - - - -w——- - - - - -c数字数组,h,w,c高度,宽度,分别和通道图像的数量。

三维图像

h——- - - - - -w——- - - - - -d——- - - - - -c数字数组,h,w,d,c的高度、宽度、深度,分别和通道图像的数量。

向量序列

c——- - - - - -年代矩阵,c序列的特性和吗年代是序列长度。

一维图像序列

h——- - - - - -c——- - - - - -年代数组,hc对应于图像的高度和数量的渠道,分别年代是序列长度。

mini-batch中的每个序列必须具有相同的序列长度。

二维图像序列

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

mini-batch中的每个序列必须具有相同的序列长度。

三维图像序列

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

mini-batch中的每个序列必须具有相同的序列长度。

特性

c1列向量,c的数量特征。

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

图像或特征数据,指定为一个数字数组。数组的大小取决于类型的输入:

输入 描述
二维图像 一个h——- - - - - -w——- - - - - -c——- - - - - -N数字数组,h,w,c高度,宽度,和数字通道的图像,分别和N是图片的数量。
三维图像 一个h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -N数字数组,h,w,d,c的高度、宽度、深度和通道的图像,分别和N是图片的数量。
特性 一个N——- - - - - -numFeatures数字数组,N是观察和的数量吗numFeatures是功能的输入数据的数量。

如果数组包含年代,然后通过网络传播。

对于网络有多个输入,您可以指定多个数组X1、…XN,在那里N网络的输入和输入的数量吗对应于网络的输入net.InputNames(我)

图像输入,如果“OutputAs”选择是“渠道”在输入数据,那么图像X可以大于输入大小的图像网络的输入层。其他的输出格式,图片X必须具有相同的大小作为输入图像网络的输入层的大小。

顺序或时间序列数据,指定为一个N1单元阵列的数字数组,N是观测的数量,一个数值数组代表一个序列,或数据存储。

细胞数组或数字数组输入,包含序列的数值数组的尺寸取决于类型的数据。

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

数据存储输入的数据存储必须返回数据作为一个单元阵列的序列或表的第一列包含序列。序列数据的尺寸必须与上面的表相对应。

图像或特征数据的表。表中的每一行对应一个观察。

预测表中列的安排取决于输入数据的类型。

输入 预测
图像数据
  • 绝对或相对一个图像文件路径,指定为一个字符在一个列向量

  • 图像指定为一个三维数值数组

在单个列指定预测。

特性数据

数字标量。

指定在第一个预测因子numFeatures表列,numFeatures是功能的输入数据的数量。

这个论点支持网络的一个输入。金宝app

数据类型:

层提取激活,指定为一个数字索引或一个特征向量。

计算的激活SeriesNetwork对象,指定层使用数值指数,或作为一个特征向量对应层的名字。

计算的激活DAGNetwork对象,指定层作为特征向量对应层的名字。如果层有多个输出,指定层和输出层的名字,其次是性格“/”,紧随其后的是输出层的名称。也就是说,的形式“layerName / outputName”

例子:3

例子:“conv1”

例子:“mpool /出”

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:激活(净,X,层,“OutputAs”,“行”)

的格式输出激活,指定为逗号分隔组成的“OutputAs”,要么“渠道”,“行”,或“列”。描述不同的输出格式,请参阅行为

图像输入,如果“OutputAs”选择是“渠道”在输入数据,那么图像X可以大于输入大小的图像网络的输入层。其他的输出格式,图片X必须具有相同的大小作为输入图像网络的输入层的大小。

例子:“OutputAs”、“行”

大小mini-batches用于预测,指定为一个正整数。大mini-batch大小需要更多的内存,但会导致更快的预测。

例子:“MiniBatchSize”, 256年

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

  • “最长”——在每个mini-batch垫序列有相同的长度最长的序列。这个选项不丢弃任何数据,尽管填充网络会引入噪声。

  • “最短”——在每个mini-batch截断序列有相同的长度最短的序列。这个选项可以确保没有添加填充物,在丢弃的成本数据。

  • 正整数,对于每个mini-batch,垫到最近的多个序列的最长长度大于指定mini-batch序列长度,然后把序列分割成较小的指定长度的序列。如果发生分裂,那么软件创建额外的mini-batches。使用这个选项如果完整的序列不适合在内存中。或者,试着减少序列的数量每mini-batch通过设置“MiniBatchSize”选择一个较低的值。

了解更多关于填充的效果,删除,并把输入序列,明白了序列填充、截断和分裂

例子:“SequenceLength”、“最短的

盘输入序列值,指定为一个标量。选择是有效的只有当SequenceLength“最长”或者一个正整数。不垫序列,因为这样做可以传播在整个网络错误。

例子:“SequencePaddingValue”, 1

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

  • “对”——垫或截断序列在右边。序列开始在同一时间步和软件截断或添加填充序列的结束。

  • “左”——垫或截断序列在左边。软件截断或添加填充序列,序列的开始结束同时一步。

因为LSTM层过程序列数据一次一个时间步,当层OutputMode属性是“最后一次”,任何填充在最后时间步可以负面影响层的输出。垫或截断左边序列数据,设置“SequencePaddingDirection”选项“左”

sequence-to-sequence网络(当OutputMode属性是“序列”对于每个LSTM层),任何填充在第一次的步骤可以负面影响的预测更早的时间步骤。垫或截断序列数据在右边,设置“SequencePaddingDirection”选项“对”

了解更多关于填充的效果,删除,并把输入序列,明白了序列填充、截断和分裂

性能优化,指定为逗号分隔组成的“加速”和下列之一:

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

  • 墨西哥人的——编译和执行一个墨西哥人的功能。此选项仅在使用GPU可用。使用GPU需要并行计算工具箱和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。

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

默认的选项是“汽车”。如果“汽车”MATLAB是指定的,®将大量的兼容优化。如果你使用“汽车”选项,MATLAB不生成一个墨西哥人的功能。

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

墨西哥人的选项生成并执行一个墨西哥人函数基于网络和参数在函数调用中使用。你可以有几个墨西哥人函数与一个网络。结算网络变量也清除任何墨西哥人功能与网络有关。

墨西哥人的选项仅当你使用GPU。墨西哥人加速支持单GPU执行使用名金宝app称-值选项“ExecutionEvironment”、“gpu的只有。

使用墨西哥人的选择,你必须有一个C / c++编译器安装和GPU编码器™界面深度学习库支持包。金宝app安装包使用MATLAB中金宝app的扩展浏览器的支持。设置说明,请参阅墨西哥人设置(GPU编码器)。GPU编码器不是必需的。

墨西哥人的选项不支持所有层。金宝app支持层的列表,请参阅金宝app金宝app支持层(GPU编码器)。只有网络与一个imageInputLayer都受支持金宝app。

你不能使用MATLAB编译器™当使用部署您的网络墨西哥人的选择。

例子:“加速”、“墨西哥人的

硬件资源,指定为逗号分隔组成的“ExecutionEnvironment”和下列之一:

  • “汽车”——使用GPU如果可用;否则,使用CPU。

  • “图形”——使用GPU。使用GPU需要并行计算工具箱和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。

  • “cpu”——使用CPU。

  • “multi-gpu”使用多个gpu在一台机器上,使用本地集群并行池基于默认概要文件。如果没有当前并行池,软件开始平行池,池大小等于可用gpu的数量。

  • “平行”——使用一个本地或远程并行池集群基于默认概要文件。如果没有当前并行池,集群软件开始使用默认概要文件。如果池访问GPU,那么只有工人有着独特的GPU执行计算。如果池没有gpu,那么计算发生在所有可用的CPU的工人。

更多信息在何时使用不同的执行环境,明白了并行扩展深度学习,在gpu上,在云端

“图形”,“multi-gpu”,“平行”选择需要并行计算工具箱。使用GPU深度学习,你也必须有一个支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)如果你选择其中一个选项和并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。

“multi-gpu”“平行”选项不支持递归神经网络(RNN金宝apps)包含lstmLayer,bilstmLayer,或gruLayer对象。

例子:“ExecutionEnvironment”、“cpu的

输出参数

全部折叠

从网络层激活,作为数字返回数组或单元格数值数组的数组。的格式行为取决于类型的输入数据,输出层的类型,“OutputAs”选择。

图像或折叠顺序输出

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

“OutputAs” 行为
“渠道”

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

3 d图像输出,行为是一个h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -n数组,h,w,d,c的高度、宽度、深度、数量的渠道选择的输出层,分别和n是图片的数量。在这种情况下,法案(::,:,:,我)包含的激活th形象。

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

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

“行”

2 d和3 d图像输出,行为是一个n——- - - - - -矩阵,n的图片和数量吗是输出元素的层数。在这种情况下,法案(我,:)包含的激活th形象。

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

“列”

2 d和3 d图像输出,行为是一个——- - - - - -n矩阵,从选择层是输出元素的数量,然后呢n是图片的数量。在这种情况下,法》(:,我)包含的激活th形象。

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

顺序输出

如果输出序列(例如,LSTM层与输出模式“序列”),然后行为是一个单元阵列。在这种情况下,“OutputAs”选项必须是“渠道”

“OutputAs” 行为
“渠道”

为向量序列输出,行为是一个n1单元阵列,c——- - - - - -年代矩阵,n是序列的数量,c序列的特性,年代是序列长度。

对二维图像序列输出,行为是一个n1单元阵列,h——- - - - - -w——- - - - - -c——- - - - - -年代矩阵,n是序列的数量,h,w,c高度,宽度,和渠道的数量的图像,分别和年代是序列长度。

3 d图像序列输出,行为是一个n1单元阵列,h——- - - - - -w——- - - - - -c——- - - - - -d——- - - - - -年代矩阵,n是序列的数量,h,w,d,c的高度、宽度、深度和通道图像的数量,分别和年代是序列长度。

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

单一时间步输出

如果输出一个时间步的序列(例如,一个LSTM层与输出模式“最后一次”),然后行为是一个数字数组。

“OutputAs” 行为
“渠道”

对于包含矢量数据的一个时间步,行为是一个c——- - - - - -n矩阵,n序列和的数量吗c在序列特征的数量。

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

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

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

算法

当你训练一个网络使用trainNetwork函数,或者当你使用预测或验证功能DAGNetworkSeriesNetwork对象,软件执行这些计算使用单精度浮点算术。包括功能训练、预测和验证trainNetwork,预测,分类,激活。软件使用单精度算法训练网络时使用的cpu和gpu。

引用

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

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

扩展功能

介绍了R2016a