主要内容

尝试多个预先训练的网络来进行迁移学习

这个例子展示了如何配置一个实验来替换不同的预先训练的网络层来进行迁移学习。为了比较不同预训练网络的性能,编辑这个实验并指定使用哪一个预训练网络。在进行实验之前,请使用googlenet从Add-On Explorer获取下载预先训练过的网络的链接。

迁移学习通常用于深度学习应用。你可以用一个预先训练好的网络作为学习新任务的起点。用迁移学习对网络进行微调通常比用随机初始化权值从头开始训练网络更快、更容易。您可以使用少量的训练图像快速地将学习到的特征转移到新的任务中。

在深度学习工具箱™中有许多预先训练过的网络可用。这些预先训练过的网络具有不同的特征,这些特征在选择网络应用于你的问题时很重要。最重要的特征是网络的准确性、速度和大小。选择一个网络通常是在这些特征之间的权衡。有关更多信息,请参见预先训练的深度神经网络

开放实验

首先,打开示例。实验管理器加载一个带有预配置实验的项目,您可以检查并运行该实验。打开实验,在实验的浏览器窗格中,双击实验的名称(TransferLearningExperiment).

内置的训练实验由描述、超参数表、设置函数和度量函数集合组成,用于评估实验的结果。有关更多信息,请参见配置内置训练实验

描述字段包含实验的文本描述。对于本例,描述是:

通过替换预先训练的网络中的层来进行迁移学习。

Hyperparameters部分指明策略(详尽的扫描)和用于实验的超参数值。当您运行实验时,experiment Manager使用超参数表中指定的每个超参数值组合来训练网络。在本例中,超参数NetworkName指定要培训的网络和培训选项的价值“miniBatchSize”

设置函数配置实验的训练数据、网络架构和训练选项。检查设置功能,在设置函数,点击编辑.设置函数在MATLAB®编辑器中打开。

在这个例子中,setup函数:

  • 下载并提取Flowers数据集,其大小约为218 MB。有关此数据集的更多信息,请参见图像数据集

  • 加载与超参数对应的预训练网络NetworkName.辅助函数findLayersToReplace决定了在网络架构中替代迁移学习的层次。有关可用的预训练网络的更多信息,请参见预先训练的深度神经网络

  • 定义了一个trainingOptions实验对象。该示例训练网络10个周期,初始学习率为0.0003,每5个周期对网络进行验证。

指标节指定对实验结果进行评估的可选函数。本示例不包括任何自定义度量函数。

运行实验

当您运行实验时,实验管理器对设置功能定义的网络进行六次训练。每次试验都使用不同的超参数值组合。默认情况下,实验管理器每次运行一个试验。如果您有并行计算工具箱™,您可以同时运行多个试验。为了获得最好的结果,在您运行您的实验之前,启动一个与gpu一样多的worker的并行池。有关更多信息,请参见使用实验管理器并行训练网络GPU支金宝app持情况(并行计算工具箱)

  • 要一次运行一次实验,请在实验管理器工具条上单击运行

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

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

当实验正在进行时,单击培训策划展示训练图,并跟踪每次试验的进度。

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

当实验结束时,您可以按列对结果表进行排序,使用过滤器窗格,或通过添加注释记录观察结果。有关更多信息,请参见对实验结果进行排序、过滤和注释

若要测试个别试用的性能,可将受训网络或受训信息导出供试用使用。在实验管理器将来发布,选择出口>训练网络出口>培训信息,分别。有关更多信息,请参见信息

关闭实验

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

另请参阅

应用程序

功能

相关的话题