主要内容

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

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

你可以用深度网络设计器创建网络、导入数据、训练网络。然后你可以使用实验管理器扫描超参数值范围并找到最佳训练选项。

加载数据

将数字示例数据加载为图像数据存储。数字数据集由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中。

layers = [imageInputLayer([28 28 1]) convolution2dLayer(3,8,Padding= .“相同”) batchNormalizationLayer reluLayer averagePooling2dLayer(2,Stride=2) convolution2dLayer(3,16,Padding= .“相同”) batchNormalizationLayer reluLayer averagePooling2dLayer(2,Stride=2) convolution2dLayer(3,32,Padding= .“相同”batchNormalizationLayer reluLayer convolution2dLayer(3,32,Padding= .“相同”) batchNormalizationLayer reluLayer dropoutLayer(0.2) fullconnectedlayer (1) regressionLayer];deepNetworkDesigner(层)

导入数据

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

通过单击导入数据进口

列车网络的

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

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

生成实验

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

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

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

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

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

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

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

运行实验

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

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

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

添加Hyperparameter

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

对象中添加另一个超参数Hyperparameters通过单击添加.对于本例,添加一个新的超参数称为mySolver有了这些值["adam" "sgdm" "rmsprop"]

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

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

另请参阅

|||

相关的话题