Main Content

alexnet

(Not recommended) AlexNet convolutional neural network

  • AlexNet network architecture

alexnet is not recommended. Use the imagePretrainedNetwork function instead and specify the "alexnet" model. For more information, see Version History.

Description

AlexNet is a convolutional neural network that is 8 layers deep. You can load a pretrained version of the network trained on more than a million images from the ImageNet database [1]. The pretrained network can classify images into 1000 object categories, such as keyboard, mouse, pencil, and many animals. As a result, the network has learned rich feature representations for a wide range of images. The network has an image input size of 227-by-227. For more pretrained networks in MATLAB®, see Pretrained Deep Neural Networks.

For a free hands-on introduction to practical deep learning methods, see Deep Learning Onramp.

example

net = alexnet returns an AlexNet network trained on the ImageNet data set.

This function requires Deep Learning Toolbox™ Model for AlexNet Network support package. If this support package is not installed, the function provides a download link. Alternatively, see Deep Learning Toolbox Model for AlexNet Network.

For more pretrained networks in MATLAB, see Pretrained Deep Neural Networks.

net = alexnet('Weights','imagenet') returns an AlexNet network trained on the ImageNet data set. This syntax is equivalent to net = alexnet.

layers = alexnet('Weights','none') returns the untrained AlexNet network architecture. The untrained model does not require the support package.

Examples

collapse all

Download and install Deep Learning Toolbox Model for AlexNet Network support package.

Type alexnet at the command line.

alexnet

If Deep Learning Toolbox Model for AlexNet Network support package is not installed, then the function provides a link to the required support package in the Add-On Explorer. To install the support package, click the link, and then click Install. Check that the installation is successful by typing alexnet at the command line.

alexnet
ans = 

  SeriesNetwork with properties:

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

If the required support package is installed, then the function returns a SeriesNetwork object.

Visualize the network using Deep Network Designer.

deepNetworkDesigner(alexnet)

Explore other pretrained neural networks in Deep Network Designer by clicking New.

Deep Network Designer start page showing available pretrained neural networks

If you need to download a neural network, pause on the desired neural network and click Install to open the Add-On Explorer.

Output Arguments

collapse all

Pretrained AlexNet convolutional neural network, returned as a SeriesNetwork object.

Untrained AlexNet convolutional neural network architecture, returned as a Layer array.

Tips

References

[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

Extended Capabilities

Version History

Introduced in R2017a

collapse all

R2024a: Not Recommended

alexnet is not recommended. Use the imagePretrainedNetwork function instead and specify "alexnet" as the model.

There are no plans to remove support for the alexnet function. However, the imagePretrainedNetwork function has additional functionality that helps with transfer learning workflows. For example, you can specify the number of classes in your data using the numClasses option, and the function returns a network that is ready for retraining without the need for modification.

The imagePretrainedNetwork function returns the network as a dlnetwork object, which does not store the class names, To get the class names of the pretrained network, use the second output argument of the imagePretrainedNetwork function.

This table shows some typical usages of the alexnet function and how to update your code to use the imagePretrainedNetwork function instead.

Not RecommendedRecommended
net = alexnet;[net,classNames] = imagePretrainedNetwork("alexnet");
net = alexnet(Weights="none");net = imagePretrainedNetwork("alexnet",Weights="none");

The imagePretrainedNetwork returns a dlnetwork object, which also has these advantages:

  • dlnetwork objects are a unified data type that supports network building, prediction, built-in training, visualization, compression, verification, and custom training loops.

  • dlnetwork objects support a wider range of network architectures that you can create or import from external platforms.

  • The trainnet function supports dlnetwork objects, which enables you to easily specify loss functions. You can select from built-in loss functions or specify a custom loss function.

  • Training and prediction with dlnetwork objects is typically faster than LayerGraph and trainNetwork workflows.

To train a neural network specified as a dlnetwork object, use the trainnet function.