Training Techniques | Nesterov Accelerated Gradient, Weight Decay, Kaiming Initialization |
---|---|
Architecture | 1x1 Convolution, Average Pooling, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax |
ID | densenet121 |
SHOW MORE |
Training Techniques | Nesterov Accelerated Gradient, Weight Decay, Kaiming Initialization |
---|---|
Architecture | 1x1 Convolution, Average Pooling, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax |
ID | densenet161 |
SHOW MORE |
Training Techniques | Nesterov Accelerated Gradient, Weight Decay, Kaiming Initialization |
---|---|
Architecture | 1x1 Convolution, Average Pooling, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax |
ID | densenet169 |
SHOW MORE |
Training Techniques | Nesterov Accelerated Gradient, Weight Decay, Kaiming Initialization |
---|---|
Architecture | 1x1 Convolution, Average Pooling, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax |
ID | densenet201 |
SHOW MORE |
Architecture | 1x1 Convolution, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax, Blur Pooling |
---|---|
ID | densenetblur121d |
SHOW MORE |
Training Techniques | SGD with Momentum, Weight Decay |
---|---|
Architecture | 1x1 Convolution, Average Pooling, Batch Normalization, Convolution, Dense Block, Dropout, Dense Connections, ReLU, Max Pooling, Softmax |
ID | tv_densenet121 |
SHOW MORE |
DenseNet is a type of convolutional neural network that utilises dense connections between layers, through Dense Blocks, where we connect all layers (with matching feature-map sizes) directly with each other. To preserve the feed-forward nature, each layer obtains additional inputs from all preceding layers and passes on its own feature-maps to all subsequent layers.
The DenseNet Blur variant in this collection by Ross Wightman employs Blur Pooling
To load a pretrained model:
import timm
m = timm.create_model('densenet121', pretrained=True)
m.eval()
Replace the model name with the variant you want to use, e.g. densenet121
. You can find the IDs in the model summaries at the top of this page.
You can follow the timm recipe scripts for training a new model afresh.
@article{DBLP:journals/corr/HuangLW16a,
author = {Gao Huang and
Zhuang Liu and
Kilian Q. Weinberger},
title = {Densely Connected Convolutional Networks},
journal = {CoRR},
volume = {abs/1608.06993},
year = {2016},
url = {http://arxiv.org/abs/1608.06993},
archivePrefix = {arXiv},
eprint = {1608.06993},
timestamp = {Mon, 10 Sep 2018 15:49:32 +0200},
biburl = {https://dblp.org/rec/journals/corr/HuangLW16a.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@misc{rw2019timm,
author = {Ross Wightman},
title = {PyTorch Image Models},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = {10.5281/zenodo.4414861},
howpublished = {\url{https://github.com/rwightman/pytorch-image-models}}
}
MODEL | TOP 1 ACCURACY | TOP 5 ACCURACY |
---|---|---|
densenet161 | 77.36% | 93.63% |
densenet201 | 77.29% | 93.48% |
densenetblur121d | 76.59% | 93.2% |
densenet169 | 75.9% | 93.02% |
densenet121 | 75.56% | 92.65% |
tv_densenet121 | 74.74% | 92.15% |