class_docstr: Residual Switch Unit of Residual Shuffle-Exchange network.
class_docstr_tok: ["Residual","Switch","Unit","of","Residual","Shuffle-Exchange","network","."]
docstr: Initialize layer weights and sublayers.
  
  Args:
    input_shape: shape of inputs
docstr_tok: ["Initialize","layer","weights","and","sublayers",".","Args",":","input_shape",":","shape","of","inputs"]
code: def build(self, input_shape):
      """Initialize layer weights and sublayers.
  
      Args:
        input_shape: shape of inputs
      """
      in_units = input_shape[-1]
      middle_units = in_units * 4
      out_units = in_units * 2
      init = tf.variance_scaling_initializer(
          scale=1.0, mode="fan_avg", distribution="uniform"
      )
  
      self.first_linear = tf.keras.layers.Dense(
          middle_units,
          use_bias=False,
          kernel_initializer=init,
          name=self.prefix + "/cand1",
      )
  
      self.second_linear = tf.keras.layers.Dense(
          out_units,
          kernel_initializer=init,
          name=self.prefix + "/cand2",
      )
      self.layer_norm = LayerNormalization()
  
      init = tf.constant_initializer(self.init_value)
      self.residual_scale = self.add_weight(
          self.prefix + "/residual", [out_units], initializer=init
      )
      super(RSU, self).build(input_shape)
  
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 2 for calling the RSU obj's underlying member method code with example usage: obj.build(input_shape) without return types