主要内容

实验管理器

设计和运行实验以培训和比较深入学习网络

描述

实验管理器App允许您创建一个深度学习实验,在各种初始条件下训练网络,并比较结果。例如,您可以使用深度学习实验:

  • 扫描一系列超参数值或使用贝叶斯优化来找到最优的训练选项。贝叶斯优化需要统计和机器学习工具箱™。

  • 比较使用不同数据集的结果培训网络。

  • 通过在多个网络上重用同一组训练数据来测试不同的深度网络架构。

实验经理提供可视化工具,如培训图和混淆矩阵,过滤器以改进实验结果,以及定义定制度量来评估您的结果的能力。为了提高再现性,每次运行实验时,实验经理都会存储实验定义的副本。您可以访问过去的实验定义,以跟踪产生每个结果的HyperParameter组合。

实验经理组织您的实验和结果在一个项目

  • 您可以在同一项目中存储多个实验。

  • 每个实验都包含一组结果每次你做实验的时候。

  • 每个结果集由一个或多个结果组成审判对应于超参数的不同组合。

默认情况下,实验管理器每次运行一个试验。如果您有Parallel Computing Toolbox™,您可以将您的实验配置为同时运行多个试验。并行运行一个实验可以让你使用MATLAB®训练正在进行中。

实验浏览器窗格显示项目中实验和结果的层次结构。例如,这个项目有两个实验,每个实验都有几组结果。要打开一个实验的配置并查看其结果,双击一个实验或一组结果的名称。

实验浏览器显示两个实验。实验1有四个结果。实验2有两个结果。

打开实验管理器应用程序

  • MATLAB TOOLSTRIP:在应用程序标签,下面机器学习和深度学习,点击应用程序图标。

  • MATLAB命令提示符:输入实验管理员

例子

展开全部

此示例显示如何通过扫描HyperParameters来使用默认实验设置功能培训图像分类网络。有关使用实验管理器求解图像分类问题的更多例子,请参阅创建一个深入学习的分类实验使用实验管理器并行训练网络.有关扫描超参数的替代策略的更多信息,请参见利用贝叶斯优化优化实验超参数

打开示例以加载一个项目,其中包含一个您可以检查和运行的预先配置的实验。要开实验,在中实验浏览器窗格中,双击实验的名称(Experiment1).

或者,您可以通过以下步骤自行配置实验。

1.开放实验经理。

2.点击>项目并选择新项目的位置和名称。实验经理在项目中开启了一个新的实验。这实验窗格显示定义实验的描述,超参数,设置功能和度量标准。

3.在描述框中,输入实验描述:

数字分类,使用不同的初始学习速率。

4.下面Hyperparameters,更换值myInitialLearnRate0.0025:0.0025:0.015.验证策略被设置为详尽的扫描

5.设置函数, 点击编辑.安装函数在MATLAB编辑器中打开。Setup功能指定实验的培训数据,网络架构和培训选项。默认情况下,设置函数的模板有三个部分。

  • 加载图像数据定义包含实验的培训和验证数据的图像数据存储。该实验使用数字数据集,该数字集由0到9的数字为10,000个28-×28像素灰度图像,由它们所代表的数字分类。有关此数据集的更多信息,请参见图像数据集

  • 定义网络架构为深度学习分类定义简单的卷积神经网络的架构。

  • 指定培训选项定义了一个trainingOptions实验对象。默认情况下,模板加载训练选项的值“InitialLearnRate”来自myInitialLearnRate超参数表中的条目。

当您运行实验时,实验管理器训练由设置函数定义的网络六次。每个试验使用超参数表中指定的学习速率之一。默认情况下,实验管理器每次运行一个试验。如果您有并行计算工具箱,您可以同时运行多个试验。为了获得最佳结果,在运行实验之前,请启动一个具有与gpu相同数量的worker的并行池。有关更多信息,请参阅使用实验管理器并行训练网络

  • 在实验管理器工具系列中运行一项实验的试验,请单击运行

  • 要同时运行多次试验,请单击使用并行然后运行.如果没有当前并行池,则实验管理器使用默认群集配置文件启动一个。实验经理然后执行多个同时试验,具体取决于可用的并行工作人员的数量。

结果表显示了每次试验的准确性和损失。

当实验运行时,点击培训策划显示训练图并跟踪每次试验的进度。您还可以在MATLAB命令窗口中监视训练进度。

点击混淆矩阵显示每个完成试验验证数据的混淆矩阵。

实验完成后,可以按列对表排序,也可以使用过滤器窗格。有关更多信息,请参阅排序和过滤实验结果

为了测试单个试验的性能,导出训练后的网络或试验的训练信息。在实验管理器ToolStrip,选择出口>训练有素的网络出口>培训信息, 分别。有关更多信息,请参阅信息

要结束实验,在实验浏览器窗格,右键单击项目的名称并选择关闭项目.实验经理关闭项目中包含的所有实验和结果。

这个例子展示了如何配置一个实验来训练一个图像回归网络扫描超参数。有关使用实验管理器解决回归问题的另一个示例,请参见为回归创建深度学习实验

打开示例以加载一个项目,其中包含一个您可以检查和运行的预先配置的实验。要开实验,在中实验浏览器窗格中,双击实验的名称(Experiment1).

或者,您可以通过以下步骤自行配置实验。

1.开放实验经理。

2.点击>项目并选择新项目的位置和名称。实验经理在项目中开启了一个新的实验。这实验窗格显示定义实验的描述,超参数,设置功能和度量标准。

3.在描述框中,输入实验描述:

回归预测数字的旋转角度,使用各种初始学习速率。

4.下面Hyperparameters,更换值myInitialLearnRate0.001:0.001:0.006.验证策略被设置为详尽的扫描

5.设置函数, 点击编辑.安装函数在MATLAB编辑器中打开。

  • 修改setup函数签名以返回4个输出。这些输出用于调用trainNetwork函数训练一个网络的图像回归问题。

函数[XTrain、YTrain层,选项]= Experiment1_setup1 (params)
  • 修改加载图像数据设置函数的一部分,以将实验的训练和验证数据定义为4-D阵列。在这个实验中,训练和验证数据分别由来自Digits数据集的5000幅图像组成。每个图像显示一个从0到9的数字,以一定的角度旋转。回归值对应于旋转角度。有关此数据集的更多信息,请参见图像数据集.请确保删除setup函数这一部分中的所有现有代码。

[XTrain ~, YTrain] = digitTrain4DArrayData;[XValidation ~, YValidation] = digitTest4DArrayData;
  • 修改定义网络架构设置函数的一部分,定义一个用于回归的卷积神经网络。请确保删除setup函数这一部分中的所有现有代码。

图层= [imageInputlayer([28 28 1])卷积2dlayer(3,8,'填充'“相同”)BatchnormalizationLayer Rublayer普通泡泡液(2,'走吧'2) convolution2dLayer(16日'填充'“相同”)BatchnormalizationLayer Rublayer普通泡泡液(2,'走吧',2)卷积2dlayer(3,32,'填充'“相同”) batchNormalizationLayer relullayer卷积2dlayer (3,32,'填充'“相同”) batchNormalizationLayer reluLayer dropoutLayer(0.2) fullconnectedlayer (1) regressionLayer];
  • 修改指定培训选项设置功能的部分,用于使用4-D阵列中的验证数据XValidation.YValidation.Setup功能的这一部分加载培训选项的值“InitialLearnRate”来自myInitialLearnRate超参数表中的条目。

选择= trainingOptions ('sgdm'...“MaxEpochs”5,...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“InitialLearnRate”, params.myInitialLearnRate);

当您运行实验时,实验管理器训练由设置函数定义的网络六次。每个试验使用超参数表中指定的学习速率之一。每个试验使用超参数表中指定的学习速率之一。默认情况下,实验管理器每次运行一个试验。如果您有并行计算工具箱,您可以同时运行多个试验。为了获得最佳结果,在运行实验之前,请启动一个具有与gpu相同数量的worker的并行池。有关更多信息,请参阅使用实验管理器并行训练网络

  • 在实验管理器工具系列中运行一项实验的试验,请单击运行

  • 要同时运行多次试验,请单击使用并行然后运行.如果没有当前并行池,则实验管理器使用默认群集配置文件启动一个。实验经理然后执行多个同时试验,具体取决于可用的并行工作人员的数量。

结果表显示了每个试验的均方根误差(RMSE)和损失。

当实验运行时,点击培训策划显示训练图并跟踪每次试验的进度。您还可以在MATLAB命令窗口中监视训练进度。

实验完成后,可以按列对表排序,也可以使用过滤器窗格。有关更多信息,请参阅排序和过滤实验结果

为了测试单个试验的性能,导出训练后的网络或试验的训练信息。在实验管理器选项卡上,选择出口>训练有素的网络出口>培训信息, 分别。有关更多信息,请参阅信息

要结束实验,在实验浏览器窗格,右键单击项目的名称并选择关闭项目.实验经理关闭项目中包含的所有实验和结果。

这个例子展示了如何使用实验管理器应用程序设置一个实验。

实验定义由描述、超参数表、设置函数和(可选的)度量函数集合组成,用于评估实验的结果。

描述框,输入实验的描述。

Hyperparameters,选择用于实验的策略。

  • 要扫描超参数值的范围,请设置策略详尽的扫描.在超参数表中,指定实验中使用的超参数值。可以将超参数值指定为具有数字、逻辑或字符串值的标量或向量。例如,这些是有效的超参数规范:

    • 0.01

    • 0.01:0.01:0.05

    • [0.01 0.02 0.04 0.08]

    • [“SGDM”“RMSPROP”“ADAM”]

    运行实验时,实验经理使用表中指定的Hyper参数值的每个组合来列车。

  • 要使用贝叶斯优化来找到最优的训练选项,请设置策略贝叶斯优化.在超参数表中,指定实验中使用的超参数的这些属性:

    • 范围- 输入一个双元素向量,它给出了真实或整数的veridParameter的下限和上限,或列出了分类超参数的可能值的字符串阵列或单元数组。

    • 类型——选择真正的(真实价值的HyperParameter),整数(整数估值的HyperParameter),或分类(分类超参数)。

    • 变换——选择没有任何(没有变换)或日志(对数变换)。为日志,封面必须是真正的整数和积极的。在对数刻度上搜索和建模QuandExameter。

    运行实验时,实验经理搜索HyperParameters的最佳组合。实验中的每次试验都会根据先前试验的结果使用Hyper参数值的新组合。指定实验的持续时间贝叶斯优化选项,输入最长时间(以秒为单位)和要运行的最大试验数。贝叶斯优化需要统计和机器学习工具箱。有关更多信息,请参阅利用贝叶斯优化优化实验超参数

设置函数配置实验的训练数据、网络架构和训练选项。setup函数的输入是a结构体使用超参数表中的字段。设置函数的输出必须与输入的输入匹配trainNetwork功能。此表列出了设置功能的支持的签名。万博1manbetx

实验目标 设置功能签名
使用图像数据存储训练用于图像分类问题的网络IMDS.用于存储输入的图像数据。
函数(imd、层、期权)= Experiment_setup (params)...结尾
训练使用数据存储的网络DS.
函数[DS,图层,选项] =实验_setup(params)...结尾
使用数字阵列列出图像分类和回归问题的网络X来存储预测变量和y用于存储分类标签或数字响应。
函数[X, Y,层,选项]= Experiment_setup (params)...结尾
训练一个用于序列分类和回归问题的网络序列存储序列或时间序列预测器和y来存储响应。
函数[序列,Y,图层,选择]= Experiment_setup (params)...结尾
使用表培训用于分类和回归问题的网络资源描述存储数值数据或数据的文件路径。
函数[tbl,图层,选项] =实验_setup(params)...结尾
使用培训网络进行分类和回归问题responseNames指定响应变量资源描述
函数(台、responseNames层,选择]= Experiment_setup (params)...结尾

笔记

当你设置训练选项时,实验管理器不支持并行执行万博1manbetx'executionenvironment''多gpu'“平行”或启用培训选项“DispatchInBackground”.有关更多信息,请参阅使用实验管理器并行训练网络

指标部分指定评估实验结果的功能。对度量函数的输入是一个结构体有三个领域:

度量标准函数的输出必须是标量编号,逻辑值或字符串。

如果您的实验使用贝叶斯优化,请选择从中优化的度量优化列表。在方向列表,指定您想要的最大化最小化这个度量标准。实验经理使用此度量标准来确定高参数的最佳组合为您的实验。您可以从表中选择标准培训或验证度量(例如准确性,RMSE或丢失)或自定义度量标准。

这个例子展示了如何比较运行一个实验的结果。

当您运行一个实验时,实验管理器多次训练由设置函数定义的网络。每次试验都使用不同的超参数组合。当实验结束时,一个表格显示了每个试验的训练和验证指标(如准确性、均方根误差和损失)。为了比较实验的结果,您可以使用训练和验证指标来对结果表排序和筛选试验。

要在结果表中对试验进行排序,请使用与训练或验证度量相对应的列的下拉菜单。

  1. 指向要按其排序的列的标题。

  2. 单击三角形图标。

  3. 选择按升序排序按降序排序

    结果表显示验证准确性列的下拉菜单。

要从结果表中过滤试用时,请使用过滤器窗格。

  1. 实验管理器ToolStrip,选择过滤器

    过滤器窗格显示结果表中的数字指标的直方图。从中删除直方图过滤器窗格,在结果表中,打开相应列的下拉菜单并清除显示过滤器复选框。

  2. 调整用于培训或验证度量的直方图下的滑块,以便您要过滤。

    验证损失的直方图,过滤器滑块设置为1.45和1.55。

    结果表仅显示了所选范围中具有度量值的试验。

    结果表仅显示验证损失在1.45和1.55之间的试验。

  3. 要恢复结果表中的所有试验,请关闭实验结果窗格并重新打开结果实验浏览器窗格。

这个例子展示了如何检查产生给定结果的实验配置。

经过实验后,您可以打开实验来源窗格查看实验描述和超参数表的只读副本,以及实验调用的设置和度量函数的链接。您可以使用此窗格中的信息来跟踪产生每个结果的数据、网络和培训选项的配置。

例如,假设您多次运行一个实验。每次运行实验时,您都会更改setup函数的内容,但总是使用相同的名称。第一次运行实验时,使用setup函数模板提供的默认分类网络。第二次运行实验时,修改setup函数以加载预先训练过的GoogLeNet网络,将最后一层替换为用于迁移学习的新层。有关使用这两种网络体系结构的示例,请参见创建一个深入学习的分类实验

在第一个实验结果窗格中,单击查看实验来源关联。实验经理打开一个实验来源窗格包含产生第一套结果的实验​​定义。单击窗格底部的链接以打开第一次运行实验的安装功能。您可以使用简单的分类网络复制此设置功能以重新运行实验。

第二个实验结果窗格中,单击查看实验来源关联。实验经理打开一个实验来源窗格,其中包含产生第二组结果的实验定义。单击窗格底部的链接,打开第二次运行实验时使用的设置功能。您可以复制这个设置函数来使用迁移学习重新运行实验。

实验管理器存储您使用的设置和自定义度量功能的副本,因此在修改和重新运行实验时,您不必手动重命名这些功能。

相关例子

尖端

要想在没有超参数的情况下可视化、构建和训练一个网络,请尝试深网络设计师应用程序。

介绍了R2020a