Download model.py from Alexis92/RockPaper: direct link, hf CLI and curl.
- Browser
- Download file 1.02 kB
-
https://huggingface.co/spaces/Alexis92/RockPaper/resolve/main/model.py
- Command line
-
hf download hf://spaces/Alexis92/RockPaper/model.py
-
curl -L -o model.py https://huggingface.co/spaces/Alexis92/RockPaper/resolve/main/model.py
1.02 kB
| import torch | |
| import torchvision | |
| def create_effnet_b2_model(num_classes:int = 3): | |
| """Creates an EfficientNetB2 feature extractor model and transforms | |
| Args: | |
| num_classes (int, optional): number of classes in the classifier head. Defaults to 3. | |
| Returns: | |
| model (torch.nn.Module): EfficientNetB2 feature extractor model | |
| transforms (torchvision.transforms): EfficientNetB2 image transforms. | |
| """ | |
| # Get pretrained weights and use them for model, get transforms from them | |
| weights = torchvision.models.EfficientNet_B2_Weights.DEFAULT | |
| transforms = weights.transforms() | |
| model = torchvision.models.efficientnet_b2(weights=weights) | |
| # Freeze all layers in base model | |
| for param in model.parameters(): | |
| param.requires_grad = False | |
| # Change classifier head | |
| model.classifier = torch.nn.Sequential( | |
| torch.nn.Dropout(p = 0.3, inplace= True), | |
| torch.nn.Linear(in_features=1408, out_features=num_classes) | |
| ) | |
| return model, transforms |