这个例子展示了如何使用度量函数来评估实验结果。默认情况下,当你进行深度学习实验时,实验管理器计算实验中每个试验的损失、精度(用于分类实验)和均方根误差(用于回归实验)。要计算其他度量,请创建自己的度量函数。例如,你可以定义度量函数:
测试培训网络的预测性能。
通过计算最终时期的验证损失的坡度来评估培训进度。
显示使用不同网络架构的实验中使用的网络的大小。
当每次试验完成培训后,实验经理评估度量函数并在结果表中显示它们的值。
在这个例子中,你训练一个网络来分类手写数字的图像。两个度量函数决定训练后的网络识别数字1和7图像的好坏。有关使用实验管理器训练图像分类网络的更多信息,请参见扫描超参数训练分类网络。
给一个实验添加一个度量函数。
1.在实验窗格,下面指标,点击加。
2.在增加指标对话框中,输入度量函数的名称并单击好吧。如果您输入项目中已存在的函数的名称,则实验管理器将其添加到实验中。否则,实验管理器创建由默认模板定义的函数。
3.选择度量函数的名称并单击编辑。度量函数在MATLAB®编辑器中打开。
度规函数的输入是a结构体
有三个领域:
trainedNetwork
是系列网络
对象或Dagnetwork.
对象返回的
功能。有关更多信息,请参阅trainNetwork
净
。
TrainingInfo.
是A.结构体
包含由此返回的培训信息trainNetwork
功能。有关更多信息,请参阅信息
。
参数
是A.结构体
使用超参数表中的字段。
自定义度量函数的输出必须是标量编号,逻辑值或字符串。
首先,打开这个例子。实验经理使用可以检查和运行的预配置实验加载项目。打开实验,在实验浏览器窗格,双击实验的名称(分类表现
)。
实验定义由描述,超级参数表,设置功能以及度量函数的集合组成,以评估实验结果。有关更多信息,请参阅配置深度学习实验。
该描述框中有实验的文字描述。对于本例,描述如下:
数字分类,使用度量函数评估结果:- OnesAsSevens返回错误分类为7s的1的百分比。- SevensAsOnes返回误分类为1的7s的百分比。
该普遍存在部分指定策略(彻底的扫描
)和用于实验的超参数值。当您运行实验时,实验管理器使用超参数表中指定的超参数值的每个组合训练网络。本例使用超参数InitialLearnRate
和动量
。
该设置功能为实验配置训练数据、网络架构和训练选项。要检查设置函数,请在设置功能,点击编辑。setup函数在MATLAB编辑器中打开。
在本例中,setup函数有三个部分。
加载图像数据定义包含培训和验证数据的图像数据存储。此示例从位数数据集中加载图像。有关此数据集的更多信息,请参阅图像数据集。
定义网络架构定义了用于深度学习分类的卷积神经网络的体系结构。本例使用setup函数模板提供的默认分类网络。
指定培训选项定义了一个
实验对象。该示例加载训练选项的值trainingOptions
“InitialLearnRate”
和“动量”
来自HyperParameter表。
该指标部分指定评估实验结果的可选功能。实验经理每次完成培训网络时都会评估这些功能。要检查度量标准功能,请选择度量标准功能的名称,然后单击编辑。MATLAB编辑器中打开的度量标准函数。
此示例包括两个度量函数。
Onesassevens.
返回标号的图像百分比,其中培训的网络将作为七十岁的网络错误分类。
七索
返回经过训练的网络误分类为数字7的图像的百分比。
这些函数中的每一个都使用训练有素的网络对整个数字数据集进行分类。然后,该函数确定实际标签和预测标签不同意的图像的数量。例如,功能Onesassevens.
计算具有实际标签的图像数量'1'
和一个预测的标签“7”
。
函数metricOutput = SevensAsOnes (trialInfo)
actualValue =“7”;predvalue ='1';
net = trialinfo.trountnetwork;
digitdatasetpath = fullfile(matlabroot,“工具箱”那“nnet”那......'nndemos'那“nndatasets”那“DigitDataset”);imd = imageDatastore (digitDatasetPath,......“IncludeSubfolders”,真正,......“LabelSource”那'foldernames');
YACTUAL = IMDS.LABELS;Ypred =分类(网络,IMDS);
K = sum(YActual == actualValue & YPred == predValue);N = sum(YActual == actualValue);
metricOutput = 100 * K / N;
结束
同样,功能七索
计算具有实际标签的图像数量“7”
和一个预测的标签'1'
。
运行实验时,实验经理培训由设置功能定义的网络六次。每次试用都使用不同的Hyper参数值组合。默认情况下,实验管理器一次运行一项试验。如果您有并行计算工具箱™,则可以同时运行多个试验。为了获得最佳结果,在运行实验之前,请启动一个并行池,与GPU一样多的工人。有关更多信息,请参阅使用实验管理器并行训练网络。
在实验管理器工具系列中运行一项实验的试验,请单击跑。
要同时运行多次试验,请单击使用并行然后跑。如果没有当前并行池,则实验管理器使用默认群集配置文件启动一个。实验经理然后执行多个同时试验,具体取决于可用的并行工作人员的数量。
结果表显示了每次试用的度量函数值。
为了找到实验的最佳结果,对结果表进行排序。例如,找出错误分类次数最少的试验。
指向Onesassevens.列。
点击三角形图标。
选择按升序排序。
同样,通过打开下拉菜单找到错误分类7最少的试验七索列和选择按升序排序。
如果没有单一试验同时最小化两个度量函数,请考虑优先考虑对每个度量求均匀的试验。例如,在这些结果中,试验6具有每个度量函数的第二个最小值。
在实验浏览器窗格,右键单击项目的名称并选择关闭项目。实验经理关闭项目中包含的所有实验和结果。
实验管理器|trainingOptions
|trainNetwork