code: def setUpClass(cls):
      print("\n#################################")
  
      cls.batch_size = 5
      cls.inputs_shape = [cls.batch_size, 400, 400, 3]
      cls.input_layer = Input(cls.inputs_shape, name="input_layer")
  
      cls.n1 = tl.layers.Conv2dLayer(
          act=tf.nn.relu,
          shape=(5, 5, 3, 32),
          strides=(1, 2, 2, 1),
          padding="SAME",
          b_init=tf.constant_initializer(value=0.0),
          name="conv2dlayer",
      )(cls.input_layer)
  
      cls.n2 = tl.layers.Conv2d(
          n_filter=32,
          filter_size=(3, 3),
          strides=(2, 2),
          act=None,
          name="conv2d",
      )(cls.n1)
  
      cls.n3 = tl.layers.Conv2d(
          n_filter=32,
          filter_size=(3, 3),
          strides=(2, 2),
          act=tf.nn.relu,
          b_init=None,
          name="conv2d_no_bias",
      )(cls.n2)
  
      cls.n4 = tl.layers.DeConv2dLayer(
          shape=(5, 5, 32, 32),
          outputs_shape=(cls.batch_size, 100, 100, 32),
          strides=(1, 2, 2, 1),
          name="deconv2dlayer",
      )(cls.n3)
  
      cls.n5 = tl.layers.DeConv2d(
          n_filter=32,
          filter_size=(3, 3),
          strides=(2, 2),
          name="DeConv2d",
      )(cls.n4)
  
      cls.n6 = tl.layers.DepthwiseConv2d(
          filter_size=(3, 3),
          strides=(1, 1),
          dilation_rate=(2, 2),
          act=tf.nn.relu,
          depth_multiplier=2,
          name="depthwise",
      )(cls.n5)
  
      cls.n7 = tl.layers.Conv2d(
          n_filter=32,
          filter_size=(3, 3),
          strides=(2, 2),
          act=tf.nn.relu,
          in_channels=64,
          name="conv2d2",
      )(cls.n6)
  
      cls.n8 = tl.layers.BinaryConv2d(
          n_filter=64,
          filter_size=(3, 3),
          strides=(2, 2),
          act=tf.nn.relu,
          in_channels=32,
          name="binaryconv2d",
      )(cls.n7)
  
      cls.n9 = tl.layers.SeparableConv2d(
          n_filter=32,
          filter_size=(3, 3),
          strides=(2, 2),
          act=tf.nn.relu,
          name="separableconv2d",
      )(cls.n8)
  
      cls.n10 = tl.layers.GroupConv2d(
          n_filter=64,
          filter_size=(3, 3),
          strides=(2, 2),
          n_group=2,
          name="group",
      )(cls.n9)
  
      cls.n11 = tl.layers.DorefaConv2d(
          n_filter=32,
          filter_size=(5, 5),
          strides=(1, 1),
          act=tf.nn.relu,
          padding="SAME",
          name="dorefaconv2d",
      )(cls.n10)
  
      cls.n12 = tl.layers.TernaryConv2d(
          n_filter=64,
          filter_size=(5, 5),
          strides=(1, 1),
          act=tf.nn.relu,
          padding="SAME",
          name="ternaryconv2d",
      )(cls.n11)
  
      cls.n13 = tl.layers.QuanConv2d(
          n_filter=32,
          filter_size=(5, 5),
          strides=(1, 1),
          act=tf.nn.relu,
          padding="SAME",
          name="quancnn2d",
      )(cls.n12)
  
      cls.n14 = tl.layers.SubpixelConv2d(
          scale=2, act=tf.nn.relu, name="subpixelconv2d"
      )(cls.n13)
  
      cls.n15 = tl.layers.QuanConv2dWithBN(
          n_filter=64,
          filter_size=(5, 5),
          strides=(1, 1),
          act=tf.nn.relu,
          padding="SAME",
          name="quancnnbn2d",
      )(cls.n14)
  
      cls.model = Model(cls.input_layer, cls.n15)
      print("Testing Conv2d model: \n", cls.model)
  
imports: import os
  import unittest
  import tensorflow
  import tensorlayer
  from tensorlayer.layers import *
  from tensorlayer.models import *
  from tests.utils import CustomTestCase
label_desc: Use image node_id 1 for calling the Layer_Convolution_2D_Test obj's underlying member method code with example usage: obj.setUpClass(cls) without return types