Bläddra i källkod

Merge branch 'sim_pos_rank_20230625' of algorithm/rov-server into master

linfan 1 år sedan
förälder
incheckning
c75cdc37b2
2 ändrade filer med 17 tillägg och 8 borttagningar
  1. 12 3
      video_rank.py
  2. 5 5
      video_recall.py

+ 12 - 3
video_rank.py

@@ -973,21 +973,29 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
     if exp_config and 'recall_num_limit' in exp_config:
         recall_num_limit_dict = exp_config['recall_num_limit']
     exp_recall_dict = {}
+   #index_pos = 0
     for j in range(3):
         if len(rov_recall_rank)>12:
             break
+        # choose pos
         for recall_pos_config in recall_list:
             rand_num = random.random()
-            #print("rand_num:", rand_num)
+            index_pos = 0
+            # choose pos recall
             for per_recall_item in recall_pos_config:
+                if index_pos == 1:
+                    break
+                if len(per_recall_item)<3:
+                    continue
                 per_recall_name = per_recall_item[0]
-                per_recall_freq = per_recall_item[1]
+                per_recall_min = float(per_recall_item[1])
+                per_recall_max = float(per_recall_item[2])
                 per_recall_num = exp_recall_dict.get(per_recall_name, 0)
                 per_recall_total_num = recall_num_limit_dict.get(per_recall_name, 0)
                 # recall set total num
                 if len(recall_num_limit_dict)>0 and per_recall_total_num>0 and per_recall_num>= per_recall_total_num:
                     continue
-                if rand_num < per_recall_freq and per_recall_name in recall_dict:
+                if rand_num >= per_recall_min and rand_num < per_recall_max and per_recall_name in recall_dict:
                     per_recall = recall_dict[per_recall_name]
                     for recall_item in per_recall:
                         vid = recall_item['videoId']
@@ -1000,6 +1008,7 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
                             exp_recall_dict[per_recall_name] +=1
                         else:
                             exp_recall_dict[per_recall_name] = 1
+                        index_pos = 1
                         break
     #print("rov_recall_rank:", rov_recall_rank)
     if len(rov_recall_rank)<4:

+ 5 - 5
video_recall.py

@@ -2574,7 +2574,7 @@ class PoolRecall(object):
             return None
 
     def get_w2v_config(self):
-        recall_key = "w2v_exp_config_pos"
+        recall_key = "w2v_exp_config_pos_range"
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
         if data is not None:
             try:
@@ -2603,7 +2603,7 @@ class PoolRecall(object):
             return None
 
     def get_simrecall_config_new(self):
-        recall_key = "simrecall_exp_config_pos_new"
+        recall_key = "simrecall_exp_config_range"
         #print("recall_key:", recall_key)
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
         if data is not None:
@@ -2632,7 +2632,7 @@ class PoolRecall(object):
             return None
 
     def get_U2I_config(self):
-        recall_key = "u2i_exp_config_pos"
+        recall_key = "u2i_exp_config_pos_range"
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
         if data is not None:
             try:
@@ -2646,7 +2646,7 @@ class PoolRecall(object):
             return None
 
     def get_u2u2i_config(self):
-        recall_key = "u2u2i_exp_config"
+        recall_key = "u2u2i_exp_config_range"
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
         if data is not None:
             try:
@@ -2817,7 +2817,7 @@ class PoolRecall(object):
         return recall_result
 
     def get_video_recall_config(self):
-        recall_key = "vr_exp_pos_config"
+        recall_key = "vr_exp_pos_config_range"
         data = self.redis_helper.get_data_from_redis(key_name=recall_key)
         if data is not None:
             try: