主要内容

预先训练的深度神经网络

你可以使用一个已经学会从自然图像中提取强大且信息丰富的特征的预先训练的图像分类网络,并将其作为学习新任务的起点。大多数预先训练的网络都是在ImageNet数据库的一个子集上训练的[1],用于ImageNet大规模视觉识别挑战(ILSVRC)[2].这些网络已在超过一百万图像上培训,可以将图像分类为1000个对象类别,例如键盘,咖啡杯,铅笔和许多动物。使用带传输学习的预磨平网络通常比从头划伤训练网络更快更容易。

您可以使用先前培训的网络进行以下任务:

目的 描述
分类

将净化网络直接应用于分类问题。分类新图像,使用分类.有关如何使用预先训练的网络进行分类的示例,请参见使用googlenet对图像进行分类

特征提取

使用将PrettRINATWERWNETWATIONS作为特征提取器用作特征。您可以使用这些激活作为要训练另一台机器学习模型的功能,例如支持向量机(SVM)。金宝app有关更多信息,请参见特征提取.例如,看到利用预训练网络提取图像特征

转移学习

从培训的网络中占据在大数据集和新数据集上的微调。有关更多信息,请参见转移学习.有关一个简单的示例,请参见开始迁移学习.尝试更多的预先训练的网络,看培训深度学习网络以分类新图像

比较佩带的网络

预磨料网络具有不同的特征,重要的是在选择网络时适用于您的问题。最重要的特征是网络精度,速度和尺寸。选择网络通常是这些特征之间的权衡。使用下面的曲线比较了使用网络预测所需的时间来比较ImageNet验证准确性。

提示

要开始迁移学习,试着选择一个速度较快的网络,如SqueezeNet或GoogLeNet。然后,您可以快速迭代并尝试不同的设置,如数据预处理步骤和培训选项。一旦你感觉哪种设置比较好,尝试更精确的网络,如Inception-v3或ResNet,看看是否能改善你的结果。

预训练网络的精度和相对预测时间的比较。随着预训练网络精度的增加,相对预测时间也随之增加。

请注意

上面的图只显示了不同网络的相对速度。准确的预测和训练迭代时间取决于您使用的硬件和小批量大小。

一个好的网络具有较高的准确性和速度。该图显示了使用现代GPU (an英伟达®特斯拉®P100)和迷你批量大小为128.预测时间相对于最快的网络测量。每个标记的区域与磁盘上网络的大小成比例。

ImageNet验证集上的分类准确性是衡量在ImageNet上训练的网络的准确性最常用的方法。在ImageNet上准确的网络,在使用迁移学习或特征提取将它们应用到其他自然图像数据集时,通常也是准确的。这种泛化是可能的,因为网络已经学会从自然图像中提取强大的、信息丰富的特征,从而泛化到其他类似的数据集。然而,ImageNet上的高精度并不总是直接传输到其他任务,因此尝试多个网络是一个好主意。

如果您希望使用受限的硬件或在Internet上分布网络执行预测,那么还要考虑磁盘和内存中的网络大小。

网络的准确性

有多种方法可以在想象集验证集和不同的源使用不同的方法中计算分类准确性。有时,使用多种模型的集合,有时使用多次作物评估每个图像。引用有时前5个准确性而不是标准(Top-1)准确度。由于这些差异,通常不可能直接比较来自不同来源的精度。深度学习工具箱™中预用网络的准确性是使用单一型号和单一中心图像裁剪的标准(Top-1)精度。

负载Pretrained网络

要加载SqueezeNet网络,输入squeezenet在命令行。

net =挤压;

对于其他网络,请使用如下功能googlenet.获取链接以从附加资源管理器下载掠夺网络。

下表列出了在Imageenet上培训的可用普试网络和其部分属性。网络深度被定义为从输入层到输出层的路径上的最大数量的顺序卷积或完全连接的图层。所有网络的输入都是RGB图像。

网络 深度 大小 参数(百万) 图像输入大小
squeezenet 18

5.2 MB.

1.24

227-by-227

googlenet. 22

27 MB.

7.0

224年- 224年

inceptionv3 48

89 MB

23.9

299年- 299年

densenet201 201

77 MB

20.0

224年- 224年

mobilenetv2 53

13 MB

3.5

224年- 224年

resnet18 18

44 MB

11.7

224年- 224年

resnet50 50

96 MB

25.6

224年- 224年

resnet101 101

167 MB.

44.6

224年- 224年

xception 71

85 MB

22.9 299年- 299年
inceptionresnetv2 164

209 MB

55.9

299年- 299年

shufflenet 50 5.4 MB 1.4 224年- 224年
nasnetmobile 20 MB 5.3 224年- 224年
nasnetlarge 332 MB. 88.9 331年- 331年
darknet19 19 78 MB 20.8 256年- 256年
Darknet53. 53 155 MB. 41.6 256年- 256年
efficientnetb0 82 20 MB 5.3

224年- 224年

alexnet 8

227 MB

61.0

227-by-227

vgg16 16

515 MB

138

224年- 224年

vgg19 19

535 MB.

144

224年- 224年

* NASNet-Mobile和NASNet-Large网络不是由一个线性序列的模块组成。

谷歌网络接受了Places365培训

标准的GoogLeNet网络是在ImageNet数据集上训练的,但您也可以加载在Places365数据集上训练的网络[3][4].在Places365上训练的网络将图像分为365个不同的地方类别,如场地、公园、跑道、大厅。要在Places365数据集上加载经过预先训练的GoogLeNet网络,请使用googlenet('权重','partn365').在执行转移学习时执行新任务时,最常见的方法是在想象集上使用预追溯的网络。如果新任务类似于分类场景,则使用在Place365上培训的网络可以提供更高的精度。

可视化Pretrained网络

您可以加载和可视化预先训练的网络使用深网络设计师

DeepNetWorkDesigner(挤压)

深度网络设计师显示预磨损的挤压箱网络

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

在深度网络设计器中选择跨通道标准化层。PROPERTIES窗格显示了该层的属性。

点击探索深网络设计师中的其他预磨损网络新的

深度网络设计器开始页显示可用的预先训练的网络

如果您需要下载一个网络,请在所需的网络上暂停并单击安装以打开附加组件资源管理器。

特征提取

特征提取是一种使用深度学习力量的简单而快速的方法,无需投入时间和精力来训练整个网络。因为它只需要对训练图像进行一次遍历,所以如果你没有GPU,它特别有用。你使用预先训练的网络提取学习的图像特征,然后使用这些特征来训练分类器,例如使用支持向量机金宝appfitcsvm(统计学和机器学习工具箱)

当您的新数据集非常小时,尝试特征提取。由于您只在提取的特征上训练一个简单的分类器,因此训练速度很快。对网络的更深层次进行微调也不太可能提高精确度,因为可供学习的数据很少。

  • 如果您的数据与原始数据非常相似,那么从网络深处提取的更具体的特征可能对新任务有用。

  • 如果您的数据与原始数据非常不同,那么从网络深处提取的特征可能对您的任务用处不大。尝试用从较早的网络层提取的更一般的特征来训练最终的分类器。如果新数据集很大,那么您也可以尝试从头开始训练网络。

resnet通常是很好的特征提取器。有关如何使用预先训练的网络进行特征提取的示例,请参见利用预训练网络提取图像特征

转移学习

您可以通过使用预先训练过的网络作为起点,在新的数据集中训练网络,从而对网络中的更深层次进行微调。用迁移学习对一个网络进行微调通常比构建和训练一个新网络更快、更容易。网络已经学习了一组丰富的图像特性,但是当您对网络进行微调时,它可以学习特定于新数据集的特性。如果你有一个非常大的数据集,那么迁移学习可能不会比从头开始训练更快。

提示

对网络进行微调通常可以获得最高的精度。对于非常小的数据集(每个类少于20张图像),尝试特征提取。

与简单的特征提取相比,微调网络速度更慢,需要更多的努力,但由于网络可以学习提取一组不同的特征,最终的网络往往更准确。只要新数据集不是很小,微调通常比特征提取工作得更好,因为这样网络就有数据可以学习新特征。有关如何进行迁移学习的示例,请参见用深网络设计师转移学习培训深度学习网络以分类新图像

转移学习工作流程

进出口网络

您可以从Tensorflow导入网络和网络架构®-Keras、Caffe和ONNX™(Open Neural Network Exchange)模型格式。您还可以将训练过的网络导出为ONNX模型格式。

从Keras进口

使用TensorFlow-Keras导入预先训练好的网络importKerasNetwork.您可以从相同的HDF5 (.h5)文件或单独的HDF5和JSON (. JSON)文件导入网络和权重。有关更多信息,请参见importKerasNetwork

通过使用TensorFlow-Keras导入网络架构importKerasLayers.您可以导入网络架构,也可以不导入权重。您可以从相同的HDF5 (.h5)文件或单独的HDF5和JSON (. JSON)文件导入网络架构和权重。有关更多信息,请参见importKerasLayers

从咖啡进口

导入预先训练的网络从Caffe使用importCaffeNetwork函数。Caffe Model动物园有许多掠夺网络[5].下载所需的.prototxt.caffemodel文件和使用importCaffeNetwork将预先训练好的网络导入MATLAB®.有关更多信息,请参见importCaffeNetwork

您可以导入Caffe网络的网络架构。下载所需的.prototxt文件,并使用importCaffeLayers将网络层导入MATLAB。有关更多信息,请参见importCaffeLayers

出口和进口ONNX

通过使用ONNX作为中间格式,您可以与其他支持ONNX模型导出或导入的深度学习框架互操作,如TensorFlow, PyTorch,咖啡因2,Microsoft金宝app®Cognitive Toolkit (CNTK)、Core ML和Apache MXNet™。

导出训练的深度学习工具箱网络到ONNX模型格式使用exportONNXNetwork函数。然后,您可以将ONNX模型导入到其他支持ONXX模型导入的深度学习框架中。金宝app

使用ONNX导入预先训练好的网络importONNXNetwork以及导入网络架构是否使用权重importonnxLayers.

预先训练的音频应用网络

通过使用深度学习工具箱和音频工具箱™,将预先训练好的网络用于音频和语音处理应用程序。

Audio Toolbox提供了预先训练的VGGish和YAMNet网络。使用vggish(音频工具箱)yamnet.(音频工具箱)功能与磨粉网络直接交互。的classifySound(音频工具箱)函数对yamnet进行必需的预处理和后处理,以便您可以将声音定位和分类为521个类别中的一个。您可以使用浏览yamnet本体yamnetgraph..(音频工具箱)函数。的vggishFeatures(音频工具箱)函数执行必要的预处理和后处理,以便VAGA出来,使您可以提取要嵌入的功能嵌入式以输入到机器学习和深度学习系统。有关使用深度学习进行音频应用的更多信息,请参阅音频应用深度学习简介(音频工具箱)

使用VGGish和YAMNet进行迁移学习和特征提取。例如,请参见通过预先训练的音频网络进行迁移学习(音频工具箱)

佩带的模型GitHub

要查找最新的佩带模型和示例,请参阅MATLAB深度学习(GitHub)

例如:

参考文献

[1]ImageNet.http://www.image-net.org.

[2] Russakovsky, O., Deng J., Su H., et al. " ImageNet大规模视觉识别挑战。"国际计算机视觉杂志(IJCV).2015年第3期,第115卷,211-252页

[3] Zhou, Bolei, Aditya Khosla, Agata Lapedriza, Antonio Torralba和Aude Oliva。“地点:用于深度场景理解的图像数据库。”arXiv预印本arXiv: 1610.02055(2016)。

[4]的地方.http://places2.csail.mit.edu/

[5]咖啡模型动物园.http://caffe.berkeleyvision.org/model_zoo.html

另请参阅

|||||||||||||||||||||||||

相关的话题