def METHOD_NAME(self, model, sample, reduction="sum", log_probs=True):
    """Computes the cross entropy with accuracy metric for the given sample.
    This is similar to CrossEntropyCriterion in fairseq, but also
    computes accuracy metrics as part of logging
    Args:
        logprobs (Torch.tensor) of shape N, T, D i.e.
            batchsize, timesteps, dimensions
        targets (Torch.tensor) of shape N, T  i.e batchsize, timesteps
    Returns:
    tuple: With three elements:
        1) the loss
        2) the sample size, which is used as the denominator for the gradient
        3) logging outputs to display while training
    TODO:
        * Currently this Criterion will only work with LSTMEncoderModels or
        FairseqModels which have decoder, or Models which return TorchTensor
        as net_output.
        We need to make a change to support all FairseqEncoder models.
    """
    net_output = model(**sample["net_input"])
    target = model.get_targets(sample, net_output)
    lprobs, loss = self.compute_loss(
        model, net_output, target, reduction, log_probs
    )
    sample_size, logging_output = self.get_logging_output(
        sample, target, lprobs, loss
    )
    return loss, sample_size, logging_output