这个例子展示了如何使用深层网络设计师适应pretrained GoogLeNet网络分类新图片的集合。这个过程称为转移学习和通常比训练一个新的网络快得多,也更容易,因为你可以学到特性应用于一个新的任务使用较少的训练图像。准备一个传输网络学习交互,使用深度网络设计师。
在工作区中,解压缩数据。
解压缩(“MerchData.zip”);
打开深层网络设计师。
deepNetworkDesigner
加载一个pretrained GoogLeNet网络通过选择从深层网络设计师开始页面。如果你需要下载网络,然后单击安装打开插件浏览器。
深层网络设计师的缩放视图显示整个网络。探索网络图。放大用鼠标,使用Ctrl+滚轮。
将数据加载到深层网络设计师,在数据选项卡上,单击导入数据>导入图像数据。导入图像数据对话框打开。
在数据源列表中,选择文件夹。点击浏览并选择提取MerchData文件夹。
对话框还允许您将验证数据中的应用。将数据分为训练数据70%和30%的验证数据。
指定训练图像增强操作执行。对于这个示例,应用随机反射轴,一个随机的旋转范围(-90、90)度,和一个随机重新调节范围[1,2]。
点击进口将数据导入到深层网络设计师。
使用深度网络设计师,可以直观地检查的培训和验证数据的分布数据选项卡。你可以看到,在这个例子中,有五类数据集。您还可以查看随机观察每个类。
深层网络设计师调整图像的大小在训练输入匹配网络的大小。查看网络输入的大小设计师选项卡上,单击imageInputLayer
。这个网络有一个输入的大小224 - 224。
再教育pretrained网络分类的新图像,取代过去可学的一层一层和最后的分类与新层适应新的数据集。在GoogLeNet,这些层的名字“loss3-classifier”
和“输出”
,分别。
在设计师选项卡,拖一个新的fullyConnectedLayer
从层的图书馆到画布上。集OutputSize
在新数据类的数量,在这个例子中,5
。
编辑学习速度更快地学习新层的传输层。集WeightLearnRateFactor
和BiasLearnRateFactor
来10
。删除最后一个完全连接层和连接你的新层。
替换输出层。滚动到结束的层的图书馆并拖动一个新的classificationLayer
到画布上。删除原来的输出
层和连接你的新层。
检查你的网络点击分析。网络已经准备好培训如果深度学习网络分析仪报告零错误。
培训网络使用默认设置,在培训选项卡上,单击火车。
如果你想要更大的控制训练,点击培训方案并选择设置训练。默认训练选项更适合大型数据集。对于较小的数据集,使用较小的值mini-batch大小和验证的频率。选择培训选项的更多信息,请参阅trainingOptions
。
对于这个示例,集InitialLearnRate来0.0001
,ValidationFrequency来5
,MaxEpochs来8
。有55的观察,集MiniBatchSize来11
把训练数据均匀,确保整个训练集用于在每个时代。
训练的网络培训指定选项,点击关闭然后点击火车。
深层网络设计师允许您可视化和监控培训的进展。然后您可以编辑培训选项和培训网络,如果需要的话。
出口培训的结果,培训选项卡上,选择出口>出口网络和训练的结果。深层网络设计师出口训练网络的变量trainedNetwork_1
和培训信息的变量trainInfoStruct_1
。
你也可以生成MATLAB代码,再现了网络和使用培训选项。在培训选项卡上,选择出口>生成代码的训练。
选择一个新的图像分类使用训练网络。
我= imread (“MerchDataTest.jpg”);
调整测试图像匹配网络输入的大小。
I = imresize(我,(224 224));
分类测试图像使用训练网络。
(YPred,聚合氯化铝)= (trainedNetwork_1, I)进行分类;imshow (I)标签= YPred;标题(string(标签)+”、“+ num2str(100 *马克斯(聚合氯化铝),3)+“%”);
欲了解更多信息,包括其他pretrained网络上看到深层网络设计师。