code: def symbol_top(body_output, targets, model_hparams, vocab_size):
    
    del targets  # unused arg
    if model_hparams.shared_embedding_and_softmax_weights:
      scope_name = "shared"
      reuse = tf.AUTO_REUSE
    else:
      scope_name = "softmax"
      reuse = False
    with tf.variable_scope(scope_name, reuse=reuse):
      body_output_shape = common_layers.shape_list(body_output)
      var = get_weights(model_hparams, vocab_size, body_output_shape[-1])
      if (model_hparams.factored_logits and
          model_hparams.mode == tf.estimator.ModeKeys.TRAIN):
        # insert channels dimension
        body_output = tf.expand_dims(body_output, 3)
        return common_layers.FactoredTensor(body_output, var)
      else:
        body_output = tf.reshape(body_output, [-1, body_output_shape[-1]])
        logits = tf.matmul(body_output, var, transpose_b=True)
        return tf.reshape(logits,
                          body_output_shape[:-1] + [1, vocab_size])
docs: Generate logits.
  
    Args:
      body_output: A Tensor with shape
        [batch, p0, p1, model_hparams.hidden_size].
      targets: Unused.
      model_hparams: HParams, model hyperparmeters.
      vocab_size: int, vocabulary size.
  
    Returns:
      logits: A Tensor with shape  [batch, p0, p1, ?, vocab_size].