深度网络设计器

设计、可视化和培训深度学习网络

描述

Deep Network Designer应用程序允许您构建、可视化、编辑和培训深度学习网络。使用此应用程序,您可以:

  • 加载预先训练的网络并编辑它们以进行迁移学习。

  • 导入和编辑网络并构建新网络。

  • 拖放以添加新图层和创建新连接。

  • 查看和编辑图层特性。

  • 分析网络以确保正确定义网络架构,并在培训前检测问题。

  • 导入分类问题的图像数据,然后选择增强选项。

  • 为图像分类任务训练网络。

  • 使用准确度、损失和验证指标图监控培训。

  • 生成MATLAB®建立和培训网络的规范。

完成网络设计后,可以将其导出到工作区,在那里可以保存或训练网络。对于图像分类问题,还可以使用Deep network Designer训练网络。可以将经过训练的网络和结果导出到工作区。

打开Deep Network Designer应用程序

  • MATLAB工具条:在应用程序选项卡,在下面机器学习与深度学习,单击应用程序图标。

  • MATLAB命令提示:输入deepNetworkDesigner.

例子

全部展开

在Deep network Designer应用程序中检查一个简单的预训练网络。

打开应用程序并选择预训练网络。您也可以通过选择设计师选项卡并单击刚出现的. 如果需要下载网络,请单击安装获取附加资源管理器的链接。

提示

若要开始,请尝试选择一个速度更快的网络,如SqueezeNet或GoogLeNet。一旦您感觉到哪些设置工作良好,请尝试更精确的网络,如Inception-v3或ResNet,看看这是否会改善您的效果。有关选择预训练网络的更多信息,请参阅预训练深度神经网络.

设计师窗格中,可视化并浏览网络。有关可用网络的列表以及如何比较这些网络,请参阅预训练深度神经网络.

有关使用Deep Network Designer构建网络的信息,请参阅使用Deep Network Designer构建网络.

将图像数据导入Deep Network Designer进行培训。

要将数据导入应用程序,请在数据选项卡,单击导入数据.

可以从包含每个类的图像子文件夹的文件夹中导入数据,也可以从图像数据存储在工作区中。

Deep Network Designer提供了一系列图像增强选项。您可以通过对数据应用随机增强来有效增加训练数据量。如果您选择增强数据,Deep Network Designer会随机扰动每个历元的训练数据。然后,每个历元使用稍有不同的数据集。

Deep Network Designer提供以下增强选项:

  • x轴上的随机反射

  • y轴上的随机反射

  • 随机旋转

  • 随机重缩放

  • 随机水平平移

  • 随机垂直平移

笔记

由于某些扩充不适用于特定的数据集,默认情况下,Deep Network Designer不会扩充数据。有关详细信息,请参阅用随机几何变换增强训练图像.

通过选择文件夹或导入图像数据存储从工作区。您还可以选择从培训数据中拆分验证数据。验证数据可以帮助您监控性能并防止过度装配。

选择培训数据的位置、指定验证数据并设置任何增强选项后,单击进口以导入数据集。

通过在Deep network Designer应用程序中编辑网络,为迁移学习做好准备。

迁移学习是利用预先训练好的深度学习网络并对其进行微调以学习新任务的过程。您可以使用较少数量的训练图像将学习到的功能快速传输到新任务。因此,转移学习通常比从头开始训练网络更快、更容易。要使用预训练网络进行迁移学习,必须更改课程数量以匹配新数据集。

打开深层网络设计器。

deepNetworkDesigner

从Deep network Designer的起始页中选择预训练网络,加载预训练网络。试着选择挤压网从预先训练的网络列表中。点击打开加载网络。

要为迁移学习准备网络,请替换最后一个可学习层和最终分类层。

  • 如果最后一个可学习层是二维卷积层(例如说服'挤压网中的层):

    • 拖动一个新的卷积层在画布上。设定微粒过滤器属性设置为新的类数和过滤1,1.

    • 删除最后一个卷积层然后连接你的新图层。

  • 如果最后一个可学习层是完全连接的层(大多数预训练网络,例如GoogLeNet):

    • 拖动一个新的完全连接层在画布上,设置输出大小属性设置为新的类数。

    • 删除最后一个完全连接层然后连接你的新图层。

接下来,删除分类输出层。然后,拖动一个新的分类层输出层的默认设置意味着它将在训练期间学习课程的数量。

要检查网络是否已准备好进行培训,请在设计师选项卡,单击分析.

要训练网络,请选择训练标签。有关详细信息,请参阅使用Deep Network Designer进行迁移学习.

有关了解和编辑图层特性的帮助,请单击图层名称旁边的帮助图标。

设计师窗格中,选择要查看和编辑特性的图层。单击图层名称旁边的帮助图标,了解有关图层特性的详细信息。

有关图层特性的详细信息,请参见深度学习层列表.

在Deep network Designer应用程序中训练图像分类网络。

要在导入到Deep network Designer的图像数据上对网络进行培训,请在训练选项卡,单击火车。如果您需要对培训进行更大的控制,请单击培训方案选择培训设置。有关选择培训选项的详细信息,请参见培训选项.

有关如何训练图像分类网络的示例,请参见使用Deep Network Designer进行迁移学习.

要在其他类型的数据上训练网络,请选择设计师选项卡并单击出口导出初始网络体系结构。然后,您可以通过编程方式训练网络。有关简单示例,请参阅使用Deep Network Designer创建简单的序列分类网络.

将在Deep network Designer中创建的网络体系结构导出到工作区。

  • 要导出具有初始权重的网络体系结构,请在设计师选项卡,单击出口.

  • 要导出具有训练权重的网络体系结构,请在训练选项卡,单击出口.

要重新创建在Deep network Designer应用程序中创建的网络层,请生成MATLAB代码。

要重新创建网络层,请在设计师选项卡,选择出口>生成代码.

或者,您可以通过选择重新创建网络,包括任何可学习的参数出口>使用初始参数生成代码.

生成脚本后,可以执行以下任务。

  • 要重新创建应用程序中创建的网络层,请运行脚本。

  • 要训练网络,请运行脚本,然后将层提供给列车网络作用

  • 检查代码以了解如何以编程方式创建和连接层。

  • 要修改图层,请编辑代码。您还可以运行脚本并将网络导入应用程序中进行编辑。

有关详细信息,请参阅生成MATLAB代码以重新创建网络层.

要重新创建在Deep Network Designer应用程序中执行的数据导入和培训,请生成MATLAB代码。

要重新创建数据导入和培训,请在训练选项卡,选择出口>生成用于培训的代码.

生成脚本后,可以执行以下任务。

  • 要重新创建网络层和在应用程序中执行的培训,请运行脚本。

  • 检查代码以了解如何以编程方式导入数据,以及如何构建和训练网络。

  • 修改代码以尝试不同的网络架构和培训选项,并查看它们如何影响结果。

有关详细信息,请参阅生成MATLAB代码训练网络.

相关实例

提示

要训练多个网络并比较结果,请尝试实验经理.

在R2018b中引入