主要内容

使用深度网络设计器生成实验

这个例子展示了如何使用实验管理器来调优深度网络设计器训练的回归网络的超参数。

你可以使用深度网络设计器创建网络,导入数据并对网络进行训练。然后你可以使用实验管理器遍历一系列超参数值并找到最佳训练选项。

加载数据

将数字样本数据加载为图像数据存储。数字数据集由10,000个手写数字的合成灰度图像组成。每张图像都是28 × 28 × 1像素,并已旋转一定角度。你可以使用深度学习来训练回归模型来预测图像的角度。

加载数字图像及其相应的旋转角度。

[XTrain,~,anglesTrain] = digitTrain4DArrayData;[XValidation,~,anglesValidation] = digitTest4DArrayData;

要使用深度网络设计器训练回归网络,数据必须在数据存储中。将图像和角度转换为arrayDatastore对象。

adsXTrain = arrayDatastore(XTrain,IterationDimension=4);adsAnglesTrain = arrayDatastore(anglesTrain);

要将两个数据存储中的图像和角度都输入到深度学习网络中,请使用结合函数。类返回的数据横向连接,从而组合输入数据存储和目标数据存储函数。

cdsTrain = combine(adsXTrain,adsAnglesTrain);

在验证数据上重复数据处理步骤。

adsXValidation = arrayDatastore(XValidation,IterationDimension=4);adsAnglesValidation = arrayDatastore(anglesValidation);cdsValidation = combine(adsXValidation,adsAnglesValidation);

定义网络架构

定义网络架构。您可以通过在深度网络设计器中拖动层来交互式地构建此网络。或者,您也可以在命令行中创建这个网络,并将其导入到Deep network Designer中。

图层= [imageInputLayer([28 28 1])卷积2dlayer(3,8,填充=“相同”) batchNormalizationLayer reluLayer averagePooling2dLayer(2,Stride=2) convolution2dLayer(3,16,Padding=“相同”) batchNormalizationLayer reluLayer averagePooling2dLayer(2,Stride=2) convolution2dLayer(3,32,Padding=“相同”) batchNormalizationLayer relullayer卷积2dlayer(3,32,填充=“相同”) batchNormalizationLayer reluLayer dropoutLayer(0.2) fullyConnectedLayer(1) regressionLayer];deepNetworkDesigner(层)

导入数据

将数字数据导入深度网络设计器。选择数据选择并单击导入数据>导入数据存储.选择cdsTrain作为训练数据和cdsValidation作为验证数据。

通过单击导入数据进口

列车网络的

指定训练选项并训练网络。在培训选项卡上,单击培训方案.对于本例,将求解器设置为亚当并保持其他默认设置。单击,设置培训选项关闭

单击,使用导入的数据和指定的训练选项对网络进行训练火车.训练进度图显示了小批损失和均方根误差(RMSE)以及验证损失和误差。

生成实验

训练完成后,您可以生成一个实验来扫描一系列超参数值,以找到最佳的训练选项。

生成一个实验,在培训选项卡上,单击出口>创建实验

Deep Network Designer使用您的网络和导入的数据生成一个实验模板。然后打开应用程序实验管理器.在实验管理器中,您可以选择将新实验添加到新项目、现有项目或当前项目中。

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

Hyperparameters部分指定策略(详尽的扫描)和用于实验的超参数值。运行实验时,“实验管理器”将使用超参数表中指定的超参数值的每个组合来训练网络。默认情况下,深度网络设计器生成一个实验,以您过去训练的学习速率为中心,扫描一系列学习速率。

设置函数为实验配置训练数据、网络架构和训练选项。深度网络设计器自动配置设置功能,以使用您的网络和数据。setup函数的输入是一个结构体参数个数使用超参数表中的字段。要检查或编辑设置功能,请在设置函数,点击编辑

如果您的网络包含自定义层或训练选项包含相对检查点路径,深度网络设计器将在实验设置脚本中生成支持函数。在进行实验之前,您必须检查和编辑这些支持功能。

运行实验

在实验管理器中,点击运行实验运行.当您运行实验时,实验管理器将训练由设置函数定义的网络。每次试验使用超参数表中指定的一个学习率。

一个结果表显示了每个试验的RMSE和损失。当实验结束时,您可以根据RMSE或损失指标对试验进行排序,以查看哪个试验表现最好。在本例中,试验3的初始学习率为0.01,表现最好。

在实验运行时,显示训练图并跟踪每次试验的进度审查结果,点击培训策划

添加Hyperparameter

要添加另一个要扫描的超参数,必须将其添加到Hyperparameters表并更新设置函数。

类中添加另一个超参数Hyperparameters表。添加.对于本例,添加一个新的超参数mySolver用价值观["adam" "sgdm" "rmsprop"]

接下来,编辑setup函数以扫描新的超参数。要编辑设置函数,请单击设置函数,点击编辑.在培训方案节的活动脚本,更改的第一个参数trainingOptions函数“亚当”params.mySolver.点击保存并关闭设置函数。

点击运行更新后的实验运行.实验管理器尝试每种学习率和求解器超参数的组合。在本例中,试验5的初始学习率为0.001,采用SGDM求解器,表现最好。

另请参阅

|||

相关的话题

Baidu
map