layout | background-class | body-class | title | summary | category | image | author | tags | github-link | featured_image_1 | featured_image_2 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pytorch_hub_detail |
pytorch-hub-background |
pytorch-hub |
Densenet |
Dense Convolutional Network (DenseNet), connects each layer to every other layer in a feed-forward fashion. |
researchers |
pytorch-logo.png |
Pytorch Team |
|
densenet1.png |
densenet2.png |
Dense Convolutional Network (DenseNet), connects each layer to every other layer in a feed-forward fashion. Whereas traditional convolutional networks with L layers have L connections - one between each layer and its subsequent layer - our network has L(L+1)/2 direct connections. For each layer, the feature-maps of all preceding layers are used as inputs, and its own feature-maps are used as inputs into all subsequent layers. DenseNets have several compelling advantages: they alleviate the vanishing-gradient problem, strengthen feature propagation, encourage feature reuse, and substantially reduce the number of parameters.
The 1-crop error rates on the imagenet dataset with the pretrained model are listed below.
Model structure | Top-1 error | Top-5 error |
---|---|---|
densenet121 | 25.35 | 7.83 |
densenet169 | 24.00 | 7.00 |
densenet201 | 22.80 | 6.43 |
densenet161 | 22.35 | 6.20 |
All pre-trained models expect input images normalized in the same way,
i.e. mini-batches of 3-channel RGB images of shape (3 x H x W)
, where H
and W
are expected to be at least 224
.
The images have to be loaded in to a range of [0, 1]
and then normalized using mean = [0.485, 0.456, 0.406]
and std = [0.229, 0.224, 0.225]
. You can use the following transform to normalize:
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
import torch
model = torch.hub.load('pytorch/vision', 'densenet121', pretrained=True)
model = torch.hub.load('pytorch/vision', 'densenet169', pretrained=True)
model = torch.hub.load('pytorch/vision', 'densenet201', pretrained=True)
model = torch.hub.load('pytorch/vision', 'densenet161', pretrained=True)