Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
KMaxPooling, SequencePoolingLayer,WeightedSequenceLayer,
Transformer, DynamicGRU)
from .utils import NoMask, Hash,Linear,Add
custom_objects = {'tf': tf,
'InnerProductLayer': InnerProductLayer,
'OutterProductLayer': OutterProductLayer,
'DNN': DNN,
'PredictionLayer': PredictionLayer,
'FM': FM,
'AFMLayer': AFMLayer,
'CrossNet': CrossNet,
'BiInteractionPooling': BiInteractionPooling,
'LocalActivationUnit': LocalActivationUnit,
'Dice': Dice,
'SequencePoolingLayer': SequencePoolingLayer,
'AttentionSequencePoolingLayer': AttentionSequencePoolingLayer,
'CIN': CIN,
'InteractingLayer': InteractingLayer,
'LayerNormalization': LayerNormalization,
'BiLSTM': BiLSTM,
'Transformer': Transformer,
'NoMask': NoMask,
'BiasEncoding': BiasEncoding,
'KMaxPooling': KMaxPooling,
'FGCNNLayer': FGCNNLayer,
'Hash': Hash,
'Linear':Linear,
'DynamicGRU': DynamicGRU,
'SENETLayer':SENETLayer,
'BilinearInteraction':BilinearInteraction,
'WeightedSequenceLayer':WeightedSequenceLayer,
feature_length_name = fc.length_name
if feature_length_name is not None:
if fc.weight_name is not None:
seq_input = WeightedSequenceLayer()(
[embedding_dict[feature_name], features[feature_length_name], features[fc.weight_name]])
else:
seq_input = embedding_dict[feature_name]
vec = SequencePoolingLayer(combiner, supports_masking=False)(
[seq_input, features[feature_length_name]])
else:
if fc.weight_name is not None:
seq_input = WeightedSequenceLayer(supports_masking=True)(
[embedding_dict[feature_name], features[fc.weight_name]])
else:
seq_input = embedding_dict[feature_name]
vec = SequencePoolingLayer(combiner, supports_masking=True)(
seq_input)
pooling_vec_list[fc.group_name].append(vec)
if to_list:
return chain.from_iterable(pooling_vec_list.values())
return pooling_vec_list
def feature_embedding(fc_i, fc_j, embedding_dict, input_feature):
fc_i_embedding = embedding_dict[fc_i.name][fc_j.name](input_feature)
if isinstance(fc_i, SparseFeat):
return NoMask()(fc_i_embedding)
else:
return SequencePoolingLayer(fc_i.combiner, supports_masking=True)(fc_i_embedding)
def get_pooling_vec_list(sequence_embed_dict, sequence_len_dict, sequence_max_len_dict, sequence_fd_list):
if sequence_max_len_dict is None or sequence_len_dict is None:
return [SequencePoolingLayer(feat.combiner, supports_masking=True)(sequence_embed_dict[feat.name]) for feat in
sequence_fd_list]
else:
return [SequencePoolingLayer(feat.combiner, supports_masking=False)(
[sequence_embed_dict[feat.name], sequence_len_dict[feat.name]]) for feat in sequence_fd_list]