Example #1
0
    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()
Example #2
0
    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
Example #3
0
    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