def METHOD_NAME(
    self,
    inputs: Tuple[torch.Tensor, torch.Tensor],
    targets: Tuple[torch.Tensor, torch.Tensor],
) -> torch.Tensor:
    """Computes RNNT loss.
    All inputs are moved to the GPU with :py:meth:`torch.nn.Module.cuda` if
    :py:func:`torch.cuda.is_available` was :py:data:`True` on
    initialisation.
    Args:
        inputs: A tuple where the first element is the unnormalized network
            :py:class:`torch.Tensor` outputs of size ``[batch, max_seq_len,
            max_output_seq_len + 1, vocab_size + 1)``. The second element
            is a Tuple of two :py:class:`torch.Tensor`s both of
            size ``[batch]`` that contain the lengths of a) the audio features
            logits and b) the target sequence logits.
        targets: A tuple where the first element is a
            :py:class:`torch.Tensor` such that each entry in the target
            sequence is a class index. Target indices cannot be the blank
            index. It must have size ``[batch, max_seq_len]``. In the former
            form each target sequence is padded to the length of the longest
            sequence and stacked.
            The second element is a :py:class:`torch.Tensor` that gives
            the lengths of the targets. Lengths are specified for each
            sequence to achieve masking under the assumption that sequences
            are padded to equal lengths.
    """
    logits, logit_lens = inputs
    y, y_lens = targets
    # cast to required types
    if logits.dtype != torch.float:
        logits_orig = logits
        logits = logits.float()
        del logits_orig  # save memory *before* computing the loss
    if y.dtype != torch.int32:
        y = y.int()
    if logit_lens.dtype != torch.int32:
        logit_lens = logit_lens.int()
    if y_lens.dtype != torch.int32:
        y_lens = y_lens.int()
    # send to gpu
    if self.use_cuda:
        logits = logits.cuda()
        logit_lens = logit_lens.cuda()
        y = y.cuda()
        y_lens = y_lens.cuda()
    loss = self.rnnt_loss(
        acts=logits, labels=y, act_lens=logit_lens, label_lens=y_lens
    )
    # del new variables that may have been created due to float/int/cuda()
    del logits, y, logit_lens, y_lens, inputs, targets
    return loss