列车网络

为深度学习训练神经网络

描述

对于分类和回归任务,可以使用列车网络为了训练用于图像数据的卷积神经网络(ConvNet,CNN),用于序列数据的递归神经网络(RNN),如长短时记忆(LSTM)或选通递归单元(GRU)网络,或用于数字特征数据的多层感知器(MLP)网络。您可以在CPU或GPU上进行训练。对于图像分类和图像回归,您可以使用多个GPU或并行进行训练。使用GPU、多GPU和并行选项需要并行计算工具箱™.要使用GPU进行深度学习,您还必须拥有CUDA®启用NVIDIA®具有3.0或更高计算能力的GPU。要指定培训选项,包括执行环境的选项,请使用培训选项作用

实例

=列车网络(imds,,选择权)训练指定的网络对于使用图像数据存储中的图像和标签的图像分类任务imds以及选择权

实例

=列车网络(ds,,选择权)使用数据存储返回的数据训练网络ds。对于具有多个输入的网络,将此语法用于返回多列数据的数据存储,例如组合数据存储。

实例

=列车网络(X,Y,,选择权)使用数字数组指定的图像或特征数据训练网络X具有由指定的分类或数字响应Y

实例

=列车网络(序列,Y,,选择权)为指定的序列数据训练循环网络(例如,LSTM或GRU网络)序列以及Y

实例

=列车网络(tbl,,选择权)使用表中的数据训练网络tbl

=列车网络(tbl,responseNames,,选择权)使用表中的数据训练网络tbl并指定包含响应的表列。

[,信息]=列车网络(___)还可以使用前面的任何语法返回有关培训的信息。

例子

全部崩溃

将数据作为图像数据存储对象。

digitDatasetPath = fullfile (matlabroot,“工具箱”,“内特”,...“nndemos”,“数据集”,“DigitDataset”);imd = imageDatastore (digitDatasetPath,...“包含子文件夹”,真的,...“LabelSource”,“foldernames”);

该数据存储包含10000个从0到9的数字合成图像。这些图像是通过对使用不同字体创建的数字图像应用随机转换生成的。每个数字图像为28×28像素。该数据存储包含每个类别相同数量的图像。

在数据存储中显示一些图像。

数字数字图像=10000;perm=randperm(数字图像,20);对于i=1:20子图(4,5,i);imshow(imds.Files{perm(i)});drawnow;终止

划分数据存储区,使训练集中的每个类别都有750个图像,测试集有来自每个标签的剩余图像。

numTrainingFiles=750;[imdsTrain,imdsTest]=拆分每个标签(imds,numTrainingFiles,“随机化”);

拆分标签将图像文件拆分为digitData存入两个新的数据存储,imdsTrainIMD测试

定义卷积神经网络结构。

层=[...imageInputLayer([28 1])卷积2Dlayer(5,20)reluLayer MaxPoolig2Dlayer(2,“大步走”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer;

将选项设置为动量随机梯度下降的默认设置。将最大历元数设置为20,并以0.0001的初始学习率开始训练。

选项=培训选项(“sgdm”,...“MaxEpochs”, 20岁,...“初始学习率”1的军医,...“冗长”假的,...“情节”,“训练进步”);

培训网络。

net=列车网络(IMD列车、层、选项);

在未用于训练网络的测试集上运行训练过的网络,并预测图像标签(数字)。

YPred=分类(净,imdsTest);YTest=imdsTest.Labels;

计算准确度。准确度是测试数据中与分类匹配的真实标签数的比率分类到测试数据中的图像数。

精度=总和(YPred==YTest)/numel(YTest)
精度= 0.9420

使用增强的图像数据训练卷积神经网络。数据增强有助于防止网络过度拟合和记忆训练图像的确切细节。

加载样本数据,该数据由手写数字的合成图像组成。

[XTrain,YTrain]=数字列车4DRARAYDATA;

Digittrain4daraydata将数字训练集作为4-D阵列数据加载。XTrain是28×28×1×5000阵列,其中:

  • 28是图像的高度和宽度。

  • 1是通道的数量。

  • 5000是手写数字合成图像的数量。

是一个分类向量,包含每个观察的标签。

留出1000个图像用于网络验证。

idx=randperm(尺寸(XTrain,4),1000);XValidation=XTrain(:,:,:,idx);XTrain(:,:,:,idx)=[];YValidation=YTrain(idx);YTrain(idx)=[];

创建一个图像数据增强器对象,该对象指定图像增强的预处理选项,例如调整大小、旋转、平移和反射。在水平和垂直方向上随机平移最多三个像素的图像,并以最大20度的角度旋转图像。

imageAugmenter=imageDataAugmenter(...“RandRotation”,[-20,20],...“随机翻译”,[-3 3],...“RandYTranslation”,[-3 3])
imageAugmenter = imageDataAugmenter with properties: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-20 20] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [-3 3] RandYTranslation: [-3 3]

创建一个增强图像数据存储对象用于网络培训,并指定图像输出大小。在培训期间,数据存储执行图像增强并调整图像大小。数据存储在不将任何图像保存到内存的情况下增强图像。列车网络更新网络参数,然后丢弃增强图像。

图像大小=[28 1];augimds=增强的图像数据存储(图像大小、XTrain、YTrain、,“数据增强”图像增强仪);

指定卷积神经网络结构。

层=[imageInputLayer(imageSize)卷积2层(3,8,“填充”,“一样”)batchNormalizationLayer reluLayer MaxPoolig2dLayer(2,“大步走”,2)卷积2层(3,16,“填充”,“一样”)batchNormalizationLayer reluLayer MaxPoolig2dLayer(2,“大步走”,2)卷积2层(3,32,“填充”,“一样”)batchNormalizationLayer reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer];

指定带有动量的随机梯度下降的训练选项。

选择= trainingOptions (“sgdm”,...“MaxEpochs”,15,...“洗牌”,“每个时代”,...“情节”,“训练进步”,...“冗长”假的,...“ValidationData”,{XValidation,YValidation});

培训网络。由于没有对验证图像进行增强,验证精度高于训练精度。

net=列车网络(augimds、层、选项);

加载由手写数字合成图像组成的样本数据。第三个输出包含每个图像旋转的相应角度(以度为单位)。

使用将训练图像加载为4-D阵列Digittrain4daraydata.输出XTrain是28×28×1×5000阵列,其中:

  • 28是图像的高度和宽度。

  • 1是通道的数量。

  • 5000是手写数字合成图像的数量。

包含以角度表示的旋转角度。

[XTrain,~,YTrain]=数字列车4DRARAYDATA;

使用以下命令显示20个随机训练图像:显示图像

图numTrainImages=numel(YTrain);idx=randperm(numTrainImages,20);对于i=1:numel(idx)子批次(4,5,i)imshow(XTrain(:,:,:,idx(i)))drawnow;终止

指定卷积神经网络结构。对于回归问题,在网络的末端包括一个回归层。

层=[...imageInputLayer([28 28 1])卷积2dlayer (12,25) reluLayer fulllyconnectedlayer (1) regressionLayer];

指定网络培训选项。将初始学习率设置为0.001。

选项=培训选项(“sgdm”,...“初始学习率”, 0.001,...“冗长”假的,...“情节”,“训练进步”);

培训网络。

net=列车网络(XTrain、YTrain、图层、选项);

通过评估测试数据的预测精度来测试网络的性能。使用预测预测验证图像的旋转角度。

[XTest ~,欧美]= digitTest4DArrayData;YPred =预测(净,XTest);

通过计算预测和实际旋转角度的均方根误差(RMSE)来评估模型的性能。

rmse=sqrt(平均值((YTest-YPred)。^2))
rmse =6.0356

训练深度学习LSTM网络用于序列到标签的分类。

加载日语元音数据集,如[1]和[2]所述。XTrain是一个细胞阵列,包含270个不同长度的序列,具有12个特征,对应于LPC倒谱系数。Y是标签1,2,…,9的分类向量。中的条目XTrain矩阵有12行(每个特征一行)和不同数量的列(每个时间步骤一列)。

[XTrain,YTrain]=日本全球应变数据;

可视化绘图中的第一个时间序列。每一行对应一个特征。

图形绘图(XTrain{1}')标题(“培训观察1”) numFeatures = size(XTrain{1},1);传奇(“功能”+字符串(1:numFeatures),“位置”,“东北外”)

定义LSTM网络架构。指定输入大小为12(输入数据的特征数)。指定LSTM层具有100个隐藏单元并输出序列的最后一个元素。最后,通过包括大小为9的完全连接层,然后是softmax层和分类层,指定九个类。

inputSize=12;numHiddenUnits=100;numClass=9;层=[...sequenceInputLayer(inputSize)lstmLayer(numHiddenUnits,“输出模式”,“最后”)fullyConnectedLayer(NumClass)softmaxLayer classificationLayer]
layers=5×1带层的层阵列:1''序列输入12维序列输入2''LSTM LSTM带100个隐藏单元3''完全连接9完全连接层4''Softmax Softmax 5''分类输出crossentropyex

指定培训选项。将解算器指定为“亚当”“GradientThreshold”作为1。将最小批量大小设置为27,并将最大历元数设置为70。

因为小批量小,序列短,所以CPU更适合于训练“执行环境”“cpu”。若要在GPU上进行训练,请设置“执行环境”“自动”(默认值)。

maxEpochs=70;miniBatchSize=27;选项=培训选项(“亚当”,...“执行环境”,“cpu”,...“MaxEpochs”maxEpochs,...“MiniBatchSize”,小批量,...“GradientThreshold”1....“冗长”假的,...“情节”,“训练进步”);

使用指定的培训选项培训LSTM网络。

net=列车网络(XTrain、YTrain、图层、选项);

加载测试集并将序列分类为扬声器。

[XTest,YTest]=日本世界统计数据;

对测试数据进行分类。指定用于培训的相同小批量。

YPred=分类(净、XTest、,“MiniBatchSize”,小批量);

计算预测的分类精度。

acc=sum(YPred==YTest)。/numel(YTest)
acc = 0.9514

如果您有数字特征数据集(例如,没有空间或时间维度的数字数据集合),则可以使用特征输入层来训练深度学习网络。

从CSV文件中读取变速箱壳体数据“transmissionCasingData.csv”

文件名=“transmissionCasingData.csv”;tbl=可读(文件名,“文本类型”,“字符串”);

使用转换器作用

labelName =“齿轮齿状况”;台= convertvars(资源描述、labelName“绝对的”);

要使用分类特征训练网络,必须首先将分类特征转换为数字。首先,将分类预测符转换为分类预测符转换器通过指定包含所有分类输入变量名称的字符串数组来执行函数。在此数据集中,有两个具有名称的分类功能“传感器状态”“轴系条件”

categoricalInputNames=[“传感器状态”“轴系条件”];tbl=convertvars(tbl,分类输入名称,“绝对的”);

在分类输入变量上循环。对于每个变量:

  • 使用onehotencode作用

  • 将一个热点向量加到表中艾德瓦函数。指定在包含相应分类数据的列之后插入向量。

  • 删除包含分类数据的相应列。

对于i=1:numel(categoricalInputNames)name=categoricalInputNames(i);oh=onehotcode(tbl(:,name));tbl=addvars(tbl,oh,“之后”、名称);台(:名字)= [];终止

使用斯普利瓦茨作用

tbl=拆分变量(tbl);

查看表的前几行。请注意,分类预测器已拆分为多个列,其中分类值作为变量名。

总目(待定)
ans=8×23表SigMean SigMedian SigRMS SigVar SigPeak SigPeak 2peak SigSkewness SigKurtosis SigCrestFactor SigMAD SigRangeCumSum SigCorrDimension SigApproxEntropy SigLyapExponent PeakFreq HighFreqPower EnvPower peakspec峰度无传感器漂移传感器漂移无轴磨损轴磨损齿轮齿状况________ _________ ______ _______ _______ _______________________ ___________ ______________ _______ ______________ ________________ ________________ _______________ ________ _____________ ________ ________________ _______________ ____________ _____________ __________ __________________ - 0.94876 -0.9722 1.3726 0.98387 0.81571 3.6314 -0.041525 2.2666 2.0514 0.8081 1.1429 0.031581 79.931 28562 06.75 e-06 3.23 e-07 162.13 0 1 1 0没有牙齿错-0.97537 -0.98958 1.3937 0.99105 0.81571 3.6314 -0.023777 2.2598 2.0203 0.81017 29418 1.1362 0.037835 70.325 5.08 e-08 9.16 e-08 226.12 0 1 1 0没有牙齿错1.0502 1.0267 1.4449 0.98491 2.8157 3.6314 -0.04162 2.2658 1.9487 0.80853 31710 1.1479 0.031565 125.19 6.74 e-06 2.85 e-07 162.13 0 1 0 1没有牙错1.0227 1.0045 1.4288 0.99553 2.8157 3.6314 -0.016356 2.2483 1.9707 0.81324 30984 1.1472 0.032088 112.5 4.99 e-06 2.4 e-07 162.13 0 1 0 1没有牙齿错1.0123 1.0024 1.4202 0.99233 2.8157 3.6314 -0.014701 2.2542 1.9826 0.81156 30661 1.1469 0.03287 108.86 3.62 e-06 2.28 e-07 230.39 0 1 0 1没有牙齿错1.0275 1.0102 1.4338 1.00012.8157 3.6314 -0.02659 2.2439 1.9638 0.81589 31102 1.0985 0.033427 64.576 2.55 e-06 1.65 e-07 230.39 0 1 0 1没有牙齿错1.0464 1.0275 1.4477 1.0011 2.8157 3.6314 -0.042849 2.2455 1.9449 0.81595 31665 1.1417 0.034159 98.838 1.73 e-06 1.55 e-07 230.39 0 1 0 1没有牙齿错1.0459 1.0257 1.4402 0.98047 2.8157 3.6314 -0.035405 2.2757 1.955 0.8058331554 1.1345 0.0353 44.223 0 1.11e-06 1.39e-07 230.39 0 1 0 1 No Tooth Fault

查看数据集的类名。

一会=类别(台{:,labelName})
类名=2×1电池{‘无齿故障’}{‘齿故障}

接下来,将数据集划分为培训和测试分区。留出15%的数据用于测试。

确定每个分区的观察数。

numObservations=大小(待定,1);numObservationsTrain=地板(0.85*numObservations);numObservationsTest=numObservations-numObservationsTrain;

创建一个与观测值相对应的随机索引数组,并使用分区大小对其进行分区。

idx = randperm (numObservations);idxTrain = idx (1: numObservationsTrain);idxTest = idx (numObservationsTrain + 1:结束);

使用索引将数据表划分为培训、验证和测试分区。

tblTrain=tbl(idxTrain,:);tblTest=tbl(idxTest,:);

定义一个具有要素输入层的网络,并指定要素的数量。此外,配置输入层以使用Z分数规范化来规范化数据。

numFeatures = size(tbl,2) - 1;numClasses =元素个数(类名);[featureInputLayer(numFeatures,“正常化”,“zscore”)fullyConnectedLayer(50)批次规格化层reluLayer fullyConnectedLayer(numClasses)softmaxLayer分类层];

指定培训选项。

miniBatchSize=16;选项=培训选项(“亚当”,...“MiniBatchSize”,小批量,...“洗牌”,“每个时代”,...“情节”,“训练进步”,...“冗长”,假);

使用由定义的体系结构对网络进行培训、培训数据和培训选项。

net=列车网络(TBL列车、层、选项);

使用训练好的网络预测测试数据的标签,并计算准确度。准确度是网络正确预测的标签的比例。

YPred=分类(净、待测试、,“MiniBatchSize”,miniBatchSize);YTest=tblTest{:,labelName};精度=sum(YPred==YTest)/numel(YTest)
精度= 0.9688

输入参数

全部崩溃

包含图像和标签的图像数据存储,指定为图像数据存储对象。

使用图像数据存储作用要使用包含图像的文件夹的名称作为标签,请设置“LabelSource”选择“foldernames”。或者,使用标签属性的图像数据存储。

这个列车网络函数仅支持用于图像万博1manbetx分类网络的图像数据存储。要将图像数据存储用于回归网络,请使用使改变结合功能。有关更多信息,请参见ds输入参数。

图像数据存储允许使用预取批量读取JPG或PNG图像文件。如果使用自定义函数读取图像,则图像数据存储不预取。

提示

使用增强图像数据存储用于深度学习的图像预处理,包括图像大小调整。

请勿使用readFcn选择图像数据存储用于预处理或调整大小,因为此选项通常要慢得多。

用于内存不足数据和预处理的数据存储。

下表列出了直接兼容的数据存储列车网络.可以使用其他内置数据存储来训练深度学习网络使改变结合函数。这些函数可以将从数据存储读取的数据转换为列车网络。对于具有多个输入的网络,数据存储必须是组合或转换的数据存储,或自定义小批量数据存储。有关详细信息,请参阅用于深度学习的数据存储

数据存储类型 描述
CombinedDatastore 水平连接从两个或多个底层数据存储读取的数据。
TransformedDatastore 根据您自己的预处理管道转换从底层数据存储中读取的批量数据。
增强图像数据存储 应用随机仿射几何变换,包括调整大小、旋转、反射、剪切和平移,以训练深层神经网络。
像素标签图像数据存储(计算机视觉工具箱) 对图像和相应的地面真值标签应用相同的仿射几何变换来训练语义分割网络(需要计算机视觉工具箱)™).
随机抽取数据存储(图像处理工具箱) 从图像或像素标签图像中提取随机面片对(需要图像处理工具箱™). 可以选择对面片对应用相同的随机仿射几何变换。
去噪图像数据存储(图像处理工具箱) 应用随机生成的高斯噪声训练去噪网络(需要图像处理工具箱)。
自定义mini-batch数据存储 创建序列、时间序列、文本或要素数据的小批量。有关详细信息,请参阅开发自定义小批量数据存储

数据存储必须返回表或单元格数组中的数据。数据存储输出的格式取决于网络体系结构。

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

具有两列的表或单元格数组。

第一列和第二列分别指定预测值和响应。

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

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

数据=读取(ds)
数据=4×2表预测值响应{224×224×3双}2{224×224×3双}7{224×224×3双}9{224×224×3双}
数据=读取(ds)
Data = 4×2 cell array {224×224×3 double} {[2]} {224×224×3 double} {[7]} {224×224×3 double} {[9]} {224×224×3 double} {[9]}
多输入层

单元阵列(努明普茨+1)列,其中努明普茨为网络输入的个数。

第一努明普茨列指定每个输入的预测值,最后一列指定响应。

输入的顺序由InputNames层图的性质

数据=读取(ds)
Data = 4×3 cell array {224×224×3 double} {128×128×3 double} {[2]} {224×224×3 double} {128×128×3 double} {[2]} {224×224×3 double} {128×128×3 double} {[9]} {224×224×3 double} {128×128×3 double} {[9]}

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

数据 格式的预测
二维图像

H-借-W-借-C数字数组,H,WC分别是图像的高度、宽度和通道数。

三维图像

H-借-W-借-D-借-C数字数组,H,W,DC分别为图像的高度、宽度、深度和通道数量。

向量序列

C-借-s矩阵,在哪里C是序列的特征数,并且s为序列长度。

二维图像序列

H-借-W-借-C-借-s数组,在哪里H,WC分别对应图像的高度、宽度和通道数量,和s为序列长度。

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

三维图像序列

H-借-W-借-D-借-C-借-s数组,在哪里H,W,DC分别对应图像的高度、宽度、深度和通道数量,和s为序列长度。

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

特征

C-by-1列向量,其中C是功能的数量。

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

这个列车网络函数不支持具有多个序列输入层的网络。万博1manbetx

响应的格式取决于任务的类型。

任务 格式的响应
分类 范畴标量
回归

  • 标量

  • 数值向量

  • 表示图像的三维数字数组

序列间分类

1 -s分类标签序列,其中s为相应预测序列的序列长度。

序列间回归

R-借-s矩阵,在哪里R是多少回应和s为相应预测序列的序列长度。

对于表中返回的响应,元素必须是分类标量、数字标量、数字行向量或包含数字数组的1×1单元格数组。

图像或要素数据,指定为数字数组。数组的大小取决于输入的类型:

输入 描述
二维图像 A.H-借-W-借-C-借-N数字数组,H,WC分别是图像的高度、宽度和通道数,以及N是图像的数量。
三维图像 A.H-借-W-借-D-借-C-借-N数字数组,H,W,DC图像的高度、宽度、深度和通道数量分别是和吗N是图像的数量。
特征 A.N-借-numFeatures数字数组,N观察的次数是多少numFeatures为输入数据的特征个数。

如果数组包含s、 然后它们通过网络传播。

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

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

输入 描述
向量序列 C-借-s矩阵,在哪里C是序列的特征数,以及s为序列长度。
二维图像序列 H-借-W-借-C-借-s数组,在哪里H,WC分别对应图像的高度、宽度和通道数量,和s为序列长度。
三维图像序列 H-借-W-借-D-借-C-借-s哪里H,W,DC分别对应于三维图像的高度、宽度、深度和通道数,以及s为序列长度。

要使用数据存储指定序列,请使用ds输入参数。

响应,指定为标签的类别向量、数字数组、类别序列的单元格数组或数字序列的单元格数组。的格式Y取决于任务的类型。响应不能包含年代。

分类

任务 格式
图像或特征分类 N-标签的by-1分类向量,其中N是观察数。
序列到标签分类
序列间分类

N-标签分类序列的by-1单元格数组,其中N是观察数。每个序列必须具有与相应预测序列相同的时间步数。

对于具有一次观察的序列到序列分类任务,序列也可以是向量。在这种情况下,Y必须是标签的分类序列。

回归

任务 格式
二维图像回归
  • N-借-R矩阵,在哪里N图像的数量是和吗R是响应的数量。

  • H-借-W-借-C-借-N数字数组,H,WC分别是图像的高度、宽度和通道数,以及N是图像的数量。

三维图像回归
  • N-借-R矩阵,在哪里N图像的数量是和吗R是响应的数量。

  • H-借-W-借-D-借-C-借-N数字数组,H,W,DC图像的高度、宽度、深度和通道数量分别是和吗N是图像的数量。

序列对一回归 N-借-R矩阵,在哪里N是序列数和R是响应的数量。
序列间回归

N-数字序列的by-1单元格数组,其中N是序列的数量。序列是具有R行,在哪里R是响应数。每个序列必须具有与相应预测序列相同的时间步数。

对于具有一个观察值的序列到序列回归任务,序列可以是矩阵。在这种情况下,Y必须是响应矩阵。

功能回归

N-借-R矩阵,在哪里N观察的次数是多少R是响应的数量。

对响应进行规范化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参阅训练卷积神经网络用于回归

输入数据,指定为包含预测值和响应的表格。表格中的每一行对应一个观察值。

表列中预测值和响应的排列取决于任务的类型。

分类

任务 预测因子 响应
图像分类
  • 图像的绝对或相对文件路径,在单个列中指定为字符向量

  • 指定为包含三维数字数组的1×1单元格数组的图像

预测器必须位于表的第一列。

分类标签

序列到标签分类

包含序列或时间序列数据的MAT文件的绝对或相对文件路径。

MAT文件必须包含一个由矩阵表示的时间序列,其中行对应数据点,列对应时间步长。

预测器必须位于表的第一列。

分类标签

序列间分类

MAT文件的绝对或相对文件路径。MAT文件必须包含一个由分类向量表示的时间序列,每个时间步骤都有对应标签的条目。

特征分类

数字标量。

如果未指定responseNames参数,则预测器必须位于第一个numFeatures表的列,其中numFeatures为输入数据的特征个数。

分类标签

对于具有图像或序列输入的分类网络,如果没有指定responseNames,则该函数在默认情况下使用的第一列tbl用于预测器,第二列作为标签。对于具有特征输入的分类网络,如果未指定responseNames参数,则默认情况下,函数使用第一个(numColumns-1)一栏tbl对于预测器和标签的最后一列,其中numFeatures是输入数据中要素的数量。

回归

任务 预测因子 响应
图像回归

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

  • 指定为包含三维数字数组的1×1单元格数组的图像

预测器必须位于表的第一列。

  • 标量值的一列或多列

  • 数字行向量

  • 包含三维数字数组的1乘1单元格数组

序列对一回归

包含序列或时间序列数据的MAT文件的绝对或相对文件路径。

MAT文件必须包含一个由矩阵表示的时间序列,其中行对应数据点,列对应时间步长。

预测器必须位于表的第一列。

  • 标量值的一列或多列

  • 数字行向量

序列间回归

MAT文件的绝对或相对文件路径。MAT文件必须包含一个由矩阵表示的时间序列,其中行对应响应,列对应时间步长。

功能回归

在一列或多列中指定为标量的要素。

如果未指定responseNames参数,则预测器必须位于第一个numFeatures表的列,其中numFeatures为输入数据的特征个数。

标量值的一列或多列

对于具有图像或序列输入的回归网络,如果未指定responseNames,则该函数在默认情况下使用的第一列tbl对于预测值和后续列作为响应。对于具有特征输入的回归网络,如果未指定responseNames参数,则函数默认使用第一个参数numFeatures预测值列和响应的后续列,其中numFeatures是输入数据中要素的数量。

对响应进行规范化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参阅训练卷积神经网络用于回归

响应不能包含s、 如果预测数据包含,然后通过培训进行传播。然而,在大多数情况下,训练不能收敛。

数据类型:桌子

输入表中响应变量的名称,指定为以下之一:

  • 对于具有单个响应的分类或回归任务,responseNames必须是输入表中包含响应变量的字符向量或字符串标量。

    对于具有多个响应的回归任务,responseNames必须是输入表中包含响应变量的字符向量的字符串数组或单元格数组。

数据类型:烧焦|细胞|一串

网络层,指定为数组或一个分层图对象。

要创建所有层按顺序连接的网络,可以使用数组作为输入参数。在本例中,返回的网络为系列网络对象。

有向无环图(DAG)网络具有复杂的结构,其中各层可以有多个输入和输出。要创建DAG网络,请将网络体系结构指定为分层图对象,然后将该层图用作列车网络

有关内置图层的列表,请参见深度学习层列表

培训选项,指定为TrainingOptionsSGDM,培训选项RMSPROP,或培训选项ADAM对象返回的培训选项作用

输出参数

全部崩溃

训练有素的网络,作为系列网络对象或一个DAGNetwork对象。

如果您使用数组,然后是一个系列网络对象。如果您使用分层图那么,反对吧是一个DAGNetwork对象。

训练信息,作为结构返回,其中每个字段是标量或数字向量,每个训练迭代包含一个元素。

对于分类任务,信息包含以下字段:

  • TrainingLoss-损失函数值

  • 训练准确性——训练精度

  • 验证损失-损失函数值

  • 验证准确性-验证精度

  • BaseLearnRate-学习率

  • 最终验证损失-最终验证损失

  • 最终验证准确性-最终验证精度

对于回归任务,信息包含以下字段:

  • TrainingLoss-损失函数值

  • 培训RMSE-训练RMSE值

  • 验证损失-损失函数值

  • 验证RMSE-验证RMSE值

  • BaseLearnRate-学习率

  • 最终验证损失-最终验证损失

  • 最终验证RMSE-最终验证RMSE

该结构仅包含字段验证损失,验证准确性,验证RMSE,最终验证损失,最终验证准确性最终验证RMSE什么时候选择权指定验证数据“验证频率”选择培训选项确定软件计算验证度量的迭代。最终的验证度量是标量的。结构的其他字段是行向量,其中每个元素对应于一个训练迭代。对于软件不计算验证度量的迭代,结构中的相应值为

如果您的网络包含批处理规范化层,那么最终的验证度量通常与训练期间评估的验证度量不同。这是因为最终网络中的批处理归一化层执行的操作与训练时不同。有关更多信息,请参见batchNormalizationLayer

更多关于

全部崩溃

保存检查点网络并恢复培训

深度学习工具箱™ 使您能够在培训期间的每个历元后将网络另存为.mat文件。当您拥有大型网络或大型数据集且培训需要较长时间时,此定期保存特别有用。如果培训因某种原因中断,您可以从上次保存的检查点网络恢复培训。如果需要列车网络若要保存检查点网络,则必须使用“CheckpointPath”的名称-值对参数培训选项.如果指定的路径不存在,则培训选项返回一个错误。

列车网络自动分配唯一的名称检查点网络文件。在示例名称中,净检查点2018 04 12 18 09 52.mat,351是迭代编号,2018_04_12日期是多少18_09_52是什么时候列车网络保存网络。您可以通过双击检查点网络文件或使用命令行中的load命令来加载该文件。例如:

负载net_checkpoint__351__2018_04_12__18_09_52.mat
然后,您可以使用网络层作为输入参数来恢复训练列车网络. 例如:

trainNetwork (XTrain YTrain、net.Layers选项)
您必须手动指定培训选项和输入数据,因为检查点网络不包含此信息。有关示例,请参阅从检查点网络恢复培训

浮点算术

深度学习工具箱中用于深度学习训练、预测和验证的所有函数都使用单精度浮点算法进行计算。深度学习的函数包括列车网络,预测,分类激活。当您同时使用CPU和GPU训练网络时,软件使用单精度算法。

工具书类

[1] 使用通过区域的多维曲线分类模式识别字母第20卷,第11-13号,第1103-1111页。

工藤,富山,新博。日语元音数据集. https://archive.ics.uci.edu/ml/datasets/Japanese+元音

扩展能力

R2016a中引入