class_docstr: The convolutional layers custom to the evolved transformer encoder.
  
  The input is projected to 4 times the model dimension size followed by a ReLU
  on the left branch while it goes through a 3x1 convolution on the right
  branch. The outputs of the branches are summed and then passed through a layer
  norm. The output of the layer norm then goes through separable 9x1
  convolution.
docstr: Call the layer.
docstr_tok: ["Call","the","layer","."]
code: def call(self, context, x, losses=None):
      """Call the layer."""
      model_dim = context.model.model_dim
  
      # Note that the left output dim can also be thought of the hidden dimension
      # in the feedforward network.
      with tf.variable_scope("conv1x1"):
          hidden_dim = mtf.Dimension(model_dim.name, 4 * model_dim.size)
          left_state = mtf.layers.dense(
              x,
              reduced_dims=x.shape.dims[-1:],
              new_dims=[hidden_dim],
              activation=mtf.relu,
              use_bias=False,
              variable_dtype=context.variable_dtype,
          )
          left_state = _dropout(left_state, context, self._dropout_rate)
  
      with tf.variable_scope("conv3x1"):
          right_state = self._conv3x1.call(context, x, losses)
          right_state = _dropout(
              right_state, context, self._dropout_rate
          )
          right_state = _pad_channels_dim(right_state, hidden_dim.size)
  
      hidden_state = left_state + right_state
      hidden_state = mtf.layers.layer_norm(
          hidden_state,
          epsilon=self._norm_epsilon,
          dim=hidden_state.shape.dims[-1],
      )
  
      with tf.variable_scope("sep_conv9x1"):
          output = self._sep_conv9x1.call(context, hidden_state, losses)
          output = _dropout(output, context, self._dropout_rate)
          return _pad_channels_dim(output, model_dim.size)
  
imports: import gin
  import mesh_tensorflow
  from mesh_tensorflow.transformer import transformer
  from mesh_tensorflow.transformer import transformer_layers
  import tensorflow.compat.v1
label_desc: Use image node_id 2 for calling the EncoderConvolutionalLayer obj's underlying member method code with example usage: obj.call(context, x, losses) and returns: _pad_channels_dim