def build_graph(self, **kwargs): user_sparse_inputs = { uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.user_sparse_feature_columns } item_sparse_inputs = { uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.item_sparse_feature_columns } model = Model(inputs=[user_sparse_inputs, item_sparse_inputs], outputs=self.call( [user_sparse_inputs, item_sparse_inputs])) model.__setattr__("user_input", user_sparse_inputs) model.__setattr__("item_input", item_sparse_inputs) model.__setattr__("user_embed", self.user_dnn_out) model.__setattr__("item_embed", self.item_dnn_out) return model # def model_test(): # user_features = [{'feat': 'user_id', 'feat_num': 100, 'feat_len': 1, 'embed_dim': 8}] # item_features = [{'feat': 'item_id', 'feat_num': 100, 'feat_len': 1, 'embed_dim': 8}] # model = Dssm(user_features, item_features) # model.build_graph() # # model_test()
def build_graph(self, **kwargs): user_sparse_inputs = { uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.user_sparse_feature_columns } item_sparse_inputs = { uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.item_sparse_feature_columns } hist_item_sparse_inputs = [{ uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.hist_item_sparse_feature_columns } for i in range(self.hist_len)] labels_inputs = Input(shape=(1, ), dtype=tf.int32) model = Model(inputs=[ user_sparse_inputs, item_sparse_inputs, hist_item_sparse_inputs, labels_inputs ], outputs=self.call([ user_sparse_inputs, item_sparse_inputs, hist_item_sparse_inputs, labels_inputs ])) model.__setattr__("user_input", user_sparse_inputs) model.__setattr__("item_input", item_sparse_inputs) model.__setattr__("user_embeding", self.user_embedding) model.__setattr__("item_embeding", self.item_embedding) return model
def summary(self, **kwargs): user_sparse_inputs = {uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.user_sparse_feature_columns} item_sparse_inputs = {uf['feat']: Input(shape=(1, ), dtype=tf.float32) for uf in self.item_sparse_feature_columns} labels_inputs = Input(shape=(1,), dtype=tf.int32) model = Model(inputs=[user_sparse_inputs, item_sparse_inputs, labels_inputs], outputs=self.call([user_sparse_inputs, item_sparse_inputs, labels_inputs])) model.__setattr__("user_input", user_sparse_inputs) model.__setattr__("item_input", item_sparse_inputs) model.__setattr__("user_embeding", self.user_dnn_out) model.__setattr__("item_embeding", self.item_dnn_out) model.summary() return model