class_docstr: Autoencoder-augmented Transformer.
class_docstr_tok: ["Autoencoder-augmented","Transformer","."]
code: def body(self, features):
      inputs = features["inputs"] if "inputs" in features else None
      if self._hparams.drop_inputs:
          inputs = None
      reuse = "cache_raw" in features
      with tf.variable_scope(tf.get_variable_scope(), reuse=reuse):
          (
              res,
              loss,
              _,
              self._data_dim,
              self._latent_dim,
          ) = ae_transformer_internal(
              inputs,
              features["targets"],
              features["target_space_id"],
              self._hparams,
              features.get("cache_raw", None),
              predict_mask=self.predict_mask,
          )
          return res, loss
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import functools
  import math
  import os
  from six.moves import range
  from tensor2tensor.layers import common_attention
  from tensor2tensor.layers import common_image_attention
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import discretization
  from tensor2tensor.layers import latent_layers
  from tensor2tensor.layers import modalities
  from tensor2tensor.models import transformer
  from tensor2tensor.utils import beam_search
  from tensor2tensor.utils import contrib
  from tensor2tensor.utils import expert_utils
  from tensor2tensor.utils import registry
  from tensor2tensor.utils import t2t_model
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
label_desc: Use image node_id 2 for calling the TransformerAE obj's underlying member method code with example usage: obj.body(features) and returns: res,  loss