GLINT-CT / vision_encoders.py
seongeun-lee's picture
Release GLINT-CT
c5a246d
Raw History Blame Contribute Delete
962 Bytes
import torch.nn as nn
from transformers import Dinov2Config, Dinov2Model, DINOv3ViTConfig, DINOv3ViTModel, VJEPA2Config, VJEPA2Model
def _hf_config(config_class, config):
fields = config.to_dict()
fields.pop("model_type", None)
return config_class(**fields)
def build_vision_encoder(config):
if config.model_type == "dinov2":
model = Dinov2Model(_hf_config(Dinov2Config, config))
nn.init.trunc_normal_(model.embeddings.mask_token, std=0.02)
elif config.model_type == "dinov3_vit":
model = DINOv3ViTModel(_hf_config(DINOv3ViTConfig, config))
nn.init.trunc_normal_(model.embeddings.mask_token, std=0.02)
elif config.model_type == "vjepa2":
model = VJEPA2Model(_hf_config(VJEPA2Config, config))
elif config.model_type == "vjepa2.1":
from .vjepa21_encoder import VJEPA21Encoder
model = VJEPA21Encoder(config)
else:
raise NotImplementedError()
return model