FabianGroeger's picture
SkinMap: 12-teacher ensemble + predict_meta (validated release)
4fc0ad6
Raw
History Blame Contribute Delete
1.04 kB
from typing import Callable, Tuple
from torchvision import models as torchvision_models
from ....src.models.encoders.swin_transformer import swin_base, swin_small, swin_tiny
from ....src.models.encoders.vision_transformer import (
vit_base,
vit_large,
vit_small,
vit_tiny,
)
from ....src.models.utils import ModelType
VIT_DICT = {
"vit_tiny": vit_tiny,
"vit_small": vit_small,
"vit_base": vit_base,
"vit_large": vit_large,
"swin_tiny": swin_tiny,
"swin_small": swin_small,
"swin_base": swin_base,
}
def get_encoder_class(base_model_name: str) -> Tuple[Callable, ModelType]:
encoder_cls = VIT_DICT.get(base_model_name, None)
model_type = ModelType.VIT
if encoder_cls is None:
if base_model_name in torchvision_models.__dict__.keys():
encoder_cls = torchvision_models.__dict__[base_model_name]
model_type = ModelType.CNN
else:
raise ValueError(f"Invalid base model name: {base_model_name}")
return encoder_cls, model_type