code: def residual_block(x, hparams):
    
    k = (hparams.kernel_height, hparams.kernel_width)
    dilations_and_kernels = [((1, 1), k) for _ in range(3)]
    y = common_layers.subseparable_conv_block(
        x,
        hparams.hidden_size,
        dilations_and_kernels,
        padding="SAME",
        separability=0,
        name="residual_block")
    x = common_layers.layer_norm(x + y, hparams.hidden_size, name="lnorm")
    return tf.nn.dropout(x, 1.0 - hparams.dropout)
docs: A stack of convolution blocks with residual connection.