Commit 2a67dcdf authored by YaningGao's avatar YaningGao
Browse files

update dino model logic

parent fdd76df7
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -46,6 +46,13 @@ def calculate_code_efficiency(gt_code, gen_code):
    score = 0.8 * ratio
    return max(score, 0.0)
  
_model_cache = {}

def get_model(model_size, device="cuda"):
    cache_key = f"{model_size}_{device}"
    if cache_key not in _model_cache:
        _model_cache[cache_key] = DINOScoreCalculator(model_size=model_size, device=device)
    return _model_cache[cache_key]

#@TODO make it into class?
def calculate_total_score(gt_im, gen_im, gt_code, gen_code, score_config):
@@ -72,7 +79,7 @@ def calculate_total_score(gt_im, gen_im, gt_code, gen_code, score_config):
    dino_only = score_config.get("dino_only", False)

    if score_config.dino_weight != 0:
        reward_model = DINOScoreCalculator(model_size=model_size, device="cuda")
        reward_model = get_model(model_size)
        dino_score = reward_model.calculate_DINOv2_similarity_score(gt_im=gt_im, gen_im=gen_im)
    
    if dino_only:
+8 −1
Original line number Diff line number Diff line
@@ -46,6 +46,13 @@ def calculate_code_efficiency(gt_code, gen_code):
    score = 0.8 * ratio
    return max(score, 0.0)

_model_cache = {}

def get_model(model_size, device="cuda"):
    cache_key = f"{model_size}_{device}"
    if cache_key not in _model_cache:
        _model_cache[cache_key] = DINOScoreCalculator(model_size=model_size, device=device)
    return _model_cache[cache_key]

#@TODO make it into class?
def calculate_total_score(gt_im, gen_im, gt_code, gen_code, score_config):
@@ -71,7 +78,7 @@ def calculate_total_score(gt_im, gen_im, gt_code, gen_code, score_config):
    model_size = score_config.get("model_size", "large")
    dino_only = score_config.get("dino_only", False)

    reward_model = DINOScoreCalculator(model_size=model_size, device="cuda")
    reward_model = get_model(model_size)
    dino_score = reward_model.calculate_DINOv2_similarity_score(gt_im=gt_im, gen_im=gen_im)
    
    if dino_only: