Pretrained ShuffleNet convolutional neural network
ShuffleNet is a convolutional neural network that is trained on more than a million images from the ImageNet database . The 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 224-by-224. For more pretrained networks in MATLAB®, see Pretrained Deep Neural Networks.
To retrain the network on a new classification task, follow the steps of Train Deep Learning Network to Classify New Images and load ShuffleNet instead of GoogLeNet.
Download ShuffleNet Support Package
Download and install the Deep Learning Toolbox Model for ShuffleNet Network support package.
shufflenet at the command line.
If the Deep Learning Toolbox Model for ShuffleNet 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
shufflenet at the command line. If the required support package
is installed, then the function returns a
ans = DAGNetwork with properties: Layers: [173×1 nnet.cnn.layer.Layer] Connections: [188×2 table]
Visualize the network using Deep Network Designer.
Explore other pretrained networks in Deep Network Designer by clicking New.
If you need to download a network, pause on the desired network and click Install to open the Add-On Explorer.
Transfer Learning with ShuffleNet
You can use transfer learning to retrain the network to classify a new set of images.
Open the example Train Deep Learning Network to Classify New Images. The original example uses the GoogLeNet pretrained network. To perform transfer learning using a different network, load your desired pretrained network and follow the steps in the example.
Load the ShuffleNet network instead of GoogLeNet.
net = shufflenet
Follow the remaining steps in the example to retrain your network. You must replace the last learnable layer and the classification layer in your network with new layers for training. The example shows you how to find which layers to replace.
 ImageNet. http://www.image-net.org
 Zhang, Xiangyu, Xinyu Zhou, Mengxiao Lin, and Jian Sun. "ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices." arXiv preprint arXiv:1707.01083v2 (2017).