code: def conv_stack(
      name,
      x,
      mid_channels,
      output_channels,
      dilations=None,
      activation="relu",
      dropout=0.0,
  ):
      """3-layer convolutional stack.
  
      Args:
        name: variable scope.
        x: 5-D Tensor.
        mid_channels: Number of output channels of the first layer.
        output_channels: Number of output channels.
        dilations: Dilations to apply in the first 3x3 layer and the last 3x3 layer.
                   By default, apply no dilations.
        activation: relu or gatu.
          If relu, the second layer is relu(W*x)
          If gatu, the second layer is tanh(W1*x) * sigmoid(W2*x)
        dropout: float, 0.0
      Returns:
        output: output of 3 layer conv network.
      """
      with tf.variable_scope(name, reuse=tf.AUTO_REUSE):
          x = conv_block(
              "conv_block",
              x,
              mid_channels=mid_channels,
              dilations=dilations,
              activation=activation,
              dropout=dropout,
          )
  
          # Final layer.
          x = conv(
              "zeros",
              x,
              apply_actnorm=False,
              conv_init="zeros",
              output_channels=output_channels,
              dilations=dilations,
          )
      return x
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import functools
  import numpy
  import scipy
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import common_video
  from tensor2tensor.utils import contrib
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
  import tensorflow_probability
label_desc: Use image node_id 22 for calling a global function with example usage: conv_stack(name, x, mid_channels, output_channels, dilations, activation, dropout) and returns: x