darknet53 - (Not recommended) DarkNet-53 convolutional neural network - MATLAB (original) (raw)
(Not recommended) DarkNet-53 convolutional neural network
Syntax
Description
DarkNet-53 is a convolutional neural network that is 53 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 256-by-256. For more pretrained networks in MATLAB®, see Pretrained Deep Neural Networks.
DarkNet-53 is often used as the foundation for object detection problems and YOLO workflows [2]. For an example of how to train a you only look once (YOLO) v2 object detector, see Object Detection Using YOLO v2 Deep Learning. This example uses ResNet-50 for feature extraction. You can also use other pretrained networks such as DarkNet-19, DarkNet-53, MobileNet-v2, or ResNet-18 depending on application requirements.
[net](#mw%5Ff6b3850d-2df5-42e7-b08a-7ce8915a9fe1) = darknet53
returns a DarkNet-53 network trained on the ImageNet data set.
This function requires the Deep Learning Toolbox™ Model for DarkNet-53 Network support package. If this support package is not installed, then the function provides a download link.
[net](#mw%5Ff6b3850d-2df5-42e7-b08a-7ce8915a9fe1) = darknet53('Weights',`'imagenet'`)
returns a DarkNet-53 network trained on the ImageNet data set. This syntax is equivalent to net = darknet53
.
[lgraph](#mw%5F4c7f0bcc-cdce-4c9f-a57c-a78723abeb03) = darknet53('Weights',`'none'`)
returns the untrained DarkNet-53 network architecture. The untrained model does not require the support package.
Examples
Download and install the Deep Learning Toolbox Model for DarkNet-53 Network support package.
Type darknet53
at the command line.
If the Deep Learning Toolbox Model for DarkNet-53 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 typingdarknet53
at the command line. If the required support package is installed, then the function returns a DAGNetwork object.
ans =
DAGNetwork with properties:
Layers: [184×1 nnet.cnn.layer.Layer]
Connections: [206×2 table]
InputNames: {'input'}
OutputNames: {'output'}
Visualize the network using Deep Network Designer.
deepNetworkDesigner(darknet53)
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.
Output Arguments
Pretrained DarkNet-53 convolutional neural network, returned as a DAGNetwork object.
Untrained DarkNet-53 convolutional neural network architecture, returned as aLayerGraph object.
References
[1] ImageNet. http://www.image-net.org.
[2] Redmon, Joseph. “Darknet: Open Source Neural Networks in C.” https://pjreddie.com/darknet.
Extended Capabilities
Usage notes and limitations:
For code generation, you can load the network by using the syntax net = darknet53
or by passing the darknet53
function to coder.loadDeepLearningNetwork (MATLAB Coder). For example: net = coder.loadDeepLearningNetwork('darknet53')
The syntax darknet53('Weights','none')
is not supported for code generation.
Usage notes and limitations:
- For code generation, you can load the network by using the syntax
net = darknet53
or by passing thedarknet53
function tocoder.loadDeepLearningNetwork (GPU Coder). For example:net = coder.loadDeepLearningNetwork('darknet53')
.
For more information, see Load Pretrained Networks for Code Generation (GPU Coder). - The syntax
darknet53('Weights','none')
is not supported for GPU code generation.
Version History
Introduced in R2020a
darknet53
is not recommended. Use the imagePretrainedNetwork function instead and specify"darknet53"
as the model.
There are no plans to remove support for the darknet53
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 darknet53
function and how to update your code to use theimagePretrainedNetwork
function instead.
Not Recommended | Recommended |
---|---|
net = darknet53; | [net,classNames] = imagePretrainedNetwork("darknet53"); |
net = darknet53(Weights="none"); | net = imagePretrainedNetwork("darknet53",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 the trainnet function.