主要内容

predictAndUpdateState

预测使用受训回归神经网络响应和更新网络状态

描述

你可以在CPU或GPU上使用训练有素的深度学习网络进行预测。使用GPU需要并行计算工具箱™和GPU支持的设备。万博1manbetx有关支持的设备的信息,请参阅万博1manbetxGPU支万博1manbetx持情况(并行计算工具箱)指定使用的硬件要求“执行环境”名称值对参数。

例子

[updatedNetYPred) = predictAndUpdateState (recNet序列预测输入数据的响应序列用训练回归神经网络recNet并更新网络状态。

此功能只支持递归神经网络。万博1manbetx输入recNet必须至少有一个经常性层。

[updatedNetYPred) = predictAndUpdateState (___名称,价值使用任何的由一个或多个指定在先前语法的参数和其他选项名称,价值对参数。例如,“MiniBatchSize”,27让使用尺寸为27的小批量预测。

提示

当使用不同长度的序列进行预测时,小批量的大小会影响添加到输入数据中的填充量,从而导致不同的预测值。尝试使用不同的值,看看哪一个最适合你的网络。要指定小批量大小和填充选项,请使用“MiniBatchSize”'SequenceLength'选项,分别。

例子

全部收缩

使用训练有素的递归神经网络预测反应并更新网络状态。

加载JapaneseVowelsNet,在[1]和[2]所述的日语元音数据集上训练的长短期记忆网络。该网络在按序列长度排序的序列上进行训练,最小批大小为27。

加载JapaneseVowelsNet

查看网络架构。

网。层
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(:,i);(净,分数)= predictAndUpdateState(净,v);分数(:,i) =分数;结尾

画出预测分数。图中显示的预测得分时间步长之间如何变化。

一会=字符串(net.Layers(结束). class);Figure lines = plot(scores');传说numTimeSteps xlim ([1]) (“类”+类名,“位置”“西北”)包含(“时间步”) ylabel (“分数”)标题(“预测分数随时间的变化”

突出显示正确类随时间步长的预测得分。

trueLabel =欧美(94)
trueLabel =分类3.
行(trueLabel)。线宽= 3;

图中包含一个坐标轴。标题为“预测分数随着时间的推移”的轴包含9个类型为line的对象。这些物件代表1类、2类、3类、4类、5类、6类、7类、8类、9类。

在条形图中显示最后的时间步长预测。

图巴(评分)标题(“最终预测评分”)包含(“类”) ylabel (“分数”

图中包含一个坐标轴。与标题最终预测分数的轴包含类型巴的对象。

输入参数

全部收缩

训练的递归神经网络,指定为SeriesNetwork或者DAGNetwork对象。您可以通过导入预先训练过的网络或通过使用Trainnetwork.功能。

recNet为递归神经网络。它必须至少有一个循环层(例如,LSTM网络)。

序列或时间序列数据,指定为N-by-1数字数组单元格数组,其中N是观察数、表示单个序列的数字数组或数据存储。

对于单元格数组或数字数组输入,包含序列的数字数组的维数取决于数据类型。

输入 描述
向量序列 C——- - - - - -S.矩阵,C序列的特征数是和吗S.为序列长度。
2-d的图像序列 H——- - - - - -W.——- - - - - -C——- - - - - -S.阵列,其中HW.,C分别对应图像的高度、宽度和通道数量,和S.为序列长度。
3-d的图像序列 H——- - - - - -W.——- - - - - -D.——- - - - - -C——- - - - - -S.,在那里HW.D.,C分别为三维图像通道的高度、宽度、深度和数量S.为序列长度。

对于数据存储输入,数据存储必须以序列单元格数组或第一列包含序列的表的形式返回数据。序列数据的维度必须与上表相对应。

名称值对参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:[updatedNet,YPred] = predictAndUpdateState(recNet,C, 'MiniBatchSize',27)让使用尺寸为27的小批量预测。

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

当使用不同长度的序列进行预测时,小批量的大小会影响添加到输入数据中的填充量,从而导致不同的预测值。尝试使用不同的值,看看哪一个最适合你的网络。要指定小批量大小和填充选项,请使用“MiniBatchSize”'SequenceLength'选项,分别。

例子:“MiniBatchSize”,256年

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

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

  • '没有任何'- 禁用所有加速。

默认选项是'汽车'

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

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

硬件资源,指定为逗号分隔对组成“执行环境”和以下之一:

  • '汽车'-如果GPU可用,请使用;否则,请使用CPU。

  • “图形”- 使用GPU。使用GPU需要并行计算工具箱和支持的GPU设备。万博1manbetx有关支持的设备的信息,请参阅万博1manbetxGPU支万博1manbetx持情况(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,则软件返回错误。

  • “cpu”—使用CPU。

例子:“ExecutionEnvironment”、“cpu的

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

  • “最长”—在每个小批量中填充序列,使其与最长序列具有相同的长度。这个选项不会丢弃任何数据,尽管填充会给网络带来噪声。

  • “最短”- 在每个小批量截断序列具有相同的长度最短的序列。该选项可以确保没有填充被添加,在丢弃数据的成本。

  • 正整数—对于每个小批量,将序列填充到指定长度的最近倍数,该倍数大于最小批量中序列的最长长度,然后将序列分割成指定长度的更小的序列。如果发生分裂,则软件创建额外的小批量。如果完整序列无法装入内存,则使用此选项。或者,尝试通过设置来减少每个小批量的序列数量“MiniBatchSize”选择较低的值。

要了解更多关于填充,截断和拆分输入序列的效果,看序列填充、截断和分割

例子:“SequenceLength”、“最短的

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

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

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

因为LSTM层处理序列数据的时间一步一次,当层输出outputmode属性是'最后的'在最后时间步长的任何填充数据可以在层输出产生负面影响。到左侧垫或截短序列数据,设定“SequencePaddingDirection”选项“左”

对于序列到序列网络(当输出outputmode属性是'序列'对于每个LSTM层),在第一时间步骤的任何填充可以为较早时间的步骤的预测产生负面影响。在右侧填充或截断序列数据,设置“SequencePaddingDirection”选项“对”

要了解更多关于填充,截断和拆分输入序列的效果,看序列填充、截断和分割

值,通过该垫的输入序列,指定为一个标量。该选项才有效SequenceLength“最长”或者一个正整数。不要用,因为这样做会在整个网络中传播错误。

例子:'SequencePaddingValue', - 1

输出参数

全部收缩

更新后的网络。updatedNet是作为输入网络的同一类型的网络。

预测得分或反应,以矩阵或矩阵单元格数组的形式返回。的格式YPred这取决于问题的类型。

下表描述了分类问题的格式。

任务 格式
顺序对标签分类 N——- - - - - -K.矩阵,N是观察的次数,和K.为类数。
序列到序列分类

N×1矩阵,其中的单元阵列N是观察人数。序列是矩阵K.行,K.为类数。每个序列在应用后与相应的输入序列具有相同的时间步长SequenceLength选择每个小批独立。

对于单次观测的序列到序列分类问题,序列可以是一个矩阵。在这种情况下,YPred是一个K.——- - - - - -S.分数矩阵,其中K.是类的数量,和S.为对应输入序列的时间步长总数。

下表描述了回归问题的格式。

任务 格式
序列到一个回归 N——- - - - - -R.矩阵,N观察的次数是多少R.为响应的数量。
序列到序列回归

N-by-1数字序列单元格数组,其中N是观察人数。序列是矩阵R.行,R.为响应的数量。每个序列在应用后与相应的输入序列具有相同的时间步长SequenceLength选择每个小批独立。

对于序列对序列问题,只需观察,序列可以是一个矩阵。在这种情况下,YPred是的响应的矩阵。

算法

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

参考文献

工藤、富山、新保。“使用通过区域的多维曲线分类”。模式识别的字母.第20卷,第11-13期,第1103-1111页。

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

扩展功能

介绍了在R2017b