火车神经网络深入学习
对于分类和回归任务,您可以使用trainNetwork
为了培训用于图像数据的卷积神经网络(ConvNet,CNN),诸如序列数据的长短期存储器(LSTM)或门控复发单元(GU)网络的经常性神经网络(RNN),或者是多个 -用于数字特征数据的Layer Perceptron(MLP)网络。您可以在CPU或GPU上培训。对于图像分类和图像回归,您可以使用多个GPU或并行训练。使用GPU,Multi-GPU和并行选项需要并行计算工具箱™。要使用GPU进行深度学习,还必须有CUDA®启用nvidia.®GPU,计算能力3.0或更高。要指定培训选项,包括执行环境的选项,请使用培训选项
函数。
列车由指定的网络网
= trainnetwork(洛桑国际管理发展学院
,层
,选项
)层
用于使用图像数据存储中的图像和标签的图像分类任务洛桑国际管理发展学院
和培训选项定义选项
.
将数据加载为ImageDatastore
目的。
digitdatasetpath = fullfile(matlabroot,'工具箱',“nnet”,...“nndemos”,“nndatasets”,'digitdataset');imds = imageageataStore(DigitDatasetPath,...'insertumbfolders',真的,...'labelsource',“foldernames”);
数据存储区包含从0到9的数字的10,000个合成图像。通过将随机变换应用于以不同字体创建的数字图像来生成图像。每个数字图像是28×28像素。数据存储区每个类别包含相同数量的图像。
在数据存储中显示一些图像。
图numimages = 10000;perm = randperm(numimages,20);为了I = 1:20 subplot(4,5, I);imshow (imds.Files{烫发(i)});drawnow;结束
划分数据存储,以便培训集中的每个类别具有750个图像,并且测试集具有来自每个标签的剩余图像。
numTrainingFiles = 750;[imdsTrain, imdsTest] = splitEachLabel (imd, numTrainingFiles“随机”);
splitEachLabel
分割图像文件digitdata.
进入两个新数据存储,Imdstrain.
和Inmdstest.
.
定义卷积神经网络架构。
层= [...imageInputLayer([28 28 1])卷积2dlayer (5,20) reluLayer maxPooling2dLayer(2, 20)“步”,2)全连接列(10)SoftmaxLayer分类层];
将动量随机梯度下降的选项设置为默认设置。设置最大纪元数为20,初始学习率为0.0001,开始训练。
选择= trainingOptions ('sgdm',...'maxepochs'20,...'italllearnrate',1e-4,...'verbose',错误的,...“阴谋”,'培训 - 进步');
培训网络。
网= trainNetwork (imdsTrain层,选项);
在未用于训练网络的测试集中运行训练网络,并预测图像标签(数字)。
Ypred =分类(网络,IMDSTEST);ytest = imdstest.labels;
计算准确性。准确性是测试数据中真实标签数与分类匹配的真实标签的比率分类
到测试数据中的图像数量。
精度= sum(YPred == YTest)/numel(YTest)
精度= 0.9420.
使用增强图像数据列车卷积神经网络。数据增强有助于防止网络过度接收和记忆培训图像的确切细节。
加载样本数据,它由手写数字的合成图像组成。
[XTrain, YTrain] = digitTrain4DArrayData;
digittrain4darraydata.
将数字训练集加载为4-D阵列数据。XTrain
是一个28 × 28 × 1 × 5000的数组,其中:
28是图像的高度和宽度。
1是通道的数量。
5000是手写数字的合成图像数量。
ytrain.
是一个包含每个观察标签的分类矢量。
预留1000个图像用于网络验证。
idx = randperm(大小(XTrain, 4), 1000);XValidation = XTrain (:,:,:, idx);XTrain (::,:, idx) = [];YValidation = YTrain (idx);YTrain (idx) = [];
创建一个imageDataAugmenter
对象,该对象指定用于图像增强的预处理选项,如调整大小、旋转、平移和反射。随机将图像水平和垂直平移到三个像素,并旋转图像的角度高达20度。
imageAugmenter = imageDataAugmenter (...'randroatation'(-20年,20),...“RandXTranslation”3 [3],...'randytranslation'3 [3])
Imageaugmenter = ImagedataAugmenter具有属性:FileValue:0 RandXreflection:0 Randyreflection:0 RandRotation:[-20 20] RANDSCALE:[1] RANDXSCALE:[1] RANDYSCALE:[1] RANDXSHEAR:[0] RANDYSHEAR:[00] RandXTranslation:[-3 3] RandyTranslation:[-3 3]
创建一个AugmentedimageGedataStore.
用于网络训练的对象并指定图像输出大小。在培训期间,数据存储区执行图像增强并调整图像大小。数据存储区增强了图像而不将任何图像保存到内存。trainNetwork
更新网络参数,然后丢弃增强后的图像。
图像= [28 28 1];Augimds = AugmentedimageDataStore(图像化,Xtrain,Ytrain,“DataAugmentation”, imageAugmenter);
指定卷积神经网络架构。
[imageInputLayer(imageSize)] = [imageInputLayer(imageSize)]“填充”,'相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,“步”,2)卷积2dlayer(3,16,“填充”,'相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,“步”,2)卷积2dlayer(3,32,“填充”,'相同的') batchNormalizationLayer relullayer fulllyconnectedlayer (10) softmaxLayer classificationLayer];
用动量指定随机梯度下降的培训选项。
选择=培训选项('sgdm',...'maxepochs'15,...“洗牌”,'每个时代',...“阴谋”,'培训 - 进步',...'verbose',错误的,...'vightationdata', {XValidation, YValidation});
培训网络。由于验证图像未增强,所以验证精度高于训练精度。
网= trainNetwork (augimds层,选择);
加载样本数据,它由手写数字的合成图像组成。第三个输出包含相应的角度,每个图像被旋转的角度。
以4-D数组的形式加载训练图像digittrain4darraydata.
.输出XTrain
是一个28 × 28 × 1 × 5000的数组,其中:
28是图像的高度和宽度。
1是通道的数量。
5000是手写数字的合成图像数量。
ytrain.
包含度数的旋转角度。
[XTrain,〜,Ytrain] = Digittrain4darraydata;
显示20个随机训练图像imshow.
.
图numtrainimages = numel(ytrain);IDX = RANDPERM(NUMTRAIMIMAGES,20);为了i = 1:元素个数(idx)次要情节(4、5、i) imshow (XTrain (:,:,:, idx(我)))drawnow;结束
指定卷积神经网络架构。对于回归问题,包括在网络末尾的回归层。
层= [...imageInputLayer([28 28 1])卷积2dlayer(12,25)rululayer全连接列(1)回归层];
指定网络培训选项。设置初始学习率为0.001。
选择= trainingOptions ('sgdm',...'italllearnrate',0.001,...'verbose',错误的,...“阴谋”,'培训 - 进步');
培训网络。
网= trainNetwork (XTrain、YTrain层,选择);
通过评估测试数据的预测准确性来测试网络的性能。用预测
来预测验证图像的旋转角度。
[xtest,〜,ytest] = dimittest4darraydata;ypred =预测(net,xtest);
通过计算预测和实际旋转角度的均方根误差(RMSE)来评估模型的性能。
rmse =√(mean((YTest - YPred).^2)))
RMSE =.单身的6.0356
培训深度学习LSTM网络,用于序列到标签分类。
如[1]和[2]中所述加载日语元音数据集。XTrain
是含有270个变化长度序列的细胞阵列,其具有对应于LPC综合系数的12个特征。Y
是标签1,2,...,9的分类矢量。参赛作品XTrain
是具有12行的矩阵(每个特征的一行)和不同数量的列(每次步骤一列)。
[XTrain, YTrain] = japaneseVowelsTrainData;
想象情节中的第一个时间序列。每一行对应一个特征。
图绘制(XTrain{1}”)标题(“训练观察1”)numfeatures = size(xtrain {1},1);传奇(“特征 ”+字符串(1:numFeatures),'地点',“northeastoutside”)
定义LSTM网络架构。指定输入大小为12(输入数据的功能数)。指定LSTM层以具有100个隐藏单元,并输出序列的最后一个元素。最后,通过包括一个完全连接的大小9层来指定九类,然后是Softmax层和分类层。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [...sequenceInputLayer inputSize lstmLayer (numHiddenUnits,'OutputMode',“最后一次”)软连接层(numClasses)
图层= 5×1层阵列,带有图层:1''序列输入序列输入,带12尺寸2''LSTM LSTM,具有100个隐藏单元3'完全连接的9个完全连接的第4层''Softmax SoftMax 5''分类输出CrossentRopyex
指定培训选项。指定求解器为'亚当'
和'gradientthreshold'
作为1.将迷你批量尺寸设置为27并将最大数量的时期设置为70。
由于迷你批次具有短序列,因此CPU更适合培训。放“ExecutionEnvironment”
到“cpu”
.在GPU上训练,如果有的话,设置“ExecutionEnvironment”
到“汽车”
(默认值)。
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions ('亚当',...“ExecutionEnvironment”,“cpu”,...'maxepochs',maxepochs,...“MiniBatchSize”,小匹马,...'gradientthreshold',1,...'verbose',错误的,...“阴谋”,'培训 - 进步');
使用指定的训练选项训练LSTM网络。
网= trainNetwork (XTrain、YTrain层,选择);
加载测试集并将序列分类为扬声器。
[XTest,欧美]= japaneseVowelsTestData;
分类测试数据。指定用于培训的相同百分比大小。
XTest YPred =分类(净,“MiniBatchSize”, miniBatchSize);
计算预测的分类精度。
ACC = SUM(YPRED == ytest)./ numel(ytest)
ACC = 0.9514.
如果您有一个数字特征的数据集(例如没有空间或时间尺寸的数字数据集合),则可以使用特征输入层培训深度学习网络。
从CSV文件读取传输壳体数据“transactionscasingdata.csv”
.
文件名=“transactionscasingdata.csv”;台= readtable(文件名,“TextType”,'细绳');
属性将用于预测的标签转换为分类的转录Vars.
函数。
labelName =“齿轮技术”;tbl = convedvars(tbl,labelname,“分类”);
要使用分类功能培训网络,必须首先将分类功能转换为数字。首先,将分类预测因子转换为分类转录Vars.
通过指定包含所有分类输入变量的名称的字符串数组。在此数据集中,有两个具有名称的分类功能“传感器”
和“shaftcondition”
.
categoricalInputNames = [“传感器”“shaftcondition”];台= convertvars(资源描述、categoricalInputNames“分类”);
循环分类输入变量。为每一个变量:
将分类值转换为使用的一个热编码向量onehotencode
函数。
使用介绍将单热量向量添加到表中addvars.
函数。指定在包含相应的分类数据的列后插入向量。
删除包含分类数据的相应列。
为了i = 1:numel(categoricalInputNames) name = categoricalInputNames(i);哦= onehotencode(资源描述(:,名字));台= addvars(资源描述,哦,“后”,姓名);tbl(:,name)= [];结束
将向量分割成单独的列splitvars
函数。
tbl = splitvars(tbl);
查看表的前几行。请注意,分类预测器被分割为多个列,其中分类值作为变量名。
头(TBL)
ans =8×23表SigMean SigMedian SigRMS SigVar SigPeak SigPeak2Peak SigSkewness SigKurtosis SigCrestFactor SigMAD SigRangeCumSum SigCorrDimension SigApproxEntropy SigLyapExponent PeakFreq HighFreqPower EnvPower PeakSpecKurtosis无传感器漂移传感器漂移无轴的磨损轴的磨损GearToothCondition ________ _________ ______ _______ _______ ____________ ___________ ___________ ______________ _______ ______________ ________________ ________________ _______________ ________ _____________ ________ ________________ _______________ ____________ _______________________ __________________ -0.94876 -0.9722 1.3726 0.98387 0.81571 3.6314 -0.041525 2.2666 2.0514 0.8081 28562 1.1429 0.031581 79.931 0 6.75e-06 3.23e-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 294181.1362 0.037835 70.325 0 5.08E-08 9.16E-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 31712 0.80853 31710 1.1479 0.0.031565 125.19 0 6.74e-06 2.85E-07 162.13 0 1 0 1无齿故障1.0227 1.4288 0.99553 2.8157 3.6314 -0.016356 2.2483 1.9707 0.81324 30984 0.81324 30984 0.81324 30984 1.1472 0.0.0 4.0 4.0 4.0 40-071112.5 0 1 0 1/10 1 0 40 40-07 162.13 0 1 0 1无齿故障1.0123 1.0024 1.01230.99233 2.8157 3.6314 -0.014701 2.2542 1.9826 0.81156 30661 1.1469 0.03287 108.86 0 3.62E-06 2.28e-07 230.39 0 1 0 1无齿故障1.0275 1.0102 1.4338 1.0001 2.8157 3.6314 -0.02659 2.2439 1.9638 0.81589 31102 1.0985 0.033427 64.576 0 2.55e-06 1.65e-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 2.9449 0.81595 1.9449 0.81595 3.9449 0.81595 3.9449 0.81595 31665 1.1415 0. 0.0 1.73C-06 1.552-07/12.81590 1.0.035405 2.2757 1.955 0.80583 0.80583 31554 1.1345 0.0353 44.223 0 1.11E-06 1.39E-07 230.39 0 1 0 1无齿故障
查看数据集的类名。
ClassNames =类别(TBL {:,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 =(资源(idxTrain:);tblTest =(资源(idxTest:);
定义一个具有特征输入层的网络,并指定特征的数量。另外,配置输入层,使用Z-score标准化对数据进行标准化。
numfeatures =尺寸(tbl,2) - 1;numclasses = numel(classnames);图层= [FeatureInputLayer(NumFeatures,“归一化”,“zscore”) fulllyconnectedlayer (50) batchNormalizationLayer relullayer fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer];
指定培训选项。
miniBatchSize = 16;选择= trainingOptions ('亚当',...“MiniBatchSize”,小匹马,...“洗牌”,'每个时代',...“阴谋”,'培训 - 进步',...'verbose',错误的);
使用由架构定义的架构列车层
、培训数据和培训选项。
网= trainNetwork (tblTrain层,选项);
使用培训的网络预测测试数据的标签并计算精度。准确性是网络正确预测的标签的比例。
tblTest YPred =分类(净,“MiniBatchSize”, miniBatchSize);欧美= tblTest {: labelName};精度= sum(YPred == YTest)/numel(YTest)
精度= 0.9688
洛桑国际管理发展学院
- - - - - -图像数据存储ImageDatastore
对象包含图像和标签的图像数据存储,指定为ImageDatastore
目的。
属性创建一个映像数据存储imageageAtastore.
函数。若要使用包含图像的文件夹的名称作为标签,请设置'labelsource'
选项“foldernames”
.方法手动指定标签标签
图像数据存储的属性。
的trainNetwork
函数仅支持用于图像金宝app分类网络的图像数据存储。要为回归网络使用图像数据存储,请使用转变
和结合
职能。有关更多信息,请参阅ds
输入参数。
ImageDatastore
允许批量读取JPG或PNG图像文件使用预取。如果您使用自定义函数来读取图像,那么ImageDatastore
没有预取。
提示
用AugmentedimageGedataStore.
用于高学习的图像高效预处理,包括图像调整大小。
不要使用readfcn.
选择imageageAtastore.
对于预处理或调整大小,这个选项通常非常慢。
ds
- - - - - -数据存储用于内存不足的数据和预处理的数据存储。
下表列出了直接兼容的数据存储trainNetwork
.您可以使用其他内置数据存储来培训深度学习网络转变
和结合
职能。这些功能可以将从数据存储读取的数据转换为所需的表或单元格阵列格式trainNetwork
.对于具有多个输入的网络,数据存储必须是组合或转换的数据存储,或自定义的迷你批处理数据存储。有关更多信息,请参见用于深度学习的数据存储.
类型的数据存储 | 描述 |
---|---|
ConventDatastore. |
水平串联从两个或更多个底层数据存储读取的数据。 |
变换adatastore. |
根据您自己的预处理管道从底层数据存储转换批读数据。 |
AugmentedimageGedataStore. |
涂抹随机仿射几何变换,包括调整大小,旋转,反射,剪切和翻译,用于训练深神经网络。 |
PixelLabelImageDatastore (计算机视觉工具箱) |
对图像应用相同的仿射几何变换和相应的地面真值标签来训练语义分割网络(需要Computer Vision Toolbox™)。 |
RandomPatchExtractionDatastore (图像处理工具箱) |
从图像或像素标签图像中提取成对的随机补丁(需要图像处理工具箱™)。你也可以选择对这对补丁应用相同的随机仿射几何变换。 |
DenoisingImageDatastore (图像处理工具箱) |
为培训去噪网络应用随机生成的高斯噪声(需要图像处理工具箱)。 |
自定义迷你批量数据存储 | 创建Mini-Batch的序列,时间序列,文本或特征数据。有关详细信息,请参见开发自定义迷你批处理数据存储. |
数据存储必须返回表或单元格数组中的数据。数据存储输出的格式取决于网络架构。
网络体系结构 | 数据存储输出 | 示例输出 |
---|---|---|
单个输入层 | 具有两列的表或单元格数组。 第一列和第二列分别指定预测器和响应。 表元素必须是标量、行向量或包含数字数组的1 × 1单元格数组。 自定义小批处理数据存储必须输出表。 |
data =阅读(ds) data = 4×2 table Predictors Response __________________ ________ {224×224×3 double} 2 {224×224×3 double} 7 {224×224×3 double} 9 {224×224×3 double} 9 |
data =阅读(ds) 数据= 4×2单元阵列{224×224×3双} {[2]} {224×224×3双} {[7]} {224×224×3双} {[9]} {224×224×3双} {[9]} |
||
多个输入层 | 单元格数组( 第一个 输入的顺序由 |
data =阅读(ds) 数据= 4×3单元阵列{224×224×3双} {128×128×3双} {[2]} {224×224×3双} {128×128×3双} {[2]} {224×224×3双} {128×128×3双} {[9]} {224×224×3双} {128×128×3双} {[9]} |
预测器的格式取决于数据的类型。
数据 | 预测器的格式 |
---|---|
二维图像 | h——- - - - - -w——- - - - - -c数字数组,其中h,w, 和c是图像的高度,宽度和数量。 |
3-D图像 | h——- - - - - -w——- - - - - -d——- - - - - -c数字数组,其中h,w,d, 和c是图像的高度,宽度,深度和图像的通道数。 |
矢量序列 | c——- - - - - -年代矩阵,c数列的特征数是和吗年代是序列长度。 |
二维图像序列 | h——- - - - - -w——- - - - - -c——- - - - - -年代数组,h,w, 和c对应于图像的高度,宽度和数量,并且年代是序列长度。 迷你批处理中的每个序列必须具有相同的序列长度。 |
3-D图像序列 | h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代数组,h,w,d, 和c对应于图像的高度,宽度,深度和数量的图像,以及年代是序列长度。 迷你批处理中的每个序列必须具有相同的序列长度。 |
特性 | c列向量,其中c是特征的数量。 |
对于表中返回的预测器,元素必须包含数字标量、数字行向量或包含数字数组的1 × 1单元格数组。
的trainNetwork
功能不支持具有多个序列输入图层的网络金宝app。
响应的格式取决于任务类型。
任务 | 回应的格式 |
---|---|
分类 | 绝对标量 |
回归 |
|
Sequence-to-sequence分类 | 1-by-年代类别标签的序列,其中年代是相应的预测器序列的序列长度。 |
序列到序列回归 | R——- - - - - -年代矩阵,R是响应的数量和年代是相应的预测器序列的序列长度。 |
对于表中返回的响应,元素必须是类别标量、数字标量、数字行向量或包含数字数组的1 × 1单元格数组。
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. 是输入数据的功能数量。 |
如果数组包含南
,然后通过网络传播。
序列
- - - - - -序列或时间序列数据序列或时间序列数据,指定为一个N-1个数字阵列的1个单元阵列,其中N是观察的数量,或表示单个序列的数字数组。
对于单元格数组或数字数组输入,包含序列的数字数组的维数取决于数据类型。
输入 | 描述 |
---|---|
向量序列 | c——- - - - - -年代矩阵,其中c是序列的特征数量和年代是序列长度。 |
二维图像序列 | h——- - - - - -w——- - - - - -c——- - - - - -年代数组,h,w, 和c对应于图像的高度,宽度和数量,以及年代是序列长度。 |
3-D图像序列 | h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代,在那里h,w,d, 和c对应于3-D图像的高度,宽度,深度和数量,以及年代是序列长度。 |
要使用数据存储指定序列,请使用ds
输入参数。
Y
- - - - - -回应响应,指定为标签的分类向量,数字阵列,分类序列的小区阵列或数字序列的小区阵列。格式Y
取决于任务的类型。答复不得包含南
s。
任务 | 格式 |
---|---|
图像或特征分类 | N标签的分类向量,其中N是观察人数。 |
Sequence-to-label分类 | |
Sequence-to-sequence分类 | N-by-1标签的分类序列单元格数组,其中N是观察人数。每个序列必须具有与相应预测序列相同的时间步长。 对于具有一个观察的序列到序列分类任务, |
任务 | 格式 |
---|---|
二维图像回归 |
|
3-D图像回归 |
|
Sequence-to-one回归 | N——- - - - - -R矩阵,N是序列的数量和R为响应的数量。 |
序列到序列回归 | N-by-1数字序列单元格数组,其中N为序列的个数。这些序列是矩阵R行,R为响应的数量。每个序列必须具有与相应预测序列相同的时间步长。 对于单次观测的序列到序列回归任务, |
特征回归 | N——- - - - - -R矩阵,N是观察人数和R为响应的数量。 |
将反应归一化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参见火车回归卷积神经网络.
TBL.
- - - - - -输入数据桌子
输入数据,指定为包含预测器和响应的表。表中的每一行都对应一个观察值。
表列中预测器和响应的安排取决于任务的类型。
分类
任务 | 预测因子 | 回应 |
---|---|---|
图像分类 |
预测器必须位于表的第一列中。 |
分类标签 |
Sequence-to-label分类 | 到包含序列或时间序列数据的MAT文件的绝对或相对文件路径。 垫文件必须包含由矩阵表示的时间序列,其中具有对应于与时间步长对应的数据点和列的行。 预测器必须位于表的第一列中。 |
分类标签 |
Sequence-to-sequence分类 | 垫文件的绝对或相对文件路径。MAT文件必须包含由分类向量表示的时间序列,其中每个时间步长对应于标签的条目。 |
|
功能分类 | 数字标量。 如果不指定 |
分类标签 |
对于具有图像或序列输入的分类网络,如果您未指定响应
,然后默认情况下,函数使用第一列TBL.
为预测器和第二列作为标签。对于具有特征输入的分类网络,如果不指定响应
参数,然后默认使用函数,使用第一个(numcolumns - 1
)的列TBL.
对于标签的预测器和最后一列,其中numfeatures.
是输入数据中特征的数量。
回归
任务 | 预测因子 | 回应 |
---|---|---|
图像回归 |
预测器必须位于表的第一列中。 |
|
Sequence-to-one回归 | 到包含序列或时间序列数据的MAT文件的绝对或相对文件路径。 垫文件必须包含由矩阵表示的时间序列,其中具有对应于与时间步长对应的数据点和列的行。 预测器必须位于表的第一列中。 |
|
序列到序列回归 | 垫文件的绝对或相对文件路径。垫文件必须包含由矩阵表示的时间序列,其中行对应于响应和列对应于时间步骤。 |
|
特征回归 | 在一个或多个列中作为标量指定的特性。 如果不指定 |
一个或多个标量值列 |
对于带有图像或序列输入的回归网络,如果您没有指定响应
,然后默认情况下,函数使用第一列TBL.
将预测器和后续列作为响应。对于具有特征输入的回归网络,如果不指定响应
参数,那么函数,默认情况下,使用第一个numfeatures.
预测器的列和响应的后续列,其中numfeatures.
是输入数据中特征的数量。
将反应归一化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参见火车回归卷积神经网络.
答复不能包含南
s。如果预测器数据包含南
S,然后他们通过训练传播。但是,在大多数情况下,培训未能收敛。
数据类型:桌子
响应
- - - - - -输入表中的响应变量的名称输入表中的响应变量的名称,指定为以下之一:
对于具有单一响应的分类或回归任务,响应
必须是包含输入表中的响应变量的字符向量或字符串标量。
对于具有多个响应的回归任务,响应
必须是包含输入表中的响应变量的字符向量或字符向量的字符串数组。
数据类型:字符
|细胞
|字符串
层
- - - - - -网络层层
大批|LayerGraph
对象网络图层,指定为a层
阵列或A.LayerGraph
目的。
要使用顺序连接的所有图层创建网络,可以使用a层
数组作为输入参数。在这种情况下,返回的网络是一个SeriesNetwork
目的。
有向无环图(DAG)网络具有复杂的结构,其中各层可以有多个输入和输出。要创建DAG网络,将网络架构指定为LayerGraph
对象,然后使用该层图作为输入参数trainNetwork
.
有关内置层的列表,请参见深度学习层列表.
选项
- - - - - -培训方案TrainingOptionsSGDM.
|TrainingOptionsRMSProp.
|TrainingOptionsADAM
培训选项,指定为TrainingOptionsSGDM.
,TrainingOptionsRMSProp.
, 或者TrainingOptionsADAM
对象返回的培训选项
函数。
网
——训练网络SeriesNetwork
对象|Dagnetwork.
对象训练有素的网络,作为一个返回SeriesNetwork
对象或A.Dagnetwork.
目的。
如果您使用a训练网络层
然后阵列网
是A.SeriesNetwork
目的。如果您使用a训练网络LayerGraph
对象,然后网
是A.Dagnetwork.
目的。
信息
- 培训信息培训信息,作为一个结构返回,其中每个字段是标量或数字矢量,每个训练迭代一个元素。
对于分类任务,信息
包含以下字段:
培训俱乐部
- 损耗函数值
TrainingAccuracy
- 训练精度
ValidationLoss
- 损耗函数值
ValidationAccuracy
——验证精度
基准
——学习利率
FinalDvalidationLoss.
- 最终验证损失
FinalValidationAccuracy
- 最终验证准确性
对于回归任务,信息
包含以下字段:
培训俱乐部
- 损耗函数值
TrainingRMSE
- 培训RMSE值
ValidationLoss
- 损耗函数值
ValidationRMSE
—验证RMSE值
基准
——学习利率
FinalDvalidationLoss.
- 最终验证损失
FinalValidationRmse.
-最终验证RMSE
该结构仅包含字段ValidationLoss
,ValidationAccuracy
,ValidationRMSE
,FinalDvalidationLoss.
,FinalValidationAccuracy
和FinalValidationRmse.
当选项
指定验证数据。的'验证职业'
选择培训选项
确定软件计算验证度量的迭代。最终的验证度量是标量。结构的其他字段是行向量,其中每个元素对应一个训练迭代。对于软件不计算验证度量的迭代,结构中相应的值是南
.
如果您的网络包含批量归一化层,则最终验证度量通常与培训期间评估的验证度量不同。这是因为最终网络中的批量归一化层比在训练期间执行不同的操作。有关更多信息,请参见BatchnormalizationLayer.
.
深度学习工具箱™使您可以在训练期间的每个纪元后将网络保存为。mat文件。当您拥有一个大型网络或大型数据集,并且训练需要很长时间时,这种定期保存特别有用。如果训练因某种原因中断,您可以从上次保存的检查点网络恢复训练。如果你想要trainNetwork
要保存检查点网络,那么您必须使用使用方法指定路径的名称'checkpoinspath'
名称 - 值对参数培训选项
.如果您指定的路径不存在,则培训选项
返回错误。
trainNetwork
自动为检查点网络文件分配唯一名称。在示例名称中,net_checkpoint__351__2018_04_12__18_09_52.mat
,351是迭代号码,2018年_04_12
是日期,和18_09_52
时间是几点trainNetwork
保存网络。您可以通过双击检查点网络文件或在命令行使用load命令来加载它。例如:
load net_checkpoint__351__2018_04_12__18_09_52.mat
trainNetwork
.例如:
Trainnetwork(XTrain,Ytrain,Net.Layers,选项)
深度学习培训,预测和深度学习工具箱中的验证的所有功能都使用单精度浮点算术执行计算。深度学习的功能包括trainNetwork
,预测
,分类
, 和激活
.当您使用CPU和GPU培训网络时,该软件使用单精度算术。
工藤,富山,新博。“使用通过区域的多维曲线分类”。模式识别的字母.卷。20,第11-13页,第11-13页,第1103-1111111111。
[2] Kudo,M.,J. Toyama和M. Shimbo。日本元音数据集.https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
要并行运行计算,请设置“ExecutionEnvironment”
选项'多gpu'
或者'平行线'
.
用培训选项
设置“ExecutionEnvironment”
和供应的选项
到trainNetwork
.如果不设置“ExecutionEnvironment”
,然后trainNetwork
如果可用,则在GPU上运行。
有关详细信息,请参见并行和在云中扩展深度学习.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。