easy_rec/python/protos/layer.proto (131 lines of code) (raw):

syntax = "proto2"; package protos; import "easy_rec/python/protos/dnn.proto"; message HighWayTower { optional string input = 1; required uint32 emb_size = 2; required string activation = 3 [default = 'relu']; optional float dropout_rate = 4; optional float init_gate_bias = 5 [default = -3.0]; optional uint32 num_layers = 6 [default = 1]; } message PeriodicEmbedding { required uint32 embedding_dim = 1; required float sigma = 2; optional bool add_linear_layer = 3 [default = true]; optional string linear_activation = 4 [default = 'relu']; optional bool output_3d_tensor = 5; optional bool output_tensor_list = 6; } message AutoDisEmbedding { required uint32 embedding_dim = 1; required uint32 num_bins = 2; required float keep_prob = 3 [default = 0.8]; required float temperature = 4; optional bool output_3d_tensor = 5; optional bool output_tensor_list = 6; } message NaryDisEmbedding { required uint32 embedding_dim = 1; repeated uint32 carries = 2; optional float multiplier = 3 [default = 1.0]; optional string intra_ary_pooling = 4 [default = 'sum']; // for now, inter_ary_pooling not support yet optional string inter_ary_pooling = 5 [default = 'concat']; optional bool output_3d_tensor = 6 [default = false]; optional bool output_tensor_list = 7; optional uint32 num_replicas = 8 [default = 1]; } message SENet { required uint32 reduction_ratio = 1 [default = 4]; optional uint32 num_squeeze_group = 2 [default = 2]; optional bool use_skip_connection = 3 [default = true]; optional bool use_output_layer_norm = 4 [default = true]; } message Bilinear { required string type = 1 [default = 'interaction']; required bool use_plus = 2 [default = true]; required uint32 num_output_units = 3; } message FiBiNet { optional Bilinear bilinear = 1; required SENet senet = 2; optional MLP mlp = 8; } message MaskBlock { optional float reduction_factor = 1; optional uint32 output_size = 2; optional uint32 aggregation_size = 3; optional bool input_layer_norm = 4 [default = false]; optional uint32 projection_dim = 5; } message MaskNet { repeated MaskBlock mask_blocks = 1; required bool use_parallel = 2 [default = true]; optional MLP mlp = 3; optional bool input_layer_norm = 4 [default = true]; } message MMoELayer { // number of tasks required uint32 num_task = 1; // mmoe expert mlp layer definition optional MLP expert_mlp = 2; // number of mmoe experts optional uint32 num_expert = 3; } // used in CDN model message WeightedGate { optional uint32 weight_index = 1 [default = 0]; optional MLP mlp = 2; } // used in PPNet message GateNN { optional uint32 output_dim = 1; optional uint32 hidden_dim = 2; // activation function optional string activation = 3 [default = 'relu']; // use batch normalization optional bool use_bn = 4 [default = false]; optional float dropout_rate = 5; } message PPNet { required MLP mlp = 1; required GateNN gate_params = 2; // run mode: eager, lazy required string mode = 3 [default = 'eager']; optional bool full_gate_input = 4 [default = true]; } message TextCNN { repeated uint32 filter_sizes = 1; repeated uint32 num_filters = 2; required uint32 pad_sequence_length = 3; optional string activation = 4 [default = 'relu']; optional MLP mlp = 5; } message OverlapFeature { optional string separator = 1; optional string default_value = 2; repeated string methods = 3; optional string normalize_fn = 4; repeated float boundaries = 5; optional int32 embedding_dim = 6; optional int32 print_first_n = 7 [default = 0]; optional int32 summarize = 8; } message MappedDotProduct { optional string separator = 1; optional float default_value = 2; optional string normalize_fn = 3; repeated float boundaries = 4; optional int32 embedding_dim = 5; optional int32 print_first_n = 6 [default = 0]; optional int32 summarize = 7; } message AITMTower { optional uint32 project_dim = 1; optional MLP transfer_mlp = 2; optional bool stop_gradient = 3 [default = true]; } message CIN { repeated int32 hidden_feature_sizes = 1; }