import torch import torch.nn as nn import torchvision.models as models class ResNet18(nn.Module): def __init__(self, num_classes=15): super(ResNet18, self).__init__() self.model = models.resnet18(weights=models.ResNet18_Weights.DEFAULT) # Replace the last fully connected layer self.model.fc = nn.Linear(self.model.fc.in_features, num_classes) def forward(self, x): x = self.model.conv1(x) x = self.model.bn1(x) x = self.model.relu(x) x = self.model.maxpool(x) x = self.model.layer1(x) x = self.model.layer2(x) x = self.model.layer3(x) x = self.model.layer4(x) x = self.model.avgpool(x) x = torch.flatten(x, 1) # <-- here torch.flatten is used, so torch must be imported x = self.model.fc(x) return x