深度网络设计器
设计、可视化和训练深度学习网络
描述
的深度网络设计器应用程序允许您构建、可视化、编辑和训练深度学习网络。使用这个应用程序,你可以:
构建、导入、编辑和组合网络。
加载预训练的网络并编辑它们进行迁移学习。
查看和编辑图层属性,并添加新的图层和连接。
对网络进行分析,确保正确定义网络架构,并在培训前发现问题。
为训练和验证导入和可视化数据存储和图像数据。
应用增强图像分类训练数据和可视化类标签的分布。
训练网络并使用准确性、损失和验证指标的图表监控训练。
将训练好的网络导出到工作区或Simulink金宝app®.
MATLAB生成®建立和培训网络的代码。
打开深度网络设计器应用程序
MATLAB工具条:在应用程序选项卡,在机器学习和深度学习,点击应用程序图标。
MATLAB命令提示符:输入
deepNetworkDesigner
.
例子
选择预训练图像分类网络
在深度网络设计器中检查一个简单的预训练图像分类网络。
打开应用程序,选择一个预先训练好的网络。控件,也可以加载预训练的网络设计师标签,点击新.如果需要下载网络,请单击安装打开附加组件资源管理器。
提示
首先,尝试选择一个更快的网络,如SqueezeNet或GoogLeNet。一旦您了解了哪些设置工作良好,就可以尝试更准确的网络,例如Inception-v3或ResNet,看看这是否会改善您的结果。有关选择预训练网络的更多信息,请参见预训练的深度神经网络.
在设计师窗格,可视化和探索网络。有关可用的预训练网络的列表以及如何比较它们,请参见预训练的深度神经网络.
有关使用深度网络设计器构建网络的信息,请参见用深度网络设计器构建网络.
编辑迁移学习的预训练网络
在深度网络设计器中编辑一个用于迁移学习的网络。
迁移学习是采用预先训练好的深度学习网络并对其进行微调以学习新任务的过程。您可以使用较少的训练图像快速将学习到的特征转移到新任务中。因此,迁移学习通常比从零开始训练一个网络更快更容易。要使用预训练的网络进行迁移学习,必须改变类的数量以匹配新的数据集。
使用SqueezeNet打开深度网络设计器。
deepNetworkDesigner (squeezenet)
为了准备网络进行迁移学习,替换最后的可学习层和最后的分类层。对于SqueezeNet,最后一个可学习的层是一个名为“conv10”
.
拖动一个新的convolution2dLayer画在画布上。设置FilterSize财产
1,1
和NumFilters属性设置为新的类数。改变学习率,使学习在新层比在转移层更快通过增加WeightLearnRateFactor和BiasLearnRateFactor值。
删除最后一个convolution2dLayer然后连接你的新图层。
提示
对于大多数预训练的网络(例如GoogLeNet),最后一个可学习的层是完全连接层。为迁移学习准备网络,将全连接层替换为新的全连接层,并设置OutputSize属性设置为新的类数。有关示例,请参见开始使用深度网络设计器.
接下来,删除分类输出层。然后,拖动一个newclassificationLayer在画布上并连接它。输出层的默认设置意味着网络在训练期间学习类的数量。
通过单击检查网络分析在设计师选项卡。网络已准备好训练,如果深度学习网络分析仪报告零错误。有关如何训练网络对新图像进行分类的示例,请参见基于深度网络设计器的迁移学习.
获取图层属性帮助
为了帮助理解和编辑图层属性,单击图层名称旁边的帮助图标。
添加自定义层到网络
在深度网络设计器中从工作空间向网络添加层。
在深度网络设计器中,可以通过从层的图书馆到设计师窗格并连接它们。中的网络中,还可以从工作区中添加自定义层设计师窗格。假设在变量中存储了一个自定义层myCustomLayer
.
点击新在设计师选项卡。
暂停上从工作空间并点击进口.
选择
myCustomLayer
并点击好吧.点击添加.
应用程序将自定义层添加到设计师窗格。要查看新图层,请使用鼠标放大或单击放大.
连接myCustomLayer到网络中设计师窗格。有关显示如何在深度网络设计器中使用自定义层构建网络的示例,请参见导入自定义层到深度网络设计器.
您还可以在深度网络设计器中组合网络。例如,您可以通过将预先训练的网络与解码器子网络结合起来来创建语义分割网络。
导入培训数据
将数据导入Deep Network Designer进行培训。
您可以使用数据选项卡,导入训练和验证数据。Deep Network Designer支金宝app持图像数据和数据存储对象的导入。根据任务类型选择导入方法。
任务 | 数据类型 | 数据导入方法 | 可视化例子 |
---|---|---|---|
图像分类 |
|
选择导入数据>导入镜像数据. 您可以在“导入映像数据”对话框中选择增强选项并指定验证数据。有关更多信息,请参见导入数据到深度网络设计器. |
|
其他扩展工作流(如数字特征输入、内存不足数据、图像处理以及音频和语音处理) | 数据存储。 对于其他扩展工作流,使用合适的数据存储对象。例如, 对象的任何数据存储对象都可以导入和训练 |
选择导入数据>导入数据存储. 您可以在“导入数据存储”对话框中指定验证数据。有关更多信息,请参见导入数据到深度网络设计器. |
|
列车网络的
使用深度网络设计器训练深度神经网络。
类使用的图像数据或任何数据存储对象,可以使用深度网络设计器训练网络trainNetwork
函数。例如,你可以训练一个语义分割网络或一个多输入网络使用CombinedDatastore
对象。有关将数据导入深度网络设计器的详细信息,请参见导入数据到深度网络设计器.
对导入到深度网络设计器的数据进行训练培训选项卡上,单击火车.该应用程序会显示训练进度的动画图。该图显示了小批损失和准确性,验证损失和准确性,以及关于训练进度的附加信息。该情节有一个停止按钮在右上角。点击按钮停止训练,返回网络当前状态。
有关更多信息,请参见使用深度网络设计器训练网络.
如果您需要对培训进行更大的控制,请单击培训方案选择培训设置。有关选择培训选项的详细信息,请参见trainingOptions
.
有关如何训练图像分类网络的示例,请参见基于深度网络设计器的迁移学习.有关如何训练序列到序列LSTM网络的示例,请参见利用深度网络设计器进行时间序列预测的训练网络.
若要在深度网络设计器不支持的数据上训练网络,请选择金宝app设计师选项卡,单击出口导出初始网络架构。然后,您可以编程地训练网络,例如,使用自定义训练循环。
导出网络和生成代码
将在Deep network Designer中创建的网络架构导出到工作空间或Simulink中,并生成代码以重新创建网络和训练。金宝app
要将具有初始权重的网络体系结构导出到工作区,请在设计师选项卡上,单击出口.根据网络架构的不同,深度网络设计器将网络导出为
LayerGraph
lgraph或者作为层
对象层.要将在深度网络设计器中训练的网络导出到工作空间,请在培训选项卡上,单击出口.深度网络设计器将训练好的网络体系结构导出为
DAGNetwork
对象trainedNetwork.深度网络设计器还将训练结果(如训练和验证精度)导出为结构数组trainInfoStruct.将在Deep network Designer中训练的网络导出到Simulink金宝app培训选项卡上,单击出口>导出到Simulin金宝appk.深度网络设计器将训练过的网络保存为mat文件,并生成表示训练过的网络的Simulink块。金宝app生成的块取决于训练的网络类型。
要重新创建在深度网络设计器中构建和训练的网络,请生成MATLAB代码。
要重新创建网络层,请在设计师选项卡上,选择出口>生成代码.
上重新创建网络层,包括任何可学习的参数设计师选项卡上,选择出口>生成带有初始参数的代码.
上重新创建网络、数据导入和训练培训选项卡上,选择出口>生成培训代码.
生成脚本后,可以执行以下任务。
要重新创建应用程序中创建的网络层,请运行脚本。如果您生成了培训脚本,则运行该脚本还将复制网络培训。
检查代码,了解如何以编程方式创建和连接层,以及如何训练深度网络。
要修改图层,请编辑代码。你也可以运行脚本并将网络导入到应用程序中进行编辑。
有关更多信息,请参见从深度网络设计器生成MATLAB代码.
您还可以使用生成的脚本作为起点来创建深度学习实验,通过扫描一系列超参数值或使用贝叶斯优化来找到最佳的训练选项。作为一个例子,展示如何使用实验管理器要调优在深度网络设计器中训练的网络的超参数,请参见适应在深度网络设计器中生成的代码用于实验管理器.
相关的例子
编程使用
deepNetworkDesigner
deepNetworkDesigner
打开深度网络设计器应用程序。如果深度网络设计器已经打开,deepNetworkDesigner
为应用程序带来关注。
deepNetworkDesigner (网
)
网
)deepNetworkDesigner (
打开Deep Network Designer应用程序,将指定的网络加载到应用程序中。网络可以是系列网络、DAG网络、层图或层数组。网
)
例如,使用预先训练好的SqueezeNet网络打开Deep Network Designer。
网=挤压网;deepNetworkDesigner(净);
如果深度网络设计器已经打开,deepNetworkDesigner(净)
将焦点集中到应用程序,并提示您添加或替换任何现有网络。
提示
要训练多个网络并比较结果,请尝试实验管理器.
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。