Main Content

alexnet

(不推荐)AlexNet 卷积神经网络

  • AlexNet network architecture

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

说明

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

有关实际深度学习方法的免费实践课程,请参阅深度学习入门之旅

示例

net = alexnet 返回基于 ImageNet 数据集训练的 AlexNet 网络。

此函数需要 Deep Learning Toolbox™ Model for AlexNet Network 支持包。如果未安装此支持包,函数会提供下载链接。或者,参阅 Deep Learning Toolbox Model for AlexNet Network

有关 MATLAB 中预训练网络的详细信息,请参阅预训练的深度神经网络

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

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

示例

全部折叠

下载并安装 Deep Learning Toolbox Model for AlexNet Network 支持包。

在命令行中键入 alexnet

alexnet

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

alexnet
ans = 

  SeriesNetwork with properties:

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

如果安装了所需的支持包,则该函数返回 SeriesNetwork 对象。

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

deepNetworkDesigner(alexnet)

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

Deep Network Designer start page showing available pretrained neural networks

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

输出参量

全部折叠

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

未经训练的 AlexNet 卷积神经网络架构,以 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] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386

[4] BVLC AlexNet Model. https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet

扩展功能

版本历史记录

在 R2017a 中推出

全部折叠

R2024a: 不推荐

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

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

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

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

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

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

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

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

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

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

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