CoolFace
Modelpublic

glasses/dummy

sourceHugging Faceupdated 5y agoView on Hugging Face
0likes211downloads
Model Card

ResNet

Implementation of ResNet proposed in Deep Residual Learning for Image Recognition

python
 ResNet.resnet18()
 ResNet.resnet26()
 ResNet.resnet34()
 ResNet.resnet50()
 ResNet.resnet101()
 ResNet.resnet152()
 ResNet.resnet200()

 Variants (d) proposed in `Bag of Tricks for Image Classification with Convolutional Neural Networks <https://arxiv.org/pdf/1812.01187.pdf`_

 ResNet.resnet26d()
 ResNet.resnet34d()
 ResNet.resnet50d()
 # You can construct your own one by chaning `stem` and `block`
 resnet101d = ResNet.resnet101(stem=ResNetStemC, block=partial(ResNetBottleneckBlock, shortcut=ResNetShorcutD))

Examples:

python
  # change activation
  ResNet.resnet18(activation = nn.SELU)
  # change number of classes (default is 1000 )
  ResNet.resnet18(n_classes=100)
  # pass a different block
  ResNet.resnet18(block=SENetBasicBlock)
  # change the steam
  model = ResNet.resnet18(stem=ResNetStemC)
  change shortcut
  model = ResNet.resnet18(block=partial(ResNetBasicBlock, shortcut=ResNetShorcutD))
  # store each feature
  x = torch.rand((1, 3, 224, 224))
  # get features
  model = ResNet.resnet18()
  # first call .features, this will activate the forward hooks and tells the model you'll like to get the features
  model.encoder.features
  model(torch.randn((1,3,224,224)))
  # get the features from the encoder
  features = model.encoder.features
  print([x.shape for x in features])
  #[torch.Size([1, 64, 112, 112]), torch.Size([1, 64, 56, 56]), torch.Size([1, 128, 28, 28]), torch.Size([1, 256, 14, 14])]