import tensorflow as tf

                                                     self.config.data["num_channels"]), name="X")           # ex. (50000, 32, 32, 3)
        self.y = tf.compat.v1.placeholder(tf.int32, shape = (None, self.config.data["num_categories"]), name="y")     # ex. (50000, 10)  
        self.train = tf.compat.v1.placeholder(tf.bool)

        # The CNN architecture = conv/poo layers + flatten layer + connected layers
        with tf.name_scope("cnn"):

            # a. Create convolution/pooling layers = conv + drop + pool + conv + drop + pool + conv + pool + conv + drop  
            self.conv1 = tf.layers.conv2d(self.X, 
                                          self.config.cifar10_cnn["num_filters"], 
