def build(self, input_shape): dnn_hidden = [int(h) for h in self.flags.deep_layers.split(',')] cin_hidden = [int(h) for h in self.flags.cin_layers.split(',')] self.fm_block = self.build_fm() self.linear_block = Linear() self.dnn_block = self.build_deep(dnn_hidden) self.cin_block = self.build_cin(cin_hidden)
def build(self, input_shape): n, p = input_shape self.linear_block = Linear() # interaction factors, randomly initialized self.kernel = self.add_weight(shape=(self.k, p), initializer='random_normal', trainable=True)
def build(self, input_shape): dnn_hidden = [int(h) for h in self.flags.deep_layers.split(',')] cin_hidden = [int(h) for h in self.flags.cin_layers.split(',')] self.embeddingsize = self.flags.embed_dim self.numbericfeaturescnt = len(self.NUMERICAL_FEATURES) self.fm_block = self.build_fm() self.linear_block = Linear() self.dnn_block = self.build_deep(dnn_hidden) self.cin_block = self.build_cin(cin_hidden)
def build(self, input_shape): self.linear_part = Linear() self.field_nums = len(input_shape) index = 0 self.field_dict = {} for idx, val in enumerate(input_shape): if val in self.NUMERICAL_FEATURES: self.field_dict[index] = idx index += 1 if val in self.CATEGORY_FEATURES: for i in range(self.voc_emb_size[val][1]): self.field_dict[index] = idx index += 1 self.total_dims = len(self.field_dict) self.kernel = self.add_weight('v', shape=[self.total_dims, self.field_nums, self.k], initializer=tf.keras.initializers.TruncatedNormal(mean=0, stddev=0.01))
def build_wide(self, hidden=1): return Linear(hidden)
def build_linear(self, hidden=1): return Linear(hidden)