使用经过训练的深度学习神经网络预测反应
您可以使用培训的神经网络进行预测,以便在CPU或GPU上深入学习。使用GPU需要并行计算工具箱™和支持的GPU设备。金宝app有关支持设备的信息,请参阅金宝appGPU支金宝app持版本(并行计算工具箱).使用该硬件要求指定硬件要求ExecutionEnvironment
名称值对参数。
[YPred1,…那YPredm] = predict(___)
预测对此的回应m
使用前面任一语法的多输出网络的输出。输出ypredj.
对应网络输出net.OutputNames (j)
.若要返回分类输出层的分类输出,请设置'return类别'
选项真的
.
___=预测(___那
通过一个或多个名称 - 值对参数指定的附加选项预测响应。名称,价值
)
小费
当使用不同长度的序列进行预测时,小批处理的大小会影响添加到输入数据中的填充量,从而导致不同的预测值。尝试使用不同的值,看看哪种值最适合您的网络。若要指定小批处理大小和填充选项,请使用“MiniBatchSize”
和'sequencelength'
选项,分别。
加载样本数据。
[XTrain, YTrain] = digitTrain4DArrayData;
digittrain4darraydata.
将数字训练集作为4维数组数据加载。XTrain
是28×28×1×5000阵列,其中28个是高度,28是图像的宽度。图1是通道的数量,5000是手写数字的合成图像的数量。ytrain.
是一个包含每个观察标签的分类矢量。
构建卷积神经网络架构。
层= [...ImageInputLayer([28 28 1])卷积2dlayer(5,20)rululayer maxpooling2dlayer(2,'走吧',2)全连接列(10)SoftmaxLayer分类层];
将随机梯度下降的默认设置设置为带有动量的选项。
选项=培训选项(“个”);
训练网络。
rng (“默认”)net = trainnetwork(xtrain,ytrain,图层,选项);
单CPU培训。初始化输入数据归一化。| ========================================================================================|时代|迭代|经过时间的时间迷你批量|迷你批量|基础学习| | | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:00 | 10.16% | 2.3195 | 0.0100 | | 2 | 50 | 00:00:04 | 50.78% | 1.7102 | 0.0100 | | 3 | 100 | 00:00:07 | 63.28% | 1.1632 | 0.0100 | | 4 | 150 | 00:00:10 | 60.16% | 1.0859 | 0.0100 | | 6 | 200 | 00:00:15 | 68.75% | 0.8996 | 0.0100 | | 7 | 250 | 00:00:19 | 76.56% | 0.7920 | 0.0100 | | 8 | 300 | 00:00:23 | 73.44% | 0.8411 | 0.0100 | | 9 | 350 | 00:00:26 | 81.25% | 0.5508 | 0.0100 | | 11 | 400 | 00:00:29 | 90.62% | 0.4744 | 0.0100 | | 12 | 450 | 00:00:32 | 92.19% | 0.3614 | 0.0100 | | 13 | 500 | 00:00:36 | 94.53% | 0.3160 | 0.0100 | | 15 | 550 | 00:00:42 | 96.09% | 0.2544 | 0.0100 | | 16 | 600 | 00:00:46 | 92.19% | 0.2765 | 0.0100 | | 17 | 650 | 00:00:50 | 95.31% | 0.2460 | 0.0100 | | 18 | 700 | 00:00:53 | 99.22% | 0.1418 | 0.0100 | | 20 | 750 | 00:00:56 | 98.44% | 0.1000 | 0.0100 | | 21 | 800 | 00:00:59 | 98.44% | 0.1449 | 0.0100 | | 22 | 850 | 00:01:02 | 98.44% | 0.0989 | 0.0100 | | 24 | 900 | 00:01:05 | 96.88% | 0.1315 | 0.0100 | | 25 | 950 | 00:01:08 | 100.00% | 0.0859 | 0.0100 | | 26 | 1000 | 00:01:12 | 100.00% | 0.0701 | 0.0100 | | 27 | 1050 | 00:01:17 | 100.00% | 0.0759 | 0.0100 | | 29 | 1100 | 00:01:22 | 99.22% | 0.0663 | 0.0100 | | 30 | 1150 | 00:01:26 | 98.44% | 0.0776 | 0.0100 | | 30 | 1170 | 00:01:28 | 99.22% | 0.0732 | 0.0100 | |========================================================================================|
在测试集上运行培训的网络并预测分数。
[XTest,欧美]= digitTest4DArrayData;ypred =预测(net,xtest);
预测
默认情况下,默认情况下,使用CUDA®启用的GPU与Compute Capability 3.0可用。您也可以选择运行预测
在CPU上使用“ExecutionEnvironment”、“cpu的
名称值对参数。
显示测试数据中的前10个图像,并与来自的预测进行比较预测
.
ytest(1:10,:)
ans =.10 x1分类0 0 0 0 0 0 0 0 0 0 0
Ypred(1:10,:)
ans =.10x10单矩阵0.9978 0.0001 0.0008 0.0002 0.0003 0.0002 0.0003 0.881 0.0000 0.0474 0.0001 0.0001 0.00110 0. 0.0598 0.9998 0.0000 0.000000 0.0000 0 0.0000 0.0000 0.0 0 0.0000 0.0001 0.9814 0.0000 0.000000 0.00000 0.0000 0.0132 0.030 0.0000 0.0132 0.0003 0.0000 0.0102 0.0004 0.0111 0.0002 0.0004 0.0111 0.0002 0.0004 0.0111 0.0002 0.0004 0.0111 0.0002 0.0004 0.0111 0.0002 0.0004 0.0111 0.00010.9873 0.0000 0.0001 0.0000 0.0000 0.0007 0.0000 0.0072 0.000 0 0.000 0.0000 0.0000 0.0000 0 0.0000 0.001100000 0.0000 0.0000 0 0.0000 0.0000 0.0000 0.0000 0.0000 0 0.9265 0.0000 0.06 0.09 0.0000 0.9327 0.0000 0.0378 0.0000 0.01 0.0378 0.0000 0.01.0031
ytest.
包含与图像相对应的数字XTest.
.的列YPred
包含预测
是对一幅图像包含一个特定数字的概率的估计。也就是说,第一列包含给定图像为数字0的概率估计,第二列包含图像为数字1的概率估计,第三列包含图像为数字2的概率估计,以此类推。你可以看到预测
对正确数字的概率的估计几乎是1,而任何其他数字的概率几乎是0。预测
正确估计前10个观察为数字0。
加载净化网络。Japanesevowelsnet.
是在日语元音数据集上训练的预先训练的LSTM网络,如[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;
对测试数据进行预测。
ypred =预测(net,xtest);
查看前10个序列的预测得分。
Ypred(1:10,:)
ans =.10x9单矩阵0.9918 0.0000 0.0000 0.0000 0.0006 0.0010 0.0001 0.000 0 0.0000 0.9868 0.0000 0.0000 0 0.0006 0.000 0.901 0.0010 0.05 0.9924 0.0000 0.000000 0.0006 0.0010 0.01 0.0006 0.000 0.0000 0.0006 0.000 0.0001 0.0007 0.000 0.0001 0.000 0 0.0000 0.0001 0.001 0.0000 0.0003 0.0016 0.0000 0.0003 0.0016 0.9888 0.0000 0.0016 0.9888 0.0000 0.00116 0.0000 0.0000 0.00116 0.000060.0010 0.0001 0.0008 0.0087 0.9886 0.000000 0.0000 0.0006 0.0010 0.0001 0.0008 0.0089 0.9982 0.0000 0.000 0.0000 0.0006 0.0007 0.0000 0.0001 0.0004 0.9883 0.000 0.0001 0.0001 0.0010 0.9959 0.001 0.0000 0.0001 0.0011 0.0000 0.0007 0.0011 0.0000 0.0007 0.0011 0.0000 0.0004 0.0011
将这些预测分数与这些序列的标签进行比较。该函数将高预测分数分配给正确的类。
ytest(1:10)
ans =.10 x1分类1 1 1 1 1 1 1 1 1 1 1
网
-训练网络系列网络
目的|DAGNetwork
目的训练有素的网络,指定为a系列网络
或者DAGNetwork
目的。您可以通过导入佩带的网络(例如,使用)来获得培训的网络googlenet
功能)或使用自己的网络使用Trainnetwork.
.
IMDS.
-图像数据存储imageageAtastore.
目的图像数据存储,指定为一个imageageAtastore.
目的。
imageageAtastore.
允许使用预取批量读取JPG或PNG图像文件。如果使用自定义函数读取图像,那么imageageAtastore.
不预取。
小费
用augmentedImageDatastore
用于深度学习图像的高效预处理,包括图像大小调整。
不要使用readfcn.
选择imageDatastore
对于预处理或调整大小,因为此选项通常显着较慢。
DS.
-数据存储数据存储空间用于内存数据和预处理。数据存储必须返回表中的数据或单元格数组。数据存储量输出的格式取决于网络架构。
网络架构 | 数据存储输出 | 示例输出 |
---|---|---|
单输入 | 表或单元格数组,其中第一列指定预测器。 表元素必须是包含数字数组的标量,行向量或1×1个单元阵列。 自定义数据存储必须输出表。 |
data =阅读(ds) 数据= 4×1表预测器__________________ {224×224×3 double} {224×224×3双} {224×224×3双} {224×224×3双} |
data =阅读(ds) 数据= 4×1 cell array {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double} |
||
多个输入 | 至少具有的单元阵列 第一个 输入的顺序由 |
data =阅读(ds) data = 4×2 cell array {224×224×3 double} {128×128×3 double} {224×224×3 double} {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——- - - - - -S.矩阵,C是序列的特征数量S.是序列长度。 |
二维图像序列 | H——- - - - - -W.——- - - - - -C——- - - - - -S.数组,H那W., 和C对应于图像的高度,宽度和数量,并且S.是序列长度。 迷你批处理中的每个序列必须具有相同的序列长度。 |
3-D图像序列 | H——- - - - - -W.——- - - - - -D.——- - - - - -C——- - - - - -S.数组,H那W.那D., 和C对应于图像的高度,宽度,深度和数量的图像,以及S.是序列长度。 迷你批处理中的每个序列必须具有相同的序列长度。 |
特性 | C- × 1列向量,其中C是功能的数量。 |
有关更多信息,请参见深入学习的数据购物.
X
-图像或特征数据图像或特征数据,指定为数字数组。数组的大小取决于输入的类型:
输入 | 描述 |
---|---|
2-D图像 | 一种H——- - - - - -W.——- - - - - -C——- - - - - -N数字数组,H那W., 和C是图像的高度,宽度和图像的频道数量,以及N是图像的数量。 |
三维图像 | 一种H——- - - - - -W.——- - - - - -D.——- - - - - -C——- - - - - -N数字数组,H那W.那D., 和C是图像的高度,宽度,深度和图像通道数,以及N是图像的数量。 |
特性 | 一种N——- - - - - -numFeatures 数字数组,N是观察人数和numFeatures 是输入数据的功能数量。 |
如果数组包含南
S,然后它们通过网络传播。
对于具有多个输入的网络,您可以指定多个数组X1
,......,XN
,在那里N
是网络输入的数量和输入西
对应于网络输入net.inputnames(i)
.
序列
-序列或时间序列数据序列或时间序列数据N-by-1单元格数组的数字数组,其中N是观察数据的数量、表示单个序列的数字数组或数据存储。
对于单元格数组或数字数组输入,包含序列的数字数组的维取决于数据的类型。
输入 | 描述 |
---|---|
向量序列 | C——- - - - - -S.矩阵,其中C序列的特征数是多少S.是序列长度。 |
2-D图像序列 | H——- - - - - -W.——- - - - - -C——- - - - - -S.阵列,在哪里H那W., 和C分别对应于图像通道的高度、宽度和数量S.是序列长度。 |
3-D图像序列 | H——- - - - - -W.——- - - - - -D.——- - - - - -C——- - - - - -S.,在那里H那W.那D., 和C分别对应三维图像的高度、宽度、深度和通道数,以及S.是序列长度。 |
对于数据存储输入,数据存储必须以序列的单元格数组或其第一列包含序列的表的形式返回数据。序列数据的尺寸必须与上表对应。
资源描述
-图像或特征数据表桌子
图像或特征数据表。表中的每一行对应一个观察结果。
表列中的预测器的排列取决于输入数据的类型。
输入 | 预测 |
---|---|
图像数据 |
在单列中指定预测器。 |
功能数据 | 数字标量。 在第一个指定预测器 |
此参数仅支持单个输入的网络。金宝app
数据类型:桌子
“MiniBatchSize”,256年
指定迷你批量大小为256。
指定可选的逗号分隔对名称,价值
论点。的名字
是参数名称和价值
是相应的价值。的名字
必须出现在单引号内(' '
)。
“MiniBatchSize”
-迷你批次的大小用于预测的小批的大小,指定为一个正整数。更大的迷你批处理需要更多的内存,但可以导致更快的预测。
当使用不同长度的序列进行预测时,小批处理的大小会影响添加到输入数据中的填充量,从而导致不同的预测值。尝试使用不同的值,看看哪种值最适合您的网络。若要指定小批处理大小和填充选项,请使用“MiniBatchSize”
和'sequencelength'
选项,分别。
例子:“MiniBatchSize”,256年
'加速'
-性能优化'汽车'
(默认)|'mex'
|'没有任何'
性能优化,指定为逗号分隔对组成'加速'
和以下之一:
'汽车'
—自动对输入的网络和硬件资源进行多项优化。
'mex'
- 编译并执行MEX功能。仅使用GPU时可用此选项。使用GPU需要并行计算工具箱和支持的GPU设备。金宝app有关支持设备的信息,请参阅金宝appGPU支金宝app持版本(并行计算工具箱).如果并行计算工具箱或合适的GPU不可用,则软件返回错误。
'没有任何'
- 禁用所有加速度。
默认选项是'汽车'
.如果'汽车'
MATLAB是指定的,®将应用许多兼容的优化。如果你使用'汽车'
选项,MATLAB从不生成MEX函数。
使用'加速'
选项'汽车'
和'mex'
可以提供绩效福利,但牺牲了增加的初始运行时间。具有兼容参数的后续调用更快。使用新输入数据计划多次调用函数时,使用性能优化。
这'mex'
选项基于函数调用中使用的网络和参数生成并执行MEX函数。您可以一次使用与单个网络相关联的多个MEX函数。清除网络变量还清除与该网络相关联的任何MEX功能。
这'mex'
选项仅在使用GPU时可用。您必须安装一个C / C ++编译器以及用于深度学习库支持包的GPU编码器™接口。金宝app使用MATLAB中的Ad金宝appd-on Expler安装支持包。有关设置说明,请参阅Mex设置(GPU编码器).GPU编码器不是必需的。
这'mex'
选项不支持所有层。金宝app有关支持的层列表,请参见金宝app金宝app支持层(GPU编码器).循环神经网络(RNNs)包含一个sequenceInputLayer
不受支持。金宝app
这'mex'
Option不支持具有多个输入层金宝app或多个输出层的网络。
你不能使用Matlab Compiler™控件时部署网络'mex'
选择。
例子:“加速”、“墨西哥人的
'executionenvironment'
-硬件资源'汽车'
(默认)|“图形”
|“cpu”
组成的以逗号分隔的对指定的硬件资源'executionenvironment'
和以下之一:
'汽车'
-使用GPU(如果有的话);否则,请使用CPU。
“图形”
- 使用GPU。使用GPU需要并行计算工具箱和支持的GPU设备。金宝app有关支持设备的信息,请参阅金宝appGPU支金宝app持版本(并行计算工具箱).如果并行计算工具箱或合适的GPU不可用,则软件返回错误。
“cpu”
—使用CPU。
例子:“ExecutionEnvironment”、“cpu的
'return类别'
-返回分类标签的选项错误的
(默认)|真的
选项返回指定为的分类标签真的
或者错误的
.
如果ReturnCategorical
是真的
,然后函数返回分类输出层的分类标签。否则,该函数将返回分类输出层的预测分数。
'sequencelength'
-选项填充,截断,或分割输入序列“最长”
(默认)|“最短”
|正整数填充、截断或分割输入序列的选项,指定为下列选项之一:
“最长”
-每个小批的Pad序列与最长的序列长度相同。这个选项不会丢弃任何数据,尽管填充会给网络带来噪声。
“最短”
- 截断每个小批处理中的序列与最短序列具有相同的长度。此选项可确保在丢弃数据的成本下添加填充。
正整数 - 对于每个小批次,填充序列到最接近的指定长度的倍数大于小批次中最长的序列长度,然后将序列分成规定长度的较小序列。如果发生拆分,则软件会创建额外的百分之批处理。如果完整序列不适合内存,请使用此选项。或者,尝试通过设置序列减少每百分之批次的序列数“MiniBatchSize”
值较低的值。
要了解有关填充,截断和拆分输入序列的影响,请参阅序列填充、截断和分割.
例子:“SequenceLength”、“最短的
“SequencePaddingDirection”
-填充或截断的方向“对”
(默认)|'剩下'
填充或截断的方向,指定为以下之一:
“对”
- 右侧的垫或截断序列。该序列在同一时间步骤开始,软件截断或将填充添加到序列的末尾。
'剩下'
-填充或截断左边的序列。该软件截断或添加填充到序列的开始,以便序列结束在同一时间步。
因为LSTM层处理序列数据的时间步长,当层OutputMode.
属性是'最后的'
,最终时间步骤中的任何填充都可以对图层输出产生负面影响。键入或截断左侧的序列数据,设置“SequencePaddingDirection”
选项'剩下'
.
用于序列到序列网络(当OutputMode.
属性是'顺序'
对于每个LSTM层),在第一次步骤中的任何填充都可以对较早时间步长的预测产生负面影响。键入或截断右侧序列数据,请设置“SequencePaddingDirection”
选项“对”
.
要了解有关填充,截断和拆分输入序列的影响,请参阅序列填充、截断和分割.
“SequencePaddingValue”
-填充输入序列的值填充输入序列的值,指定为标量。该选项仅在何时有效Sequencelength.
是“最长”
或者一个正整数。不要用南
,因为这样做会在整个网络中传播错误。
例子:'sequencdpaddingsvalue', - 1
YPred
-预测分数或反应预测的分数或响应,返回为矩阵,4-D数字阵列或矩阵的小区数组。格式YPred
取决于问题的类型。
下表描述了分类问题的格式。
任务 | 格式 |
---|---|
图像分类 | N——- - - - - -K.矩阵,N是观察的次数,和K.是课程数量 |
序列到标签分类 | |
功能分类 | |
序列到序列分类 | N- 1个矩阵的单元阵列,其中N是观察人数。序列是矩阵K.行,K.是班级的数量。应用后,每个序列与相应的输入序列具有相同的时间步长 |
下表描述了回归问题的格式。
任务 | 格式 |
---|---|
2-D图像回归 |
|
3-D图像回归 |
|
序列到一个回归 | N——- - - - - -R.矩阵,N是序列的个数和R.是响应的数量。 |
序列到序列回归 | N-by-1单元格数组的数字序列,其中N是序列的个数。序列是矩阵R.行,R.是响应的数量。应用后,每个序列与相应的输入序列具有相同的时间步长 对于具有一个观察的序列到序列回归任务, |
功能回归 | N——- - - - - -R.矩阵,N是观察人数和R.是响应的数量。 |
对于一个观察的序列到序列回归问题,序列
可以是矩阵。在这种情况下,YPred
是一种反应矩阵。
如果图像数据包含南
年代,预测
通过网络传播它们。如果网络具有Relu层,则这些图层忽略了南
s。但是,如果网络没有Relu层,那么预测
将NAN返回预测。
当您使用该网络训练网络时Trainnetwork.
函数,或使用预测或验证函数时DAGNetwork
和系列网络
对象,软件使用单精度浮点算术执行这些计算。培训,预测和验证的功能包括Trainnetwork.
那预测
那分类
, 和激活
.当你同时使用cpu和gpu训练网络时,该软件使用单精度算法。
您可以使用培训的网络计算预测的分数和预测类分类
.
您还可以使用网络层计算激活激活
.
对于序列到标签和序列到序列分类网络(例如,LSTM网络),可以使用以下命令进行预测和更新网络状态classifyAndUpdateState
和predictAndUpdateState
.
[1] M. Kudo,J. Toyama和M. Shimbo。“使用过度区域的多维曲线分类。”模式识别的字母.第20卷,第11-13页,第1103-1111页。
[2]UCI机器学习资料库:日语元音资料库.https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
用法说明和限制:
C ++代码生成支持以下语法:金宝app
YPred =预测(净,X)
[ypred1,...,ypredm] =预测(__)
YPRED =预测(网络,序列)
_ =预测(__、名称、值)
输入X
不能有可变大小。大小必须在代码生成时间固定。
对于向量序列输入,在代码生成过程中,特性的数量必须是一个常量。序列长度可以是可变大小的。
对于图像序列输入,高度,宽度和通道数量在代码生成期间必须是常数。
只有“MiniBatchSize”
那'return类别'
那'sequencelength'
那“SequencePaddingDirection”
, 和“SequencePaddingValue”
代码生成支持名称-值对参数。金宝app所有的名称-值对必须是编译时常量。
只有“最长”
和“最短”
选择的'sequencelength'
代码生成支持名称值对。金宝app
如果'return类别'
被设置为真的
如果你使用GCC的C/ c++编译器8.2或以上版本,你可能会得到一个-Wstringop-overflow
警告。
用于英特尔的代码生成®MKL-DNN目标不支持组合金宝app“SequenceLength”,“最长”
那“SequencePaddingDirection”、“左派”
, 和“SequencePaddingValue”,0
名称-值参数。
有关为深度学习神经网络生成代码的更多信息,请参见用MATLAB编码器生成深度学习代码的工作流(MATLAB编码器).
用法说明和限制:
GPU代码生成支持以下语法:金宝app
YPred =预测(净,X)
[ypred1,...,ypredm] =预测(__)
YPRED =预测(网络,序列)
_ =预测(__、名称、值)
输入X
不得有变量大小。大小必须在代码生成时间固定。
不支持GPU代码生成金宝appgpuArray
的输入预测
功能。
CUDNN库支持向量和2-D图像序列金宝app。TensorR库仅支持载体输入序列。金宝app手臂®计算库
GPU不支持循环网络。金宝app
对于向量序列输入,在代码生成过程中,特性的数量必须是一个常量。序列长度可以是可变大小的。
对于图像序列输入,高度,宽度和通道数量在代码生成期间必须是常数。
只有“MiniBatchSize”
那'return类别'
那'sequencelength'
那“SequencePaddingDirection”
, 和“SequencePaddingValue”
代码生成支持名称-值对参数。金宝app所有的名称-值对必须是编译时常量。
只有“最长”
和“最短”
选择的'sequencelength'
代码生成支持名称值对。金宝app
GPU代码生成的预测
函数支持定义为半精金宝app度浮点数据类型的输入。有关更多信息,请参见一半
(GPU编码器).
如果'return类别'
被设置为真的
如果你使用GCC的C/ c++编译器8.2或以上版本,你可能会得到一个-Wstringop-overflow
警告。
当输入数据是gpuArray
,单元格数组或表格包含gpuArray
数据,或返回的数据存储gpuArray
数据,“刽子果环境”
选项必须是“汽车”
或者“图形”
.
有关更多信息,请参见在GPU上运行matlab函数(并行计算工具箱).
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。