为深度学习训练神经网络
对于分类和回归任务,可以使用列车网络
为了训练用于图像数据的卷积神经网络(ConvNet,CNN),用于序列数据的递归神经网络(RNN),如长短时记忆(LSTM)或选通递归单元(GRU)网络,或用于数字特征数据的多层感知器(MLP)网络。您可以在CPU或GPU上进行训练。对于图像分类和图像回归,您可以使用多个GPU或并行进行训练。使用GPU、多GPU和并行选项需要并行计算工具箱™.要使用GPU进行深度学习,您还必须拥有CUDA®启用NVIDIA®具有3.0或更高计算能力的GPU。要指定培训选项,包括执行环境的选项,请使用培训选项
作用
将数据作为图像数据存储
对象。
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
存入两个新的数据存储,imdsTrain
和IMD测试
.
定义卷积神经网络结构。
层=[...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
ds
—数据存储用于内存不足数据和预处理的数据存储。
下表列出了直接兼容的数据存储列车网络
.可以使用其他内置数据存储来训练深度学习网络使改变
和结合
函数。这些函数可以将从数据存储读取的数据转换为列车网络
。对于具有多个输入的网络,数据存储必须是组合或转换的数据存储,或自定义小批量数据存储。有关详细信息,请参阅用于深度学习的数据存储.
数据存储类型 | 描述 |
---|---|
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]} |
||
多输入层 | 单元阵列( 第一 输入的顺序由 |
数据=读取(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,W和C分别是图像的高度、宽度和通道数。 |
三维图像 | H-借-W-借-D-借-C数字数组,H,W,D和C分别为图像的高度、宽度、深度和通道数量。 |
向量序列 | C-借-s矩阵,在哪里C是序列的特征数,并且s为序列长度。 |
二维图像序列 | H-借-W-借-C-借-s数组,在哪里H,W和C分别对应图像的高度、宽度和通道数量,和s为序列长度。 小批量中的每个序列必须具有相同的序列长度。 |
三维图像序列 | H-借-W-借-D-借-C-借-s数组,在哪里H,W,D和C分别对应图像的高度、宽度、深度和通道数量,和s为序列长度。 小批量中的每个序列必须具有相同的序列长度。 |
特征 | C-by-1列向量,其中C是功能的数量。 |
对于表中返回的预测器,元素必须包含数值标量、数值行向量或包含数值数组的1乘1单元格数组。
这个列车网络
函数不支持具有多个序列输入层的网络。万博1manbetx
响应的格式取决于任务的类型。
任务 | 格式的响应 |
---|---|
分类 | 范畴标量 |
回归 |
|
序列间分类 | 1 -s分类标签序列,其中s为相应预测序列的序列长度。 |
序列间回归 | R-借-s矩阵,在哪里R是多少回应和s为相应预测序列的序列长度。 |
对于表中返回的响应,元素必须是分类标量、数字标量、数字行向量或包含数字数组的1×1单元格数组。
X
—图像或特征数据图像或要素数据,指定为数字数组。数组的大小取决于输入的类型:
输入 | 描述 |
---|---|
二维图像 | A.H-借-W-借-C-借-N数字数组,H,W和C分别是图像的高度、宽度和通道数,以及N是图像的数量。 |
三维图像 | A.H-借-W-借-D-借-C-借-N数字数组,H,W,D和C图像的高度、宽度、深度和通道数量分别是和吗N是图像的数量。 |
特征 | A.N-借-numFeatures 数字数组,N观察的次数是多少numFeatures 为输入数据的特征个数。 |
如果数组包含楠
s、 然后它们通过网络传播。
序列
—序列或时间序列数据序列或时间序列数据,指定为N-数字数组的by-1单元格数组,其中N是观察数,或表示单个序列的数字数组。
对于单元格数组或数字数组输入,包含序列的数字数组的尺寸取决于数据类型。
输入 | 描述 |
---|---|
向量序列 | C-借-s矩阵,在哪里C是序列的特征数,以及s为序列长度。 |
二维图像序列 | H-借-W-借-C-借-s数组,在哪里H,W和C分别对应图像的高度、宽度和通道数量,和s为序列长度。 |
三维图像序列 | H-借-W-借-D-借-C-借-s哪里H,W,D和C分别对应于三维图像的高度、宽度、深度和通道数,以及s为序列长度。 |
要使用数据存储指定序列,请使用ds
输入参数。
Y
—响应响应,指定为标签的类别向量、数字数组、类别序列的单元格数组或数字序列的单元格数组。的格式Y
取决于任务的类型。响应不能包含楠
年代。
任务 | 格式 |
---|---|
图像或特征分类 | N-标签的by-1分类向量,其中N是观察数。 |
序列到标签分类 | |
序列间分类 | N-标签分类序列的by-1单元格数组,其中N是观察数。每个序列必须具有与相应预测序列相同的时间步数。 对于具有一次观察的序列到序列分类任务, |
任务 | 格式 |
---|---|
二维图像回归 |
|
三维图像回归 |
|
序列对一回归 | N-借-R矩阵,在哪里N是序列数和R是响应的数量。 |
序列间回归 | N-数字序列的by-1单元格数组,其中N是序列的数量。序列是具有R行,在哪里R是响应数。每个序列必须具有与相应预测序列相同的时间步数。 对于具有一个观察值的序列到序列回归任务, |
功能回归 | N-借-R矩阵,在哪里N观察的次数是多少R是响应的数量。 |
对响应进行规范化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参阅训练卷积神经网络用于回归.
tbl
—输入数据桌子
输入数据,指定为包含预测值和响应的表格。表格中的每一行对应一个观察值。
表列中预测值和响应的排列取决于任务的类型。
分类
任务 | 预测因子 | 响应 |
---|---|---|
图像分类 |
预测器必须位于表的第一列。 |
分类标签 |
序列到标签分类 | 包含序列或时间序列数据的MAT文件的绝对或相对文件路径。 MAT文件必须包含一个由矩阵表示的时间序列,其中行对应数据点,列对应时间步长。 预测器必须位于表的第一列。 |
分类标签 |
序列间分类 | MAT文件的绝对或相对文件路径。MAT文件必须包含一个由分类向量表示的时间序列,每个时间步骤都有对应标签的条目。 |
|
特征分类 | 数字标量。 如果未指定 |
分类标签 |
对于具有图像或序列输入的分类网络,如果没有指定responseNames
,则该函数在默认情况下使用的第一列tbl
用于预测器,第二列作为标签。对于具有特征输入的分类网络,如果未指定responseNames
参数,则默认情况下,函数使用第一个(numColumns-1
)一栏tbl
对于预测器和标签的最后一列,其中numFeatures
是输入数据中要素的数量。
回归
任务 | 预测因子 | 响应 |
---|---|---|
图像回归 |
预测器必须位于表的第一列。 |
|
序列对一回归 | 包含序列或时间序列数据的MAT文件的绝对或相对文件路径。 MAT文件必须包含一个由矩阵表示的时间序列,其中行对应数据点,列对应时间步长。 预测器必须位于表的第一列。 |
|
序列间回归 | MAT文件的绝对或相对文件路径。MAT文件必须包含一个由矩阵表示的时间序列,其中行对应响应,列对应时间步长。 |
|
功能回归 | 在一列或多列中指定为标量的要素。 如果未指定 |
标量值的一列或多列 |
对于具有图像或序列输入的回归网络,如果未指定responseNames
,则该函数在默认情况下使用的第一列tbl
对于预测值和后续列作为响应。对于具有特征输入的回归网络,如果未指定responseNames
参数,则函数默认使用第一个参数numFeatures
预测值列和响应的后续列,其中numFeatures
是输入数据中要素的数量。
对响应进行规范化通常有助于稳定和加速神经网络的回归训练。有关更多信息,请参阅训练卷积神经网络用于回归.
响应不能包含楠
s、 如果预测数据包含楠
,然后通过培训进行传播。然而,在大多数情况下,训练不能收敛。
数据类型:桌子
responseNames
—输入表中响应变量的名称输入表中响应变量的名称,指定为以下之一:
对于具有单个响应的分类或回归任务,responseNames
必须是输入表中包含响应变量的字符向量或字符串标量。
对于具有多个响应的回归任务,responseNames
必须是输入表中包含响应变量的字符向量的字符串数组或单元格数组。
数据类型:烧焦
|细胞
|一串
选择权
—培训方案TrainingOptionsSGDM
|培训选项RMSPROP
|培训选项ADAM
培训选项,指定为TrainingOptionsSGDM
,培训选项RMSPROP
,或培训选项ADAM
对象返回的培训选项
作用
净
-训练有素的网络系列网络
反对|DAGNetwork
对象训练有素的网络,作为系列网络
对象或一个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选项)
[1] 使用通过区域的多维曲线分类模式识别字母第20卷,第11-13号,第1103-1111页。
工藤,富山,新博。日语元音数据集. https://archive.ics.uci.edu/ml/datasets/Japanese+元音
要并行运行计算,请设置“执行环境”
选择“多gpu”
或“平行”
.
使用培训选项
设定“执行环境”
并提供选择权
来列车网络
.如果您不设置“执行环境”
然后列车网络
如果可用,可以在GPU上运行。
有关详细信息,请参阅在云中并行扩展深度学习.
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。