import tensorflow as tf

        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"], 
                                          self.config.cifar10_cnn["filter_size"], 
                                          padding='same', activation=tf.nn.relu)
            self.drop1 = tf.layers.dropout(self.conv1, self.config.cifar10_cnn["keep_prob"], training=self.train)
            self.pool1 = tf.layers.max_pooling2d(self.drop1, 2, 2)
