开始使用Deep Network Designer

这个例子说明了如何微调预训练GoogLeNet网络图像的新的集合进行分类。这个过程被称为转移学习,通常比培养一个新的网络,因为你可以申请学特性,使用训练图像的数少的新任务,更快,更容易。要准备迁移学习交互的网络,使用深层网络设计者。

提取训练数据

在工作区中,解压缩数据。

解压('MerchData.zip');

选择预训练网络

打开深度网络设计器。

深度网络设计师

从Deep network Designer起始页选择一个预先训练好的GoogLeNet网络来加载它。如果需要下载网络,请单击安装在资源管理器上添加链接。

Deep Network Designer显示整个网络的放大视图。探索网络情节。要使用鼠标放大,请使用Ctrl键+滚轮。

加载数据集

要将数据加载到Deep Network Designer,请在数据选项卡,单击导入数据.将打开导入数据对话框。

在里面数据源列表,选择. 点击浏览并选择提取的MerchData文件夹。

该对话框还允许您从应用程序内分裂验证数据。将数据分成70%的训练数据,30%的验证数据。

指定要对训练图像执行的增强操作。对于本例,在x轴上应用随机反射、从范围[-90,90]度的随机旋转和从范围[1,2]的随机重缩放。

点击进口以将数据导入到深层网络设计者。

Deep Network Designer在训练期间调整图像大小以匹配网络输入大小。要查看网络输入大小,请在设计师窗格中,单击图像输入层. 此网络的输入大小为224 x 224。

为转移学习编辑网络

使用Deep Network Designer,您可以在数据窗格。你可以看到,在这个例子中,在数据集五类。

为了重新训练一个预先训练好的网络来对新的图像进行分类,用适应新数据集的新层替换最后的层。

在里面设计师窗格中,将一个新的完全连接层来自图层库在画布上。套输出大小对于新数据中的类数,在本例中,5个.

编辑学习速率以在新层中比在传输层中更快地学习。套加权平均系数比亚斯学习率因子到10。删除最后一个完全连接的层并连接新层。

更换输出层。滚动到年底图层库并拖动一个新的分类层在画布上。删除原件输出层和连接新层代替。

检查网络

为了确保您编辑的网络是准备训练,点击分析,并确保深学习网络分析报告零次失误。

列车网络

要使用默认设置训练网络,请在培训选项卡,单击火车.

如果您想更好地控制培训,请单击培训选项然后选择要训练的设置。默认的训练选项更适合于大型数据集。对于小数据集,使用较小的值MiniBatchSize验证频率.有关选择培训选项的详细信息,请参阅trainingOptions.

在本例中,setInitialLearnRate0.0001,验证频率5个MaxEpochs8个。由于有55层的意见,集MiniBatchSize以11均匀地分割训练数据和保证整个数据集的每个历元期间使用。

要使用指定的培训选项培训网络,请单击关闭然后点击火车.

Deep Network Designer允许您可视化和监视培训进度。如果需要,您可以编辑培训选项并重新培训网络。

输出培训结果

要导出培训结果,请在培训选项卡,选择导出>导出训练的网络和结果. Deep Network Designer将经过训练的网络导出为变量trainedNetwork_1以训练信息为变量trainInfoStruct_1.

您还可以生成MATLAB代码,该代码将重新创建网络和使用的训练选项。上培训选项卡,选择导出>生成训练代码.

测试训练后的网络

选择一个新的图像利用训练好的网络进行分类。

I=读("merchdata测试.jpg");

调整测试图像以匹配网络的输入大小。

I = imresize(I,[224 224]);

利用训练好的网络对测试图像进行分类。

[YPred,probs]=分类(trainedNetwork_1,I);imshow(I)label=YPred;title(string(label)+“”+ num2str(100 *最大(probs),3)+"%");

有关更多信息,包括有关其他预训练网络的信息,请参见深层网络设计师.

另见

相关话题