Spaces:
Sleeping
Sleeping
| import torch | |
| import torch.nn as nn | |
| import torchvision.models as models | |
| from src import config | |
| from torchvision.models import mobilenet_v2 | |
| class TrashNetClassifier(nn.Module): | |
| def __init__(self, num_classes=config.NUM_CLASSES): | |
| super(TrashNetClassifier, self).__init__() | |
| self.backbone = mobilenet_v2(pretrained=True) | |
| if config.FREEZE_BACKBONE: | |
| for param in list(self.backbone.parameters())[:-8]: | |
| param.requires_grad = False | |
| in_features = self.backbone.classifier[1].in_features | |
| self.backbone.classifier = nn.Identity() | |
| self.classifier = nn.Sequential( | |
| nn.Dropout(config.DROPOUT_RATE), | |
| nn.Linear(in_features, num_classes) | |
| ) | |
| def forward(self, x): | |
| x = self.backbone(x) | |
| x = self.classifier(x) | |
| return x |