| 6 | |
| 7 | |
| 8 | class DeepCrossing(Model): |
| 9 | def __init__(self, feature_columns, k, hidden_units, res_layer_num): |
| 10 | super(DeepCrossing, self).__init__() |
| 11 | self.dense_feature_columns, self.sparse_feature_columns = feature_columns |
| 12 | self.embed_layer = Embed_layer(k, self.sparse_feature_columns) |
| 13 | self.res_layer = [Res_layer(hidden_units) for _ in range(res_layer_num)] |
| 14 | self.output_layer = MyDense(1, activation="sigmoid") |
| 15 | |
| 16 | def call(self, inputs, training=None, mask=None): |
| 17 | dense_inputs, sparse_inputs = inputs[:, :13], inputs[:, 13:] |
| 18 | emb = self.embed_layer(sparse_inputs) |
| 19 | x = tf.concat([dense_inputs, emb], axis=-1) |
| 20 | x = sgx.en_crypt(x) |
| 21 | for layer in self.res_layer: |
| 22 | x = layer(x) |
| 23 | output = sgx.de_crypt(self.output_layer(x)) |
| 24 | return output |