主要内容

深网络设计师

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

描述

这个深网络设计师该应用程序允许您构建、可视化、编辑和培训深度学习网络。使用此应用程序,您可以:

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

  • 加载佩带的网络并编辑它们进行传输学习。

  • 查看和编辑图层属性并添加新图层和连接。

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

  • 导入和可视化数据存储和图像数据进行培训和验证。

  • 对图像分类训练数据应用增强,并可视化类标签的分布。

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

  • 将经过培训的网络导出到工作区或Simulink金宝app®.

  • 生成matlab.®建筑和培训网络代码。

打开Deep Network Designer应用程序

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

  • matlab命令提示符:输入deepNetworkDesigner.

例子

全部展开

在Deep network Designer中检查一个简单的预训练图像分类网络。

打开应用程序并选择备用网络。您还可以通过选择备用预售网络设计师标签并单击新的. 如果需要下载网络,请单击安装打开加载项资源管理器。

提示

开始时,试着选择一个更快的网络,比如挤压网或谷歌网。一旦您了解了哪些设置工作正常,请尝试更精确的网络,如Inception-v3或ResNet,看看这是否会改善您的结果。有关选择预训练网络的详细信息,请参阅普里德深度神经网络.

显示可用网络的Deep Network Designer起始页

在里面设计师窗格,可视化和探索网络。有关可用的普试网络列表以及如何比较它们,请参阅普里德深度神经网络.

显示预训练网络的Deep Network Designer

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

通过在Deep network Designer中编辑,为迁移学习准备网络。

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

使用SqueezeNet打开深度网络设计器。

DeepNetWorkDesigner(挤压)

要为迁移学习准备网络,请替换最后一个可学习层和最终分类层。对于SqueezeNet,最后一个可学习的层是名为“conv10”.

  • 拖动一个新的Convolution2Dlayer.在画布上。设定过滤财产1,1numfilters.属性到新数量的课程。

  • 改变学习率,以便在新图层中学习比转移层更快,通过增加来加权比率因子双线性学习因子价值观

  • 删除最后一个Convolution2Dlayer.并连接新图层。

    在Deep Network Designer中选择卷积二维层。FilterSize设置为1,1,NumFilters设置为5。

提示

对于大多数佩带网络(例如,Googlenet)最后一次学习层是完全连接的图层。要准备网络进行转移学习,请将完全连接的图层用新的完全连接的图层替换并设置输出大小属性到新数量的课程。例如,看到开始使用Deep Network Designer.

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

在Deep Network Designer中选择分类层。OutputSize设置为自动。

点击检查您的网络分析在里面设计师标签。如果需要,网络已准备好进行培训深度学习网络分析仪报告零错误。有关如何训练网络对新图像进行分类的示例,请参见使用Deep Network Designer进行迁移学习.

有关帮助理解和编辑图层属性,请单击图层名称旁边的“帮助”图标。

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

在Deep Network Designer中选择跨通道规范化层

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

在Deep network Designer中将工作区中的层添加到网络。

在Deep Network Designer中,可以通过从中拖动内置层来构建网络图层库到了设计师窗格并连接它们。您还可以将自定义图层从工作区添加到网络中的网络设计师窗玻璃假设变量中存储了一个自定义图层myCustomLayer.

  1. 点击新的在里面设计师标签。

  2. 暂停从工作空间点击进口.

  3. 选择myCustomLayer点击好的.

  4. 点击添加.

应用程序将自定义层添加到页面顶部设计师窗玻璃要查看新图层,请使用鼠标放大或单击放大.

连接myCustomLayer到中的网络设计师窗格。有关示例,示出了如何在深网络设计器中使用自定义层的网络,请参阅将自定义层导入深网络设计师.

您还可以将网络组合在深网络设计师中。例如,您可以通过将掠夺性网络与解码器子网组合来创建语义分段网络。

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

你可以使用数据用于导入培训和验证数据的Deep Network Designer选项卡。Deep Network Designer支持导入图像数据和数据存储对象。根据任务类型选择导入方法。金宝app

任务 数据类型 数据导入方法 示例可视化
图像分类

图像数据存储对象,或包含包含每个类的图像的子文件夹的文件夹。类标签来源于子文件夹名称。

选择导入数据>导入图像数据.

“导入图像数据”对话框

您可以选择增强选项并在“导入图像数据”对话框中指定验证数据。有关更多信息,请参阅将数据导入Deep Network Designer.

Deep Network Designer的“数据”选项卡,显示类标签的直方图和从导入数据中选择的随机图像

其他扩展工作流程(如数字特征输入,内存up-uperate数据,图像处理和音频和语音处理)

数据存储。

对于其他扩展工作流,请使用合适的数据存储对象。例如增强图像数据存储,组合数据存储,像素标签图像数据存储(计算机视觉工具箱),或自定义数据存储。

您可以导入和培训与之合作的任何数据存储对象列车网络有关为深度学习应用程序构建和使用数据存储对象的更多信息,请参阅用于深度学习的数据存储.

选择导入数据>导入数据存储.

“导入数据存储”对话框

可以在“导入数据存储”对话框中指定验证数据。有关详细信息,请参阅将数据导入Deep Network Designer.

深网络设计器的数据选项卡显示数据存储中前五个观测的预览

使用深度网络设计器训练深度神经网络。

使用deepnetworkdesigner,您可以使用图像数据或使用的任何数据存储对象来训练网络列车网络例如,您可以使用组合数据存储对象有关将数据导入Deep Network Designer的更多信息,请参阅将数据导入Deep Network Designer.

培训进口到深网络设计师的数据的网络训练选项卡,单击火车. 该应用程序显示培训进度的动画绘图。该图显示了小批量损失和准确性、验证损失和准确性,以及有关培训进度的其他信息。绘图有一个停止按钮在右上角。单击按钮以停止培训并返回网络的当前状态。

深度网络设计器中的训练进度图

有关更多信息,请参阅使用深度网络设计器训练网络.

如果您需要更好地控制培训,请单击培训选择选择培训设置。有关选择培训选项的详细信息,请参见培训选项.

深度网络设计师的培训选项对话框

有关如何训练图像分类网络的示例,请参见使用Deep Network Designer进行迁移学习.有关如何将序列训练到序列LSTM网络的示例,请参阅使用深网络设计师进行时间序列预测的火车网络.

要在Deep network Designer不支持的数据上训金宝app练网络,请选择设计师选项卡,然后单击出口导出初始网络架构。然后,您可以以编程方式通过自定义训练循环进行编程方式列车。

将在Deep network Designer中创建的网络体系结构导出到工作区或Simulink,并生成代码以重新创建网络和培训。金宝app

  • 要将具有初始权重的网络体系结构导出到工作区,请在设计师选项卡,单击出口. 根据网络体系结构,Deep network Designer将网络导出为分层图lgraph或者作为一个对象.

  • 要将在Deep network Designer中培训的网络导出到工作区,请在训练选项卡,单击出口.深度网络设计师将培训的网络架构导出为一个达格网络对象培训网络.Deep Network Designer还将训练结果(如训练和验证精度)导出为结构数组列车信息结构.

  • 要将在Deep network Designer中培训的网络导出到Simulink,请在金宝app训练选项卡,单击出口>导出到Simulin金宝appk.Deep Network Designer将经过训练的网络保存为MAT文件,并生成表示经过训练的网络的Simulink块。生成的块取决于经过训练的网络的类金宝app型。

    • 图像分类器-使用经过训练的深度学习神经网络对数据进行分类。

    • 预测- 使用培训的深度学习神经网络预测响应。

    • 有状态分类- 使用经过培训的经常性神经网络对数据进行分类。

    • 有状态预测- 使用培训的经常性神经网络预测响应。

要重新创建在Deep network Designer中构建和训练的网络,请生成MATLAB代码。

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

  • 重新创建网络层,包括任何可知参数,包括设计师选项卡,选择出口>使用初始参数生成代码.

  • 重新创建网络,数据导入和培训训练选项卡,选择出口>生成培训代码.

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

  • 要重新创建应用程序中创建的网络层,请运行脚本。如果生成了培训脚本,则运行该脚本也将复制网络培训。

  • 检查代码以了解如何以编程方式创建和连接层,以及如何训练深层网络。

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

有关更多信息,请参阅从深网络设计师生成MATLAB代码.

您还可以使用生成的脚本作为起点来创建深入学习实验,这些实验将扫描一系列超参数值,或者使用贝叶斯优化来找到最佳的培训选项实验经理要调整在Deep network Designer中培训的网络的超参数,请参阅调整在Deep Network Designer中生成的代码以用于实验管理器.

相关实例

程序化使用

全部展开

deepNetworkDesigner打开Deep Network Designer应用程序。如果Deep Network Designer已打开,deepNetworkDesigner为应用程序带来焦点。

deepNetworkDesigner()打开Deep Network Designer应用程序并将指定的网络加载到该应用程序中。网络可以是串联网络、DAG网络、层图或层阵列。

例如,具有预磨损的挤压ZENET网络的开放深度网络设计师。

净=挤压净;deepNetworkDesigner(net);

如果Deep Network Designer已打开,DeepNetWorkDesigner(网)关注应用程序并提示您添加或替换任何现有网络。

提示

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

在R2018b中引入