class_docstr: T2T implementation of Residual Shuffle-Exchange network.
class_docstr_tok: ["T2T","implementation","of","Residual","Shuffle-Exchange","network","."]
docstr: Body of Residual Shuffle-Exchange network.
  
  Args:
    features: dictionary of inputs and targets
  
  Returns:
    the network output.
docstr_tok: ["Body","of","Residual","Shuffle-Exchange","network",".","Args",":","features",":","dictionary","of","inputs","and","targets","Returns",":","the","network","output","."]
code: def body(self, features):
      """Body of Residual Shuffle-Exchange network.
  
      Args:
        features: dictionary of inputs and targets
  
      Returns:
        the network output.
      """
  
      inputs = tf.squeeze(features["inputs"], axis=2)
      logits = residual_shuffle_network(inputs, self._hparams)
      return tf.expand_dims(logits, axis=2)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  from tensor2tensor.layers.common_layers import gelu
  from tensor2tensor.models.research.shuffle_network import reverse_shuffle_layer
  from tensor2tensor.models.research.shuffle_network import shuffle_layer
  from tensor2tensor.models.research.shuffle_network import ShuffleNetwork
  from tensor2tensor.utils import registry
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
label_desc: Use image node_id 1 for calling the ResidualShuffleExchange obj's underlying member method code with example usage: obj.body(features) and returns: tf