Browse Source

add video rank

linfan 1 year ago
parent
commit
4a4907c801
1 changed files with 13 additions and 1 deletions
  1. 13 1
      video_rank.py

+ 13 - 1
video_rank.py

@@ -963,15 +963,23 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
     recall_list.append(recall_pos3)
     recall_list.append(recall_pos4)
     select_ids = set('')
+    recall_num_limit_dict = {}
+    if exp_config.get('recall_num_limit'):
+        recall_num_limit_dict = exp_config['recall_num_limit']
+    exp_recall_dict = {}
     for j in range(3):
         if len(rov_recall_rank)>12:
             break
         for recall_pos_config in recall_list:
             rand_num = random.random()
-            print("rand_num:", rand_num)
+            #print("rand_num:", rand_num)
             for per_recall_item in recall_pos_config:
                 per_recall_name = per_recall_item[0]
                 per_recall_freq = per_recall_item[1]
+                per_recall_num = exp_recall_dict.get(per_recall_name, 0)
+                per_recall_total_num = recall_num_limit_dict.get(per_recall_name, 0)
+                if len(recall_num_limit_dict)>0 and per_recall_num>= per_recall_total_num:
+                    continue
                 if rand_num < per_recall_freq and per_recall_name in recall_dict:
                     per_recall = recall_dict[per_recall_name]
                     for recall_item in per_recall:
@@ -981,6 +989,10 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
                         recall_item['rand'] = rand_num
                         rov_recall_rank.append(recall_item)
                         select_ids.add(vid)
+                        if per_recall_name in exp_recall_dict:
+                            exp_recall_dict[per_recall_name] +=1
+                        else:
+                            exp_recall_dict[per_recall_name] += 1
                         break
     print("rov_recall_rank:", rov_recall_rank)
     if len(rov_recall_rank)<4: