Main Content

vgg19

(不推荐)VGG-19 卷积神经网络

  • VGG-19 network architecture

不建议使用 vgg19。请改用 imagePretrainedNetwork 函数并指定 "vgg19" 模型。有关详细信息,请参阅版本历史记录

说明

VGG-19 是深度为 19 层的卷积神经网络。您可以从 ImageNet 数据库 [1] 中加载该网络的预训练版本,该版本基于 ImageNet 数据库的超过一百万个图像进行训练。该预训练网络可以将图像分类至 1000 个目标类别(例如键盘、鼠标、铅笔和多种动物)。因此,该网络已基于大量图像学习了丰富的特征表示。该网络的图像输入大小为 224×224。有关 MATLAB® 中预训练网络的详细信息,请参阅预训练的深度神经网络

示例

net = vgg19 返回基于 ImageNet 数据集训练的 VGG-19 网络。

此函数需要 Deep Learning Toolbox™ Model for VGG-19 Network 支持包。如果未安装此支持包,则函数会提供下载链接。

net = vgg19('Weights','imagenet') 返回基于 ImageNet 数据集训练的 VGG-19 网络。此语法等效于 net = vgg19

layers = vgg19('Weights','none') 返回未经训练的 VGG-19 网络架构。未经训练的模型不需要支持包。

示例

全部折叠

此示例说明如何下载和安装 Deep Learning Toolbox Model for VGG-19 Network 支持包。

在命令行中键入 vgg19

vgg19

如果未安装 Deep Learning Toolbox Model for VGG-19 Network 支持包,该函数将在附加功能资源管理器中提供所需支持包的链接。要安装支持包,请点击链接,然后点击安装。通过在命令行中键入 vgg19 来检查安装是否成功。

vgg19
ans = 

  SeriesNetwork with properties:

    Layers: [47×1 nnet.cnn.layer.Layer]

使用深度网络设计器可视化网络。

deepNetworkDesigner(vgg19)

通过点击新建,在深度网络设计器中浏览其他预训练神经网络。

Deep Network Designer start page showing available pretrained neural networks

如果需要下载一个神经网络,请在所需的神经网络上暂停,然后点击安装以打开附加功能资源管理器。

输出参量

全部折叠

预训练的 VGG-19 卷积神经网络,以 SeriesNetwork 对象形式返回。

未经训练的 VGG-19 卷积神经网络架构,以 Layer 数组形式返回。

参考

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

[2] Russakovsky, O., Deng, J., Su, H., et al. “ImageNet Large Scale Visual Recognition Challenge.” International Journal of Computer Vision (IJCV). Vol 115, Issue 3, 2015, pp. 211–252

[3] Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).

[4] Very Deep Convolutional Networks for Large-Scale Visual Recognition http://www.robots.ox.ac.uk/~vgg/research/very_deep/

扩展功能

版本历史记录

在 R2017a 中推出

全部折叠

R2024a: 不推荐

不建议使用 vgg19。请改用 imagePretrainedNetwork 函数,并将 "vgg19" 指定为模型。

目前没有停止支持 vgg19 函数的计划。但是,imagePretrainedNetwork 函数具有额外的功能,可以帮助执行迁移学习工作流。例如,您可以使用 numClasses 选项指定数据中的类数量,该函数将返回一个无需进行修改即可用于重新训练的网络。

imagePretrainedNetwork 函数返回该网络作为 dlnetwork 对象,该对象不存储类名称。要获取预训练网络的类名称,请使用 imagePretrainedNetwork 函数的第二个输出参量。

下表显示了 vgg19 函数的一些典型用法,以及如何更新您的代码以改用 imagePretrainedNetwork 函数。

不推荐推荐
net = vgg19;[net,classNames] = imagePretrainedNetwork("vgg19");
net = vgg19(Weights="none");net = imagePretrainedNetwork("vgg19",Weights="none");

imagePretrainedNetwork 返回一个 dlnetwork 对象,该对象也具有以下优点:

  • dlnetwork 对象是一种统一的数据类型,支持网络构建、预测、内置训练、可视化、压缩、验证和自定义训练循环。

  • dlnetwork 对象支持更广泛的网络架构,您可以创建或从外部平台导入这些网络架构。

  • trainnet 函数支持 dlnetwork 对象,这使您能够轻松指定损失函数。您可以从内置损失函数中进行选择或指定自定义损失函数。

  • 使用 dlnetwork 对象进行训练和预测通常比使用 LayerGraphtrainNetwork 工作流更快。

要训练指定为 dlnetwork 对象的神经网络,请使用 trainnet 函数。