Spaces:
Sleeping
Sleeping
File size: 920 Bytes
cfbb05a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import torch.nn as nn
import torchvision.models as models
class SwinTClassifier(nn.Module):
def __init__(self, num_classes, transfer_learning=True):
super(SwinTClassifier, self).__init__()
if transfer_learning:
self.swin_transformer = models.swin_b(
weights=models.Swin_B_Weights.IMAGENET1K_V1
)
else:
self.swin_transformer = models.swin_b(weights=None)
# Modify the classifier head
self.swin_transformer.head = nn.Sequential(
nn.Linear(self.swin_transformer.head.in_features, 1024),
nn.ReLU(),
nn.BatchNorm1d(1024),
nn.Dropout(p=0.4),
nn.Linear(1024, 256),
nn.ReLU(),
nn.BatchNorm1d(256),
nn.Dropout(p=0.2),
nn.Linear(256, num_classes),
)
def forward(self, x):
return self.swin_transformer(x) |