Main Content

mobilenetv2

(不推荐)MobileNet-v2 卷积神经网络

  • MobileNet-v2 network architecture

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

说明

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

示例

net = mobilenetv2 返回基于 ImageNet 数据集训练的 MobileNet-v2 网络。

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

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

lgraph = mobilenetv2('Weights','none') 返回未经训练的 MobileNet-v2 网络架构。未经训练的模型不需要支持包。

示例

全部折叠

下载并安装 Deep Learning Toolbox Model for MobileNet-v2 Network 支持包。

在命令行中键入 mobilenetv2

mobilenetv2

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

mobilenetv2
ans = 

  DAGNetwork with properties:

         Layers: [155×1 nnet.cnn.layer.Layer]
    Connections: [164×2 table]

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

deepNetworkDesigner(mobilenetv2)

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

Deep Network Designer start page showing available pretrained neural networks

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

输出参量

全部折叠

预训练的 MobileNet-v2 卷积神经网络,以 DAGNetwork 对象形式返回。

未经训练的 MobileNet-v2 卷积神经网络架构,以 LayerGraph 对象形式返回。

参考

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

[2] Sandler, M., Howard, A., Zhu, M., Zhmoginov, A. and Chen, L.C. "MobileNetV2: Inverted Residuals and Linear Bottlenecks." In 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 4510-4520). IEEE.

扩展功能

版本历史记录

在 R2019a 中推出

全部折叠

R2024a: 不推荐

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

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

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

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

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

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

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

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

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

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

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