def METHOD_NAME(self, requests):
    """`execute` must be implemented in every Python model. `execute`
    function receives a list of pb_utils.InferenceRequest as the only
    argument. This function is called when an inference is requested
    for this model. Depending on the batching configuration (e.g. Dynamic
    Batching) used, `requests` may contain multiple requests. Every
    Python model, must create one pb_utils.InferenceResponse for every
    pb_utils.InferenceRequest in `requests`. If there is an error, you can
    set the error argument when creating a pb_utils.InferenceResponse.
    Parameters
    ----------
    requests : list
      A list of pb_utils.InferenceRequest
    Returns
    -------
    list
      A list of pb_utils.InferenceResponse. The length of this list must
      be the same as `requests`
    """
    responses = []
    # print("num:", len(requests), flush=True)
    for request in requests:
        data = pb_utils.get_input_tensor_by_name(request, self.input_names[0])
        data = data.as_numpy()
        data = 1 / (1 + (np.exp((-data[0]))))
        probs = []
        labels = []
        for l, p in enumerate(data):
            if p > 0.5:
                labels.append(l)
                probs.append(p)
        labels = np.array(labels, dtype=self.output_dtype[0])
        probs = np.array(probs, dtype=self.output_dtype[1])
        # print(labels, probs)
        out_tensor1 = pb_utils.Tensor(self.output_names[0], labels)
        out_tensor2 = pb_utils.Tensor(self.output_names[1], probs)
        inference_response = pb_utils.InferenceResponse(output_tensors=[out_tensor1, out_tensor2])
        responses.append(inference_response)
    return responses