googlenet - (Not recommended) GoogLeNet convolutional neural network - MATLAB (original) (raw)
(Not recommended) GoogLeNet convolutional neural network
Syntax
Description
GoogLeNet is a convolutional neural network that is 22 layers deep. You can load a pretrained version of the network trained on either the ImageNet [1] or Places365 [2] [3] data sets. The network trained on ImageNet classifies images into 1000 object categories, such as keyboard, mouse, pencil, and many animals. The network trained on Places365 is similar to the network trained on ImageNet, but classifies images into 365 different place categories, such as field, park, runway, and lobby. These networks have learned different feature representations for a wide range of images. The pretrained networks both have an image input size of 224-by-224. For more pretrained networks in MATLAB®, see Pretrained Deep Neural Networks.
[net](#d126e106380) = googlenet
returns a GoogLeNet network trained on the ImageNet data set.
This function requires the Deep Learning Toolbox™ Model for GoogLeNet Network support package. If this support package is not installed, then the function provides a download link.
[net](#d126e106380) = googlenet('Weights',[weights](#mw%5F9332be29-9918-4f51-ad70-370c369a7ac2))
returns a GoogLeNet network trained on either the ImageNet or Places365 data set. The syntax googlenet('Weights','imagenet')
(default) is equivalent togooglenet
.
The network trained on ImageNet requires the Deep Learning Toolbox Model for GoogLeNet Network support package. The network trained on Places365 requires the Deep Learning Toolbox Model for Places365-GoogLeNet Network support package. If the required support package is not installed, then the function provides a download link.
[lgraph](#mw%5Ff7e31a10-81ac-409c-8507-7578665651cd) = googlenet('Weights',`'none'`)
returns the untrained GoogLeNet network architecture. The untrained model does not require the support package.
Examples
Download GoogLeNet Support Package
Download and install the Deep Learning Toolbox Model for GoogLeNet Network support package.
Type googlenet
at the command line.
If the Deep Learning Toolbox Model for GoogLeNet 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 clickInstall. Check that the installation is successful by typinggooglenet
at the command line. If the required support package is installed, then the function returns a DAGNetwork object.
ans =
DAGNetwork with properties:
Layers: [144×1 nnet.cnn.layer.Layer]
Connections: [170×2 table]
Visualize the network using Deep Network Designer.
deepNetworkDesigner(googlenet)
Explore other pretrained neural networks in Deep Network Designer by clicking New.
If you need to download a neural network, pause on the desired neural network and click Install to open the Add-On Explorer.
Input Arguments
weights
— Source of network parameters
'imagenet'
(default) | 'places365'
| 'none'
Source of network parameters, specified as 'imagenet'
,'places365'
, or 'none'
.
- If
weights
equals'imagenet'
, then the network has weights trained on the ImageNet data set. - If
weights
equals'places365'
, then the network has weights trained on the Places365 data set. - If
weights
equals'none'
, then the untrained network architecture is returned.
Example: 'places365'
Output Arguments
net
— Pretrained GoogLeNet convolutional neural network
DAGNetwork
object
Pretrained GoogLeNet convolutional neural network, returned as a DAGNetwork object.
lgraph
— Untrained GoogLeNet convolutional neural network architecture
LayerGraph
object
Untrained GoogLeNet convolutional neural network architecture, returned as a LayerGraph object.
References
[1] ImageNet. http://www.image-net.org.
[2] Zhou, Bolei, Aditya Khosla, Agata Lapedriza, Antonio Torralba, and Aude Oliva. "Places: An image database for deep scene understanding." arXiv preprint arXiv:1610.02055 (2016).
[3] Places. http://places2.csail.mit.edu/
[4] Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. “Going Deeper with Convolutions.” In 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 1–9. Boston, MA, USA: IEEE, 2015. https://doi.org/10.1109/CVPR.2015.7298594.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
For code generation, you can load the network by using the syntax net = googlenet
or by passing the googlenet
function to coder.loadDeepLearningNetwork (MATLAB Coder). For example: net = coder.loadDeepLearningNetwork('googlenet')
For more information, see Load Pretrained Networks for Code Generation (MATLAB Coder).
The syntax googlenet('Weights','none')
is not supported for code generation.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
- For code generation, you can load the network by using the syntax
net = googlenet
or by passing thegooglenet
function tocoder.loadDeepLearningNetwork (GPU Coder). For example:net = coder.loadDeepLearningNetwork('googlenet')
.
For more information, see Load Pretrained Networks for Code Generation (GPU Coder). - The syntax
googlenet('Weights','none')
is not supported for GPU code generation.
Version History
Introduced in R2017b
R2024a: Not Recommended
googlenet
is not recommended. Use the imagePretrainedNetwork function instead and specify"googlenet"
as the model.
There are no plans to remove support for the googlenet
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.
This table shows some typical usages of the googlenet
function and how to update your code to use the imagePretrainedNetwork
function instead.
Not Recommended | Recommended |
---|---|
net = googlenet; | net = imagePretrainedNetwork("googlenet"); |
net = googlenet(Weights="places365"); | net = imagePretrainedNetwork("googlenet-places365") |
net = googlenet(Weights="none"); | net = imagePretrainedNetwork("googlenet",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 thanLayerGraph
andtrainNetwork
workflows.
To train a neural network specified as a dlnetwork
object, use thetrainnet function.