resnet50 - (Not recommended) ResNet-50 convolutional neural network - MATLAB (original) (raw)

(Not recommended) ResNet-50 convolutional neural network

Syntax

Description

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

[net](#d126e226791) = resnet50 returns a ResNet-50 neural network trained on the ImageNet data set.

This function requires the Deep Learning Toolbox™ Model for ResNet-50 Network support package. If this support package is not installed, then the function provides a download link.

example

[net](#d126e226791) = resnet50('Weights',`'imagenet'`) returns a ResNet-50 neural network trained on the ImageNet data set. This syntax is equivalent to net = resnet50.

[lgraph](#mw%5F16c5c30b-d920-432a-b24f-1accf0f67ffa) = resnet50('Weights',`'none'`) returns the untrained ResNet-50 neural network architecture. The untrained model does not require the support package.

Examples

collapse all

Download and install the Deep Learning Toolbox Model for ResNet-50 Network support package.

Type resnet50 at the command line.

If the Deep Learning Toolbox Model for ResNet-50 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 resnet50 at the command line. If the required support package is installed, then the function returns a DAGNetwork object.

ans =

DAGNetwork with properties:

     Layers: [177×1 nnet.cnn.layer.Layer]
Connections: [192×2 table]

Visualize the neural network using Deep Network Designer.

deepNetworkDesigner(resnet50)

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 ResNet-50 convolutional neural network, returned as a DAGNetwork object.

Untrained ResNet-50 convolutional neural network architecture, returned as a LayerGraph object.

References

[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.

Extended Capabilities

expand all

For code generation, you can load the neural network by using the syntaxnet = resnet50 or by passing theresnet50 function to coder.loadDeepLearningNetwork (MATLAB Coder). For example: net = coder.loadDeepLearningNetwork('resnet50')

For more information, see Load Pretrained Networks for Code Generation (MATLAB Coder).

The syntax resnet50('Weights','none') is not supported for code generation.

Usage notes and limitations:

Version History

Introduced in R2017b

collapse all

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

There are no plans to remove support for the resnet50 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 thenumClasses 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 resnet50 function and how to update your code to use theimagePretrainedNetwork function instead.

Not Recommended Recommended
net = resnet50; [net,classNames] = imagePretrainedNetwork("resnet50");
net = resnet50(Weights="none"); net = imagePretrainedNetwork("resnet50",Weights="none");

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

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