class
DenseNetForImageClassification
extends
PretrainedModelClassificationHeadMixinDenseNetForImageClassification(config: DenseNetConfig)DenseNet image classifier (backbone + GAP + linear head).
Combines a DenseNet backbone with a global-average-pool
and a single lucid.nn.Linear classifier producing
config.num_classes logits. When labels are supplied to
forward, a categorical cross-entropy loss is returned
alongside the logits.
Parameters
configDenseNetConfigArchitecture spec. Use the
*_cls factory functions
(densenet_121_cls, densenet_169_cls, …) for the
paper-cited variants.Attributes
configDenseNetConfigStored copy of the config that built this model.
features_FeaturesSame dense feature stack as on
DenseNet.avgpoolnn.AdaptiveAvgPool2dGlobal average pool to .
classifiernn.LinearFinal linear projection
features.num_features →
num_classes.Notes
From Huang et al., "Densely Connected Convolutional Networks", CVPR 2017. Loss is the standard categorical cross-entropy
DenseNet's parameter efficiency makes it particularly attractive for embedded / on-device deployment: DenseNet-121 reaches the same ImageNet top-1 accuracy as ResNet-50 with roughly one-third the parameter budget.
Examples
>>> import lucid
>>> from lucid.models.vision.densenet import densenet_121_cls
>>> model = densenet_121_cls()
>>> x = lucid.randn(2, 3, 224, 224)
>>> out = model(x)
>>> out.logits.shape
(2, 1000)Used by 2
Constructors
1Instance methods
1forward(x: Tensor, labels: Tensor | None = None)