(self, linear_feature_columns, dnn_feature_columns, bilinear_type='interaction',
reduction_ratio=3, dnn_hidden_units=(128, 128), l2_reg_linear=1e-5,
l2_reg_embedding=1e-5, l2_reg_dnn=0, init_std=0.0001, seed=1024, dnn_dropout=0, dnn_activation='relu',
task='binary', device='cpu', gpus=None)
| 37 | """ |
| 38 | |
| 39 | def __init__(self, linear_feature_columns, dnn_feature_columns, bilinear_type='interaction', |
| 40 | reduction_ratio=3, dnn_hidden_units=(128, 128), l2_reg_linear=1e-5, |
| 41 | l2_reg_embedding=1e-5, l2_reg_dnn=0, init_std=0.0001, seed=1024, dnn_dropout=0, dnn_activation='relu', |
| 42 | task='binary', device='cpu', gpus=None): |
| 43 | super(FiBiNET, self).__init__(linear_feature_columns, dnn_feature_columns, l2_reg_linear=l2_reg_linear, |
| 44 | l2_reg_embedding=l2_reg_embedding, init_std=init_std, seed=seed, task=task, |
| 45 | device=device, gpus=gpus) |
| 46 | self.linear_feature_columns = linear_feature_columns |
| 47 | self.dnn_feature_columns = dnn_feature_columns |
| 48 | self.field_size = len(self.embedding_dict) |
| 49 | self.SE = SENETLayer(self.field_size, reduction_ratio, seed, device) |
| 50 | self.Bilinear = BilinearInteraction(self.field_size, self.embedding_size, bilinear_type, seed, device) |
| 51 | self.dnn = DNN(self.compute_input_dim(dnn_feature_columns), dnn_hidden_units, |
| 52 | activation=dnn_activation, l2_reg=l2_reg_dnn, dropout_rate=dnn_dropout, use_bn=False, |
| 53 | init_std=init_std, device=device) |
| 54 | self.dnn_linear = nn.Linear(dnn_hidden_units[-1], 1, bias=False).to(device) |
| 55 | |
| 56 | def compute_input_dim(self, feature_columns, include_sparse=True, include_dense=True): |
| 57 | sparse_feature_columns = list( |
nothing calls this directly
no test coverage detected