Main Content

resnet18

(不推荐)ResNet-18 卷积神经网络

  • ResNet-18 network architecture

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

说明

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

net = resnet18 返回基于 ImageNet 数据集训练的 ResNet-18 网络。

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

示例

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

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

示例

全部折叠

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

在命令行中键入 resnet18

resnet18

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

resnet18
ans = 

  DAGNetwork with properties:

         Layers: [72×1 nnet.cnn.layer.Layer]
    Connections: [79×2 table]

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

deepNetworkDesigner(resnet18)

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

Deep Network Designer start page showing available pretrained neural networks

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

输出参量

全部折叠

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

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

参考

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

[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. “Deep Residual Learning for Image Recognition.” In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 770–78. Las Vegas, NV, USA: IEEE, 2016. https://doi.org/10.1109/CVPR.2016.90.

扩展功能

版本历史记录

在 R2018a 中推出

全部折叠

R2024a: 不推荐

不推荐使用 resnet18。请改用 imagePretrainedNetwork 函数,并将 "resnet18" 指定为模型。

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

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

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

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

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

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

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

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

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

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