code: def _dilated_conv_layer(self, output_channels, dilation_rate, apply_relu,
                            name):
      
      layer_components = [
          conv.Conv2D(
              output_channels, [3, 3],
              initializers=self._initializers,
              regularizers=self._regularizers,
              rate=dilation_rate,
              name="dilated_conv_" + name),
      ]
      if apply_relu:
        layer_components.append(lambda net: tf.nn.relu(net, name="relu_" + name))
      return sequential.Sequential(layer_components, name=name)
docs: Create a dilated convolution layer.
  
      Args:
        output_channels: int. Number of output channels for each pixel.
        dilation_rate: int. Represents how many pixels each stride offset will
          move. A value of 1 indicates a standard convolution.
        apply_relu: bool. If True, a ReLU non-linearlity is added.
        name: string. Name for layer.
  
      Returns:
        a sonnet Module for a dilated convolution.