added two modfels
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
@@ -85,10 +86,17 @@ class Model(ABC):
|
||||
case Architecture.DENSENET121:
|
||||
from architectures.DenseNet121 import DenseNet121
|
||||
return DenseNet121(device, size)
|
||||
# googleNet
|
||||
case Architecture.GOOGLENET:
|
||||
from architectures.GoogleNet import GoogleNet
|
||||
return GoogleNet(device, size)
|
||||
# EfficientNet
|
||||
case Architecture.EFFICIENTNET:
|
||||
from architectures.EfficentNet import EfficientNet
|
||||
return EfficientNet(device, size)
|
||||
case _:
|
||||
raise ValueError(f"Unknown model: {arch}")
|
||||
|
||||
|
||||
# model architectures
|
||||
from enum import Enum, auto
|
||||
|
||||
@@ -96,4 +104,6 @@ class Architecture(Enum):
|
||||
RESNET18 = auto()
|
||||
RESNET50 = auto()
|
||||
INCEPTION = auto()
|
||||
DENSENET121 = auto()
|
||||
DENSENET121 = auto()
|
||||
GOOGLENET = auto()
|
||||
EFFICIENTNET = auto()
|
||||
@@ -11,12 +11,12 @@ class ResNet18(Model):
|
||||
m = models.resnet18(weights=models.ResNet18_Weights.DEFAULT)
|
||||
|
||||
# freez all layers
|
||||
for param in m.parameters():
|
||||
param.requires_grad = False
|
||||
#for param in m.parameters():
|
||||
# param.requires_grad = False
|
||||
|
||||
# unfreez the last two
|
||||
for param in m.layer3.parameters(): param.requires_grad = True
|
||||
for param in m.layer4.parameters(): param.requires_grad = True
|
||||
#for param in m.layer3.parameters(): param.requires_grad = True
|
||||
#for param in m.layer4.parameters(): param.requires_grad = True
|
||||
|
||||
m.fc = nn.Linear(m.fc.in_features, self.size)
|
||||
return m.to(self.device)
|
||||
Reference in New Issue
Block a user