主要内容

用深度网络设计器构建网络

以交互式建立和编辑深度学习网络深层网络设计师使用该应用程序,您可以导入网络或从头开始构建网络,查看和编辑层属性,组合网络,生成代码,创建网络架构。然后,您可以使用深层网络设计器培训您的网络,或在命令行导出网络进行培训。

您可以使用深网络设计师进行一系列网络施工任务:

用拖块的方法组装一个网络层的图书馆并连接它们。快速搜索图层,使用过滤层的搜索框层的图书馆窗格。

使用连接到卷积2dlayer和未连接relullayer的imageInputLayer的Deep Network Designer的设计器窗格

您可以将从工作区添加到网络中的图层设计师窗格。

  1. 点击

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

  3. 选择需要导入的层或网络,单击好的

  4. 点击添加将层或网络添加到设计师窗格。

您还可以通过单击加载备用网络并从起始页选择它们。

要查看和编辑图层属性,选择一个图层。单击图层名称旁边的帮助图标获取有关图层属性的信息。

“属性”窗格,显示跨通道正常化层的属性

控件上的表格中的层名称可获得所有层属性的信息深度学习层列表页面。

构建网络后,您可以分析它以检查错误。有关更多信息,请参阅检查网络

转移学习

转移学习通常用于深入学习应用。您可以拍摄备用网络并将其用作学习新任务的起点。微调具有传输学习的网络通常比训练网络从头开始随机初始化的权重更快更容易。您可以使用较少数量的培训图像快速将学习功能转移到新任务。

深度网络设计师有一系列适用于使用图像数据传输学习的预磨平网络。

负载净化网络

打开应用程序并选择备用网络。您还可以通过选择备用预售网络设计师选项卡并单击.如果需要在网络上下载网络,请在网络上暂停,然后单击安装打开附加资源管理器。

提示

要开始,请尝试选择更快的网络之一,例如挤压仪或Googlenet。一旦您获得了解哪些设置工作,请尝试更准确的网络,例如Inception-V3或Reset,并查看是否可以提高结果。有关选择备用网络的更多信息,请参阅普里德深度神经网络

深度网络设计器显示可用网络的开始页

适应掠夺网络

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

  • 如果最后一次学习层是2-D卷积层(例如,'conv10'挤压层):

    • 拖动一个新的Convolution2Dlayer.到画布上。设定NumFilters属性设置为新的类数量和过滤1,1

    • 改变学习速度,使学习在新层比在转移层更快,通过增加WeightLearnRateFactorBiasLearnRateFactor值。

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

在深度网络设计器中选择卷积二维层。属性窗格显示FilterSize设置为1,1和NumFilters设置为5。

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

    • 拖动一个新的全康统计层在画布上设置输出属性设置为新的类数量。

    • 改变学习速度,使学习在新层比在转移层更快,通过增加WeightLearnRateFactorBiasLearnRateFactor值。

    • 删除最后一个全康统计层并连接新图层。

在深度网络设计器中选择全连接层。“属性”窗格显示“输出”设置为5。

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

在深度网络设计器中选择分类层。Properties窗格显示设置为auto的OutputSize。

要检查网络是否为训练做好了准备,请在设计师选项卡,单击分析

有关如何重新训练一个预先训练过的网络以对新图像进行分类的示例,请参见使用深度网络设计师进行迁移学习

您还可以使用佩带的网络和转移学习回归任务。有关更多信息,请参阅将分类网络转换为回归网络

图像分类

您可以通过从中拖动图层使用深网络设计器构建图像分类网络层的图书馆并连接它们。您还可以在命令行创建网络,然后将网络导入深网络设计器。

例如,在将28×28图像的数据集上创建一个用于训练的网络,分为10个类。

输入= [28 28 1];numclasses = 10;图层= [ImageInputLayer(InputSize)卷积2dlayer(5,20)BatchnormalizationLayer quoutulayer全连接列(numclasses)softmaxlayer分类层];DeepNetWorkDesigner(层)

深度网络设计中的图像分类网络。该网络以图像输入层开始,以分类层结束。

要将此网络调整到您自己的数据,请设置输入图像输入层匹配图像输入大小并设置输出完全连接层与数据中类的数量的关系。对于更复杂的分类任务,创建更深层次的网络。有关更多信息,请参阅深网络

有关如何创建和训练图像分类网络的示例,请参见使用深网络设计器创建简单的图像分类网络

序列的分类

您可以使用深度网络设计器从头开始构建序列网络,也可以从开始页面使用预先构建的未经训练的网络之一。打开深层网络设计器开始页。暂停上Sequence-to-Label并点击打开.这样做打开适合序列分类问题的预设网络。

深网络设计师序列分类网络。网络从序列输入层开始,并以分类层结尾。

您可以调整此序列网络以进行数据培训。假设您有12个功能和9个类的数据。要调整此网络,请选择sequenceInputlayer.并设置输入12.

在深度网络设计器中选择序列输入层。Properties窗格显示InputSize设置为12。

然后,选择全康统计层并设置输出9.,班级数。

在深度网络设计器中选择全连接层。Properties窗格显示OutputSize设置为9。

网络现在已经准备好训练了。培养网络深度设计人才,打造网络设计人才ConventDatastore.包含预测因素和反应。有关更多信息,请参阅将数据导入深网络设计师.有关如何使用深度网络设计器创建组合数据存储和训练序列到序列回归网络的示例,请参见使用深网络设计师进行时间序列预测的火车网络.有关如何导出Deep network Designer中内置的网络并使用命令行函数进行培训的示例,请参见使用深度网络设计器创建简单的序列分类网络

数字数据分类

如果您有数据集的数字特征(例如,没有空间或时间尺寸的数字数据集合),那么您可以使用特征输入层培训深度学习网络。有关功能输入图层的更多信息,请参阅featureInputLayer

您可以使用深网络设计器构建合适的网络,或者您可以在命令行中创建网络并将网络导入深网络设计器。

例如,创建一个包含10个类的数字数据网络,其中每个观察包含20个特征。

输入= 20;numclasses = 10;图层= [featureInputLayer(输入,“归一化”'zscore')全连接层(50)BatchnormalizationLayer Rublayer全连接列(NumClasses)SoftMaxLayer分类层];DeepNetWorkDesigner(层)

深度网络设计器中的特征分类网络。该网络以特征输入层开始,以分类层结束。

要将此网络调整到您自己的数据,请设置输入特征输入层以匹配数据中的功能数并设置输出完全连接层与数据中类的数量的关系。对于更复杂的分类任务,创建更深层次的网络。有关更多信息,请参阅深网络

要使用表中的数据在深度网络设计器中训练网络,必须首先将数据转换为合适的数据存储。例如,首先将表转换为包含预测器和响应的数组。然后,将数组转换为ArrayDataStore.对象。最后,将预测器和响应阵列数据存储组合成一个ConventDatastore.对象。然后,您可以使用组合数据存储进行深度网络设计器培训。有关更多信息,请参阅将数据导入深网络设计师.您还可以使用表格数据和图表trainNetwork函数,将网络导出到工作区。

将分类网络转换为回归网络

您可以通过替换网络的最终图层将分类网络转换为回归网络。当您想要拍摄预售的分类网络并恢复回归任务时,转换很有用。

例如,假设你有一个GoogLeNet预训练网络。要将此网络转换为具有单一响应的回归网络,可将最终的全连接层、softmax层和分类输出层替换为具有的全连接层输出设置为1(响应的数量)和一个回归层。

分类网络转换为回归网络的图。分类网络,Softmax层和分类层的最终两层由回归层替换。

如果输出有多个响应,请更改输出完全连接层与响应数的值。

多输入多输出网络

多个输入

如果网络需要来自多个来源或不同格式的数据,则可以使用多个输入定义网络。例如,一些网络需要从多个不同分辨率的传感器捕获的图像数据。金宝搏官方网站

使用深层网络设计器,您可以控制每一层的输入和输出。例如,要创建具有多个图像输入的网络,需要创建两个分支,每个分支都从一个图像输入层开始。

网络中具有多个输入的网络。网络具有两个图像输入层和单个分类输出层。

您可以使用深网络设计器和数据存储对象培训具有相同类型输入的多输入网络,例如来自两个差分源的图像。对于具有多种格式的数据的网络,例如,图像和序列数据,使用自定义训练循环训练网络。有关更多信息,请参阅定制培训循环的DLNetwork

多个输出

您可以定义具有多个输出的网络,用于需要不同格式的多个响应的任务,例如,需要分类和数字输出的任务。

使用深层网络设计器,您可以控制每一层的输出。

具有多个输出的网络的末尾。第一分支以完全连接的层和软MAX层结尾。第二分支以完全连接的层结束。

要训练多输出网络,必须使用自定义的训练循环。自定义训练循环必须使用dlnetwork对象不包含任何输出图层。有关更多信息,请参阅定制培训循环的DLNetwork

深网络

建立大型网络可能很困难,您可以使用深网络设计师加快建设。您可以一次使用层块。选择多个图层,然后复制和粘贴或删除。例如,您可以使用图层块来创建多组卷积,批量标准化和Relu层。

深网络设计师中多层的组选择。

对于训练有素的网络,复制层次也复制权重和偏差。

您还可以从工作区复制子网,以方便使用应用程序连接。要导入网络或层到应用程序,单击>从工作区进口.点击添加将图层添加到当前网络。

高级深度学习应用

您可以使用深度网络设计器为高级应用程序构建和训练网络,如计算机视觉或图像处理任务。

创建语义分段网络

语义分割描述了将图像的每个像素与类标签相关联的过程。语义分割的应用包括用于自动驾驶的道路分割和用于医疗诊断的癌细胞分割。

创建一个语义分割网络通过拖动层从层的图书馆设计师窗格或在命令行中创建网络并将网络导入Deep network Designer。

例如,基于下采样和上采样设计创建一个简单的语义分段网络。

InputSize = [32 32 1];图层= [ImageInputLayer(InputSize)Convolution2dlayer([3,3],64,“填充”, 1, 1, 1, 1) reluLayer maxPooling2dLayer ((2, 2),'走吧', (2, 2)) convolution2dLayer ([3, 3], 64“填充”,[1,1,1,1])Rublayer TranspoS​​edConv2dlayer([4,4],64,'走吧',[2,2],“种植”,[1,1,1,1])卷积2dlayer([1,1],2)SoftmaxLayer Pixelclasificatificallayer];DeepNetWorkDesigner(层)

深度网络设计中的语义分割网络。该网络以图像输入层开始,以像素分类层结束。

有关构造和训练语义分割网络的更多信息,请参见在深度网络设计中训练简单的语义分割网络(电脑视觉工具箱)

创建图像到图像回归网络

图像到图像回归涉及取消输入图像并产生输出图像,通常具有相同的大小。这种类型的网络对于超级分辨率,着色或图像去纹理有用。

您可以使用深网络设计器创建图像到图像回归网络。例如,创建一个适用于使用图像到图像回归的简单网络架构不平衡计算机Vision Toolbox™功能。该功能提供适合于语义分割的网络,可以很容易地适应图像到图像回归。

创建具有输入大小28-×28×1像素的网络。

层=未凝固([28,28,1],2,“encoderDepth”,2);DeepNetWorkDesigner(层);

在里面设计师窗格,用来自的回归层替换Softmax和像素分类图层层的图书馆

像素分类网络转换为图像到图像回归网络的图。最后两层分类网络,一个软最大层和一个像素分类层,被一个回归层代替。

选择最后的卷积层并设置NumFilters财产1

在深度网络设计器中选择卷积二维层。属性窗格显示NumFilters设置为1。

有关构造和训练图像到图像回归网络的更多信息,请参见深度网络设计器中的图像到图像回归

dlnetwork自定义训练循环

您可以构建和分析dlnetwork对象使用深网络设计师。一种dlnetwork对象可以支持使用自动差异化的自金宝app定义培训循环。内置培训选项不提供您需要的培训选项时,请使用自定义培训循环。

要检查网络是否已准备好使用自定义训练循环进行训练,请单击分析>分析了dlnetwork.有关更多信息,请参阅检查网络

深度网络设计器不支持使用自定义训练循环进行训练。金宝app要使用自定义训练循环来训练您的网络,首先将网络导出到工作区,并将其转换为dlnetwork对象。然后你可以训练网络使用dlnetwork对象和自定义训练循环。有关更多信息,请参阅使用自定义训练循环训练网络

检查网络

检查您的网络并进一步检查图层,请参阅设计师选项卡,单击分析.调查问题并检查网络中解析尺寸不匹配的图层属性。返回深度网络设计师以编辑图层,然后点击查看结果分析再次。如果深度学习网络分析器报告零错误,则编辑的网络已准备好进行培训。

深度学习网络分析仪显示零警告或错误。

您还可以分析用于自定义培训工作流的网络。点击分析>分析了dlnetwork分析网络使用dlnetwork对象。例如,网络分析器检查层图是否没有任何输出层。

另请参阅

相关话题