主要内容

classifyAndUpdateState

使用递归神经网络训练和分类数据更新网络状态

描述

你可以预测使用训练有素的深度学习网络CPU或GPU。使用CUDA GPU需要并行计算工具箱™和®使英伟达®GPU的计算能力3.0或更高版本。指定使用的硬件需求“ExecutionEnvironment”名称-值对的论点。

例子

(updatedNet,YPred)= classifyAndUpdateState (recNet,序列)分类的数据序列使用递归神经网络训练recNet并更新网络状态。

这个函数只支持递归神经网络。金宝app输入recNet必须至少有一个周期性的层。

(updatedNet,YPred)= classifyAndUpdateState (___,名称,值)使用任何的参数在前面的语法和指定的一个或多个额外的选项名称,值对参数。例如,“MiniBatchSize”, 27使用mini-batches分类数据的大小27

分类和更新网络状态

例子

(updatedNet,YPred,分数)= classifyAndUpdateState (___)在前面的语法使用的任何参数,返回一个矩阵分类评分,并更新网络状态。

提示

与不同长度的序列进行预测时,mini-batch大小会影响的填充量添加到输入数据可以导致不同的预期值。尝试使用不同的值,看看哪种最与你的网络。要指定mini-batch大小和填充选项,可以使用“MiniBatchSize”“SequenceLength”选项,分别。

例子

全部折叠

使用递归神经网络分类数据和更新网络状态。

负载JapaneseVowelsNetpretrained长短期记忆(LSTM)网络训练中描述的日本元音数据集[1]和[2]。这个网络是训练序列按序列长度与mini-batch 27的大小。

负载JapaneseVowelsNet

查看网络体系结构。

net.Layers
ans x1 = 5层阵列层:1“sequenceinput”序列输入序列输入12维度2的lstm lstm lstm 100隐藏单位3 fc的完全连接9完全连接层4的softmax softmax softmax 5 classoutput的分类输出crossentropyex ' 1 ', 8其他类

负载测试数据。

[XTest,欧美]= japaneseVowelsTestData;

循环时间的步骤序列。每个时间步和更新网络状态进行分类。

X = XTest {94};numTimeSteps =大小(X, 2);i = 1: numTimeSteps v = X(:,我);(净、标签、分数)= classifyAndUpdateState(净,v);标签(i) =标签;结束

情节预测标签在一个楼梯。情节变化之间的时间步骤显示了如何预测。

图楼梯(标签,“o”)xlim ([1 numTimeSteps])包含(“时间步”)ylabel (“预测阶级”)标题(“随着时间的推移,分类步骤”)

比较预测和真正的标签。画一条水平线显示观察真正的标签。

trueLabel =欧美(94)
trueLabel =分类3
持有线([1 numTimeSteps], [trueLabel trueLabel),“颜色”,“红色”,“线型”,“——”)传说([“预测”“真正的标签”])

输入参数

全部折叠

递归神经网络训练,指定为一个SeriesNetwork或者一个DAGNetwork对象。你可以通过导入pretrained训练网络的网络或通过训练自己的网络使用trainNetwork函数。

recNet是一个递归神经网络。它必须至少有一个周期性层(例如,一个LSTM网络)。

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

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

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

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

名称-值对的观点

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

例子:[updatedNet, YPred] = classifyAndUpdateState (recNet C MiniBatchSize, 27)使用mini-batches分类数据的大小27。

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

与不同长度的序列进行预测时,mini-batch大小会影响的填充量添加到输入数据可以导致不同的预期值。尝试使用不同的值,看看哪种最与你的网络。要指定mini-batch大小和填充选项,可以使用“MiniBatchSize”“SequenceLength”选项,分别。

例子:“MiniBatchSize”, 256年

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

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

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

默认的选项是“汽车”

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

例子:“加速”、“汽车”

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

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

  • “图形”——使用GPU。使用GPU并行计算需要工具箱和CUDA启用NVIDIA GPU的计算能力3.0或更高版本。如果并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。

  • “cpu”——使用CPU。

例子:“ExecutionEnvironment”、“cpu的

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

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

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

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

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

例子:“SequenceLength”、“最短的

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

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

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

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

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

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

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

例子:“SequencePaddingValue”, 1

输出参数

全部折叠

网络更新。updatedNet相同类型的网络作为输入网络。

预测类标签,作为分类返回向量,或一个细胞分类向量的数组。的格式YPred取决于问题的类型。

下面的表描述的格式YPred

任务 格式
Sequence-to-label分类 N标签1分类向量,N是观测的数量。
Sequence-to-sequence分类

N1单元阵列的分类标签,序列N是观测的数量。每个序列都有相同数量的时间步骤应用后相应的输入序列SequenceLength每个独立mini-batch选项。

sequence-to-sequence分类问题的观察,序列可以是一个矩阵。在这种情况下,YPred是一个分类的序列标签。

预测类成绩,作为一个矩阵或返回单元阵列的矩阵。的格式分数取决于问题的类型。

下面的表描述的格式分数

任务 格式
Sequence-to-label分类 N——- - - - - -K矩阵,N是观测的数量,和K类的数量。
Sequence-to-sequence分类

N1单元阵列矩阵,N是观测的数量。序列矩阵K行,K类的数量。每个序列都有相同数量的时间步骤应用后相应的输入序列SequenceLength每个独立mini-batch选项。

sequence-to-sequence分类问题的观察,序列可以是一个矩阵。在这种情况下,分数是一个矩阵预测类的分数。

算法

所有功能深度学习培训、预测和验证在深度学习工具箱™执行计算使用单精度浮点算术。深度学习包括的功能trainNetwork,预测,分类,激活。软件使用单精度算法训练网络时使用的cpu和gpu。

引用

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

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

介绍了R2017b