def METHOD_NAME(self, input, is_infer=False):
    self.sparse_inputs = input[1:self.sparse_inputs_slot]
    self.dense_input = input[-1]
    self.label_input = input[0]
    sparse_number = self.sparse_inputs_slot - 1
    assert sparse_number == len(self.sparse_inputs)
    xdeepfm_model = xDeepFMLayer(
        self.sparse_feature_number, self.sparse_feature_dim,
        self.dense_input_dim, sparse_number, self.layer_sizes_cin,
        self.layer_sizes_dnn)
    pred = xdeepfm_model.forward(self.sparse_inputs, self.dense_input)
    #pred = F.sigmoid(prediction)
    predict_2d = paddle.concat(x=[1 - pred, pred], axis=1)
    auc, batch_auc_var, _ = paddle.static.auc(input=predict_2d,
                                              label=self.label_input,
                                              slide_steps=0)
    self.inference_target_var = auc
    if is_infer:
        fetch_dict = {'auc': auc}
        return fetch_dict
    cost = paddle.nn.functional.log_loss(
        input=pred, label=paddle.cast(
            self.label_input, dtype="float32"))
    avg_cost = paddle.mean(x=cost)
    self._cost = avg_cost
    fetch_dict = {'cost': avg_cost, 'auc': auc}
    return fetch_dict