您可以使用已经学会从自然图像中提取强大和信息性功能的预磨料图像分类网络,并将其作为学习新任务的起点。大多数普试网络都培训了ImageNet数据库的子集[1],它用于ImageNet大规模视觉识别挑战(ILSVRC)[2].这些网络已在超过一百万图像上培训,可以将图像分类为1000个对象类别,例如键盘,咖啡杯,铅笔和许多动物。使用带传输学习的预磨平网络通常比从头划伤训练网络更快更容易。
你可以使用以前训练过的网络来完成以下任务:
目的 | 描述 |
---|---|
分类 | 将净化网络直接应用于分类问题。分类新图像,使用 |
特征提取 | 使用将PrettRINATWERWNETWATIONS作为特征提取器用作特征。您可以使用这些激活作为要训练另一台机器学习模型的功能,例如支持向量机(SVM)。金宝app有关更多信息,请参阅特征提取.例如,请参见使用掠夺网络提取图像特征. |
转移学习 | 从培训的网络中占据在大数据集和新数据集上的微调。有关更多信息,请参阅转移学习.对于一个简单的例子,请参阅开始迁移学习.尝试更多的预先训练的网络,看培训深度学习网络以分类新图像. |
预磨料网络具有不同的特征,重要的是在选择网络时适用于您的问题。最重要的特征是网络精度,速度和尺寸。选择网络通常是这些特征之间的权衡。使用下面的曲线比较了使用网络预测所需的时间来比较ImageNet验证准确性。
提示
要开始迁移学习,试着选择一个速度较快的网络,如SqueezeNet或GoogLeNet。然后,您可以快速迭代并尝试不同的设置,如数据预处理步骤和培训选项。一旦你感觉哪种设置比较好,尝试更精确的网络,如Inception-v3或ResNet,看看是否能改善你的结果。
笔记
上图的曲线仅示出了不同网络的相对速度的指示。确切的预测和训练迭代时间取决于您使用的硬件和迷你批次大小。
一个好的网络具有较高的准确性和速度。该图显示了使用现代GPU (an英伟达®特斯拉®P100)和迷你批量大小为128.预测时间相对于最快的网络测量。每个标记的区域与磁盘上网络的大小成比例。
ImageNet验证集上的分类准确性是衡量在ImageNet上训练的网络的准确性最常用的方法。在ImageNet上准确的网络,在使用迁移学习或特征提取将它们应用到其他自然图像数据集时,通常也是准确的。这种泛化是可能的,因为网络已经学会从自然图像中提取强大的、信息丰富的特征,从而泛化到其他类似的数据集。然而,ImageNet上的高精度并不总是直接传输到其他任务,因此尝试多个网络是一个好主意。
如果要在Internet上使用受限硬件或分发网络进行预测,则还会考虑磁盘和内存中网络的大小。
在ImageNet验证集上有多种方法来计算分类精度,不同的来源使用不同的方法。有时使用多个模型的集合,有时使用多个作物对每个图像进行多次评估。有时引用的是前5位精度而不是标准(前1)精度。由于这些差异,通常不可能直接比较来自不同来源的准确性。深度学习工具箱™中预训练网络的精度是标准的(top-1)精度,使用单一模型和单一中心图像裁剪。
要加载SqueezeNet网络,输入squeezenet
在命令行。
net =挤压;
对于其他网络,请使用如下功能googlenet
获取链接以从附加资源管理器下载掠夺网络。
下表列出了在Imageenet上培训的可用普试网络和其部分属性。网络深度被定义为从输入层到输出层的路径上的最大数量的顺序卷积或完全连接的图层。所有网络的输入都是RGB图像。
网络 | 深度 | 尺寸 | 参数(百万) | 图像输入大小 |
---|---|---|---|---|
squeezenet |
18. | 5.2 MB. |
1.24 | 227-by-227 |
googlenet |
22. | 27 MB. |
7.0 | 224-by-224 |
Inceptionv3. |
48. | 89 MB. |
23.9 | 299-by-299 |
densenet201 |
201. | 77 MB |
20.0 | 224-by-224 |
mobilenetv2 |
53. | 13 MB. |
3.5 | 224-by-224 |
resnet18 |
18. | 44 MB |
11.7 | 224-by-224 |
resnet50 |
50. | 96 MB. |
25.6 | 224-by-224 |
resnet101 |
101 | 167 MB. |
44.6 | 224-by-224 |
Xcepion. |
71 | 85 MB |
22.9 | 299-by-299 |
inceptionresnetv2 |
164 | 209 MB. |
55.9 | 299-by-299 |
Shuffleenet. |
50. | 5.4 MB. | 1.4 | 224-by-224 |
nasnetmobile. |
* | 20 MB. | 5.3 | 224-by-224 |
nasnetlarge. |
* | 332 MB. | 88.9 | 331-by-331 |
darknet19 |
19. | 78 MB. | 20.8 | 256年- 256年 |
Darknet53. |
53. | 155 MB | 41.6 | 256年- 256年 |
高效etb0. |
82 | 20 MB. | 5.3 | 224-by-224 |
alexnet |
8. | 227 MB. |
61.0 | 227-by-227 |
vgg16 |
16. | 515 MB |
138. | 224-by-224 |
vgg19 |
19. | 535 MB. |
144. | 224-by-224 |
* NASNet-Mobile和NASnet-大型网络不包括线性模块序列。
标准的GoogLeNet网络是在ImageNet数据集上训练的,但您也可以加载在Places365数据集上训练的网络[3][4].在Place365上培训的网络将图像分类为365个不同的地方类别,例如现场,公园,跑道和大厅。加载在Place365数据集的培训培训的预制Googlenet网络,使用googlenet(“重量”、“places365”)
.在执行转移学习时执行新任务时,最常见的方法是在想象集上使用预追溯的网络。如果新任务类似于分类场景,则使用在Place365上培训的网络可以提供更高的精度。
您可以使用备用网络加载和可视化掠夺网络深网络设计师.
DeepNetWorkDesigner(挤压)
要查看和编辑图层属性,选择一个图层。单击图层名称旁边的帮助图标获取有关图层属性的信息。
点击探索深网络设计师中的其他预磨损网络新的.
如果您需要下载网络,那么单击安装打开附加资源管理器。
特征提取是一种使用深度学习力量的简单而快速的方法,无需投入时间和精力来训练整个网络。因为它只需要对训练图像进行一次遍历,所以如果你没有GPU,它特别有用。你使用预先训练的网络提取学习的图像特征,然后使用这些特征来训练分类器,例如使用支持向量机金宝appfitcsvm
(统计和机器学习工具箱).
当您的新数据集非常小时,尝试功能提取。由于您只在提取的功能上培训一个简单的分类器,培训快速。网络的微调更深层次的网络也不太可能提高了精度,因为只有数据很少地学习。
如果您的数据与原始数据非常相似,那么从网络深处提取的更具体的特征可能对新任务有用。
如果您的数据与原始数据截然不同,那么在网络中提升的功能可能对任务不太有用。尝试在从早期网络层提取的更多一般功能上培训最终分类器。如果新数据集很大,那么您还可以尝试从头开始培训网络。
Resnets通常是良好的特征提取器。有关展示如何使用佩带网络进行功能提取的示例,请参阅使用掠夺网络提取图像特征.
您可以通过使用预先训练过的网络作为起点,在新的数据集中训练网络,从而对网络中的更深层次进行微调。用迁移学习对一个网络进行微调通常比构建和训练一个新网络更快、更容易。网络已经学习了一组丰富的图像特性,但是当您对网络进行微调时,它可以学习特定于新数据集的特性。如果你有一个非常大的数据集,那么迁移学习可能不会比从头开始训练更快。
提示
对网络进行微调通常可以获得最高的精度。对于非常小的数据集(每个类少于20张图像),尝试特征提取。
与简单的特征提取相比,微调网络速度更慢,需要更多的努力,但由于网络可以学习提取一组不同的特征,最终的网络往往更准确。只要新数据集不是很小,微调通常比特征提取工作得更好,因为这样网络就有数据可以学习新特征。有关如何进行迁移学习的示例,请参见使用深度网络设计师进行迁移学习和培训深度学习网络以分类新图像.
您可以从Tensorflow导入网络和网络架构®-Keras、Caffe和ONNX™(Open Neural Network Exchange)模型格式。您还可以将训练过的网络导出为ONNX模型格式。
通过使用从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模型导出或导入的其他深度学习框架互操作,例如Tensorflow,Pytorch,Caffe2,Microsoft金宝app®认知工具包(CNTK),核心ML和Apache MXNet™。
通过使用通过使用培训的深度学习工具箱网络到ONNX型号格式exportonnxnetwork.
函数。然后,您可以将ONNX模型导入支持Onxx Model导入的其他深度学习框架。金宝app
使用ONNX导入预先训练好的网络importonnxnetwork.
并使用或不使用重量导入网络架构importonnxLayers.
.
使用Deep Learning Toolbox与Audio Toolbox™一起使用Pretry Networks进行音频和语音处理应用程序。
Audio Toolbox提供备用的VAGATH和Yamnet网络。使用vggish
(音频工具箱)和yamnet
(音频工具箱)功能与磨粉网络直接交互。的classifySound
(音频工具箱)函数对yamnet进行必需的预处理和后处理,以便您可以将声音定位和分类为521个类别中的一个。您可以使用浏览yamnet本体yamnetgraph..
(音频工具箱)函数。的vggishFeatures
(音频工具箱)函数执行必要的预处理和后处理,以便VAGA出来,使您可以提取要嵌入的功能嵌入式以输入到机器学习和深度学习系统。有关使用深度学习进行音频应用的更多信息,请参阅深度学习介绍音频应用(音频工具箱).
使用VGGASH和YAMNET进行传输学习和功能提取。例如,看通过预先训练的音频网络进行迁移学习(音频工具箱).
要查找最新的佩带模型和示例,请参阅MATLAB深度学习(GitHub).
例如:
对于变压器模型,如GPT-2,BERT和FINGERT,请参阅MATLAB的变压器模型GitHub®存储库。
对于紫罗兰yolo-v4对象检测模型,如yolov4-coco和yolov4-tiny-coco,见用于物体检测的预制YOLO-V4网络github存储库。
[1]ImageNet.http://www.image-net.org.
[2] Russavsky,O.,Deng,J.,Su,H.等。“想象成大规模视觉认可挑战”。国际计算机愿景(IJCV).第115卷,第3,2015,第211-252页
[3]周,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
alexnet
|darknet19
|Darknet53.
|深网络设计师|densenet201
|exportonnxnetwork.
|googlenet
|ImportCaffelayers.
|ImportCaffenetwork.
|importKeraslayers.
|importKerasNetwork
|importonnxLayers.
|importonnxnetwork.
|inceptionresnetv2
|Inceptionv3.
|mobilenetv2
|nasnetlarge.
|nasnetmobile.
|resnet101
|resnet18
|resnet50
|Shuffleenet.
|squeezenet
|vgg16
|vgg19
|Xcepion.