code: def bleu_score(predictions, labels, **unused_kwargs):
    
    outputs = tf.to_int32(tf.argmax(predictions, axis=-1))
    # Convert the outputs and labels to a [batch_size, input_length] tensor.
    outputs = tf.squeeze(outputs, axis=[-1, -2])
    labels = tf.squeeze(labels, axis=[-1, -2])
  
    bleu = tf.py_func(compute_bleu, (labels, outputs), tf.float32)
    return bleu, tf.constant(1.0)
docs: BLEU score computation between labels and predictions.
  
    An approximate BLEU scoring method since we do not glue word pieces or
    decode the ids and tokenize the output. By default, we use ngram order of 4
    and use brevity penalty. Also, this does not have beam search.
  
    Args:
      predictions: tensor, model predictions
      labels: tensor, gold output.
  
    Returns:
      bleu: int, approx bleu score