class_docstr: Seq2Seq model for sequence processing in O(n log n) time.
docstr: Custom infer method for Shuffle-Exchange network.
  
  Args:
    features: Dictionary of inputs and targets
    **kwargs: SE network currently doesn't support auto-regressive output
  
  Returns:
    dict: Dictionary of outputs.
docstr_tok: ["Custom","infer","method","for","Shuffle-Exchange","network",".","Args",":","features",":","Dictionary","of","inputs","and","targets","*","*","kwargs",":","SE","network","currently","does","n't","support","auto-regressive","output","Returns",":","dict",":","Dictionary","of","outputs","."]
code: def infer(self, features=None, **kwargs):
      """Custom infer method for Shuffle-Exchange network.
  
      Args:
        features: Dictionary of inputs and targets
        **kwargs: SE network currently doesn't support auto-regressive output
  
      Returns:
        dict: Dictionary of outputs.
      """
  
      del kwargs
      targets = features.get("targets")
      infer_targets = features.get("infer_targets")
  
      if targets is None and infer_targets is not None:
          features["targets"] = infer_targets
  
      # Run the model
      self.hparams.force_full_predict = True
      with tf.variable_scope(self.name):
          logits, _ = self.model_fn(features)
  
      assert len(logits.shape) == 5  # [batch, time, 1, 1, vocab]
      logits = tf.squeeze(logits, [2, 3])
      outputs = tf.argmax(logits, axis=2)
  
      return {"outputs": outputs, "logits": logits, "scores": None}
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  from tensor2tensor.layers import common_hparams
  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 4 for calling the ShuffleNetwork obj's underlying member method code with example usage: obj.infer(features) and returns: dict