code: def convolutional(
      input_layer,
      filters_shape,
      downsample=False,
      activate=True,
      bn=True,
      activate_type="leaky",
      name=None,
  ):
      if downsample:
          input_layer = ZeroPad2d(((1, 0), (1, 0)))(input_layer)
          padding = "VALID"
          strides = 2
      else:
          strides = 1
          padding = "SAME"
  
      if bn:
          b_init = None
      else:
          b_init = tl.initializers.constant(value=0.0)
  
      conv = Conv2d(
          n_filter=filters_shape[-1],
          filter_size=(filters_shape[0], filters_shape[1]),
          strides=(strides, strides),
          padding=padding,
          b_init=b_init,
          name=name,
      )(input_layer)
  
      if bn:
          if activate == True:
              if activate_type == "leaky":
                  conv = BatchNorm2d(act="lrelu0.1")(conv)
              elif activate_type == "mish":
                  conv = BatchNorm2d(act=mish)(conv)
          else:
              conv = BatchNorm2d()(conv)
      return conv
  
file_path: TensorLayer/tensorlayer/app/computer_vision_object_detection/yolov4.py
imports: import tensorflow
  import numpy
  import tensorlayer
  from tensorlayer.activation import mish
  from tensorlayer.layers import Conv2d, MaxPool2d, BatchNorm2d, ZeroPad2d, UpSampling2d, Concat, Input, Elementwise
  from tensorlayer.models import Model
  from tensorlayer import logging
label_desc: Use image node_id 2 for calling a global function with example usage: convolutional(input_layer, filters_shape, downsample, activate, bn, activate_type, name) and returns: conv