主要内容

trainingProgressMonitor

监控和情节培训进展深度学习定制培训循环

自从R2022b

    描述

    使用一个TrainingProgressMonitor对象跟踪培训进展当使用一个定制的循环。

    您可以使用一个TrainingProgressMonitor对象:

    • 创建动画定义度量的阴谋和记录自定义指标在训练。

    • 显示和记录在训练的培训信息。

    • 停止训练。

    • 跟踪培训进展进度条。

    • 跟踪运行时间。

    这张图片显示了一个示例的培训在培训进度窗口。关于配置的更多信息培训进度窗口和一个例子,演示如何生成这个人物,看到的监控定制培训循环的进展

    创建

    描述

    例子

    监控= trainingProgressMonitor创建一个TrainingProgressMonitor对象,您可以使用它来跟踪培训进展和创造的情节。

    例子

    监控= trainingProgressMonitor (名称=值)设置指标,信息,可见,进步,状态,包含使用一个或多个属性名称参数。

    属性

    全部展开

    指标名称,指定为字符串标量,特征向量,特征向量的字符串数组,数组或单元。有效的名字以字母开头,并包含字母,数字和下划线。每个指标出现在自己的训练次要情节。绘制多个指标在一个次要情节,使用groupSubPlot函数。

    例子:[" TrainingLoss”、“ValidationLoss”);

    数据类型:字符|字符串|细胞

    信息名称、指定为一个字符串标量特征向量,特征向量的字符串数组,数组或单元。有效的名字以字母开头,并包含字母,数字和下划线。这些名字出现在培训进度窗口,但不表现为情节。

    例子:[" GradientDecayFactor”、“SquaredGradientDecayFactor”);

    数据类型:字符|字符串|细胞

    这个属性是只读的。

    请求停止训练,指定为一个数字或逻辑0()或1(真正的)。这个属性的值变化1当你点击停止培训进度窗口按钮。的停止如果你设置按钮只出现可见财产“上”1(真正的)。

    数据类型:逻辑

    可见性状态,指定为“上”“关闭”或数字或逻辑1(真正的)或0()。的值“上”相当于真正的,“关闭”相当于。因此,您可以使用这个属性的值作为一个逻辑值。存储的值是作为一个开/关逻辑值的类型matlab.lang.OnOffSwitchState

    • “上”——培训进度窗口显示。

    • “关闭”——隐藏的训练进度窗口没有删除它。你仍然可以访问一个看不见的对象的属性。

    例子:“关闭”

    培训进度百分比,指定为一个标量或dlarray对象的范围[0,100)

    例子:17;

    水平轴标签培训策划,指定为一个字符串标量或特征向量。

    例子:“迭代”;

    数据类型:字符|字符串|细胞

    训练状态,指定为一个字符串标量或特征向量。

    例子:“运行”;

    数据类型:字符|字符串|细胞

    这个属性是只读的。

    度量值,指定为一个结构。使用指标属性指定的字段名结构。每个字段包含一个两列矩阵。第一列包含自定义训练循环步骤的价值观和第二列包含度量值的记录recordMetrics函数。

    数据类型:结构体

    这个属性是只读的。

    信息值,指定为一个结构。使用信息属性指定的字段名结构。每个字段是一个列向量,其中包含更新的值updateInfo函数。

    数据类型:结构体

    对象的功能

    groupSubPlot 集团在培训指标的阴谋
    recordMetrics 定制培训记录度量值循环
    updateInfo 自定义训练循环更新信息值

    例子

    全部折叠

    使用一个TrainingProgressMonitor对象跟踪培训进度和生产定制培训循环的情节。

    创建一个TrainingProgressMonitor对象。监视器自动跟踪开始时间和运行时间。计时器开始当你创建对象。

    提示

    确保运行时间准确地反映了训练时间,确保你创建TrainingProgressMonitor对象接近定制培训循环的开始。

    监控= trainingProgressMonitor;

    在你开始训练之前,指定名称的信息和度量值。

    班长。信息= [“LearningRate”,“时代”,“迭代”];班长。指标= [“TrainingLoss”,“ValidationLoss”,“TrainingAccuracy”,“ValidationAccuracy”];

    指定培训水平轴标签。集团培训和确认损失同样的次要情节,和团队的培训和验证精度相同的情节。

    班长。包含=“迭代”;groupSubPlot(监控,“损失”,(“TrainingLoss”,“ValidationLoss”]);groupSubPlot(监控,“准确性”,(“TrainingAccuracy”,“ValidationAccuracy”]);

    在训练:

    • 评估停止财产在定制培训每一步的开始循环。当你点击停止在培训进度窗口按钮,停止属性改变1。培训如果你停止循环退出时停止属性是1

    • 更新值的信息。更新后的值出现在训练进度窗口。

    • 记录度量值。记录值出现在训练的阴谋。

    • 更新培训进度百分比基于迭代完成的部分。

    请注意

    下面的示例代码模板。您必须编辑这个训练循环来计算你的度量和信息价值观。对于一个完整的示例,您可以运行在MATLAB中,看到的在训练监控定制培训循环进展

    时代= 0;迭代= 0;班长。状态=“运行”;时代< maxEpochs & & ~班长。停止时代=时代+ 1;hasData(兆贝可)& & ~班长。停止iteration = iteration + 1;%添加代码来计算指标和信息值。% lossTrain =…updateInfo(监控,LearningRate = learnRate,时代(时代)+ =字符串“的”+字符串(maxEpochs),迭代字符串(迭代)+ =“的”+字符串(numIterations));recordMetrics(监控、迭代TrainingLoss = lossTrain,TrainingAccuracy = accuracyTrain,ValidationLoss = lossValidation,ValidationAccuracy = accuracyValidation);班长。进步= 100*iteration/numIterations;结束结束

    培训进度窗口显示动画情节的指标,和信息价值观,培训进度条和运行时间。

    培训进度窗口。第一个情节展示了培训和确认损失和第二个图显示了训练和验证的准确性。

    一个TrainingProgressMonitor对象具有相同的属性和对象作为函数experiments.Monitor对象。因此,您可以很容易地适应您的绘图代码中使用实验管理器设置脚本。

    如何监控培训取决于你在哪里。

    • 如果您正在使用自定义训练循环脚本时,您必须创建和管理TrainingProgressMonitor对象自己。

    • 如果您正在使用一个自定义训练实验,实验管理器创建一个experiments.Monitor为每个审判你的实验对象。默认情况下,实验管理器保存experiments.Monitor对象的变量监控

    实验管理器,你可以使用experiments.Monitor对象的地方TrainingProgressMonitor对象在定制培训循环代码。

    例如,假设你的训练脚本创建一个TrainingProgressMonitor对象跟踪和策划培训和确认损失。

    监控= trainingProgressMonitor (指标= [“TrainingLoss”,“ValidationLoss”),包含=“迭代”);groupSubPlot(监控,“损失”,(“TrainingLoss”,“ValidationLoss”]);迭代= 1;recordMetrics(监控、迭代TrainingLoss =损失,ValidationLoss = lossVal);

    这段代码用于适应实验管理器与一个experiments.Monitor对象:

    • 使用转换任何代码集属性名称=值语法使用点符号。

    • 删除电话trainingProgressMonitor。这是因为实验管理器为你创建一个监视器。

    在你使用了代码实验管理器设置功能。

    %在定制培训实验设置功能monitor.Metrics = [“TrainingLoss”,“ValidationLoss”];班长。包含=“迭代”;groupSubPlot(监控,“损失”,(“TrainingLoss”,“ValidationLoss”]);迭代= 1;recordMetrics(监控、迭代TrainingLoss =损失,ValidationLoss = lossVal);

    请注意

    实验管理器访问监控对象作为第二个训练函数的输入参数。你必须检查第二个输入参数匹配您的监视器对象的变量名。有关更多信息,请参见配置自定义训练实验

    提示

    • 值的信息出现在培训进度窗口和情节展示了一个度量值的记录。使用信息值文本和数值,您想要显示的培训窗口而不是阴谋。

    • 当你点击停止在培训进度窗口按钮,停止属性设置为1(真正的)。这将停止培训如果你循环退出时停止属性是1。例如,使早期停止,包括下面的代码在您的自定义训练循环。

      numEpochs < maxEpochs & & ~ monitor.Stop%的定制培训循环代码。结束

    • 每次运行时间更新你的呼唤recordMetricsupdateInfo,当你更新进步财产。

    版本历史

    介绍了R2022b