丁云鹏 4 ay önce
ebeveyn
işleme
d98a689dfb

+ 1 - 1
recommend-model-produce/src/main/python/models/dssm/bq_reader_train_ps.py

@@ -45,7 +45,7 @@ class DSSMReader(MultiSlotDataGenerator):
                 
                 # 构建输出列表
                 output = []
-                #output.append(("sample_id", [sample_id]))  # 样本ID
+                output.append(("sample_id", [sample_id]))  # 样本ID
                 output.append(("left_features", left_features))   # 左视频特征
 
                 

+ 2 - 2
recommend-model-produce/src/main/python/models/dssm/net.py

@@ -175,11 +175,11 @@ class DSSMLayer(nn.Layer):
         return paddle.concat(embedded_features, axis=1)
 
 
-    def forward(self, left_features, right_features, is_infer=False):
+    def forward(self, vid, left_features, right_features, is_infer=False):
         # paddle.static.Print(left_features, message="left_features shape and value:")
         if is_infer:
             left_vec = self.get_leftvectors(left_features)
-            return left_vec
+            return vid, left_vec
         else:
             # 获取两个视频的特征表示      
             left_vec, right_vec = self.get_vectors(left_features, right_features)

+ 6 - 5
recommend-model-produce/src/main/python/models/dssm/static_model.py

@@ -68,9 +68,9 @@ class StaticModel():
             feeds_list.append(right_features)
 
         else:
-            #sample_id = paddle.static.data(
-            #    name="sample_id", shape=[-1, 1], dtype='int64')
-            #feeds_list.append(sample_id)     
+            sample_id = paddle.static.data(
+               name="sample_id", shape=[-1, 1], dtype='int64')
+            feeds_list.append(sample_id)     
             left_features = paddle.static.data(
                 name="left_features", shape=[-1, self.input_dim], dtype='float32')
             feeds_list.append(left_features)
@@ -91,11 +91,12 @@ class StaticModel():
         )
         
         if is_infer:
-            left_features = input[0]
+            vid, left_features = input
             left_vec = dssm_model(left_features,None,is_infer=True)
             self.inference_target_var = left_vec
             fetch_dict = {
-                'left_vector': left_vec
+                'left_vector': left_vec,
+                'vid': vid
             }
             return fetch_dict
         else:

+ 12 - 12
recommend-model-produce/src/main/python/tools/static_ps_infer_v2.py

@@ -51,20 +51,20 @@ logger = logging.getLogger(__name__)
 import json
 
 class InferenceFetchHandler(FetchHandler):
-    def __init__(self, var_dict, batch_size=1000):
+    def __init__(self, var_dict, output_file, batch_size=1000):
         super().__init__(var_dict=var_dict, period_secs=1)
-        # self.output_file = output_file
-        # self.batch_size = batch_size
-        # self.current_batch = []
-        # self.total_samples = 0
+        self.output_file = output_file
+        self.batch_size = batch_size
+        self.current_batch = []
+        self.total_samples = 0
         
-        # # 创建输出目录(如果不存在)
-        # output_dir = os.path.dirname(output_file)
-        # if not os.path.exists(output_dir):
-        #     os.makedirs(output_dir)
-        # # 创建或清空输出文件
-        # with open(self.output_file, 'w') as f:
-        #     f.write('')
+        # 创建输出目录(如果不存在)
+        output_dir = os.path.dirname(output_file)
+        if not os.path.exists(output_dir):
+            os.makedirs(output_dir)
+        # 创建或清空输出文件
+        with open(self.output_file, 'w') as f:
+            f.write('')
     
     def handler(self, fetch_vars):
         super().handler(res_dict=fetch_vars)