dariussasarman's picture
Update model.py
90dd800 verified
Raw
History Blame Contribute Delete
1.14 kB
import torch
import torch.nn as nn
import numpy as np
import os
from torchvision import transforms
from torchvision.models import resnet18, ResNet18_Weights
class ResNet18_M3(nn.Module):
def __init__(self):
super().__init__()
self.model = resnet18(weights=ResNet18_Weights.DEFAULT)
self.model.fc = nn.Sequential(
nn.Linear(self.model.fc.in_features, 200),
nn.ReLU(),
nn.Dropout(p=0.3),
nn.Linear(200, 100),
nn.ReLU(),
nn.Dropout(p=0.3),
nn.Linear(100, 10)
)
def forward(self, x):
return self.model(x)
@staticmethod
def get_instance():
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
weights_path = os.path.join(os.path.dirname(__file__), "resnet18_m3_best.pth")
model = ResNet18_M3().to(DEVICE)
checkpoint = torch.load(
weights_path,
map_location=DEVICE,
weights_only=False
)
model.load_state_dict(checkpoint["model_state_dict"])
model.eval()
return model