class_docstr: MLP with residual connections and layer norm.
  
  An MLP which applies residual connection and layer normalisation every two
  linear layers. Similar to Resnet, but with FC layers instead of convolutions.
docstr: Create the model.
  
  Args:
    hidden_size: width of each hidden layer.
    num_blocks: number of blocks, each block being MLP([hidden_size,
      hidden_size]) + layer norm + residual connection.
docstr_tok: ["Create","the","model",".","Args",":","hidden_size",":","width","of","each","hidden","layer",".","num_blocks",":","number","of","blocks",",","each","block","being","MLP","(","[","hidden_size",",","hidden_size","]",")","+","layer","norm","+","residual","connection","."]
code: def __init__(self, hidden_size: int, num_blocks: int):
      """Create the model.
  
      Args:
        hidden_size: width of each hidden layer.
        num_blocks: number of blocks, each block being MLP([hidden_size,
          hidden_size]) + layer norm + residual connection.
      """
      super().__init__(name="LayerNormAndResidualMLP")
  
      # Create initial MLP layer.
      layers = [
          snt.nets.MLP([hidden_size], w_init=_uniform_initializer())
      ]
  
      # Follow it up with num_blocks MLPs with layernorm and residual connections.
      for _ in range(num_blocks):
          mlp = snt.nets.MLP(
              [hidden_size, hidden_size], w_init=_uniform_initializer()
          )
          layers.append(ResidualLayernormWrapper(mlp))
  
      self._module = snt.Sequential(layers)
  
imports: from typing import Callable, Optional, Sequence
  from acme import types
  from acme.tf import utils
  from acme.tf.networks import base
  import sonnet
  import tensorflow
label_desc: Use image node_id 1 to create a new LayerNormAndResidualMLP object from inherited base classes: snt with example: obj = LayerNormAndResidualMLP(hidden_size, num_blocks)