import tensorflow as tf

    def __forward_pass(self, x, reuse):
        fc_size1 = 384
        fc_size2 = 192

            # convolutional layers
        with tf.variable_scope('conv1'):
            layer1, weights1 = new_conv_layer(x, name="conv1", num_input_channels=3, num_filters=64, filter_size=5, ac_fun=tf.nn.relu,
                                    pool_ksize=[1, 3, 3, 1])
        with tf.variable_scope('conv2'):
            layer2, weights2 = new_conv_layer(input=layer1, name="conv2", num_input_channels=64, num_filters=64, filter_size=5,
                                    ac_fun=tf.nn.relu, pool_ksize=[1, 3, 3, 1])
        with tf.name_scope('flatten'):
            layer3, num_features = flatten_layer(layer2)
        # fully connected layers
        with tf.variable_scope('fc1'):
            layer4, weights4 = new_fc_layer(input=layer3, name="fc1", num_inputs=num_features, num_outputs=fc_size1)
        # print(layer4)
        with tf.variable_scope('fc2'):
            logits, weights5 = new_fc_layer(input=layer4, name="fc2", num_inputs=fc_size1, num_outputs=fc_size2)

        # add histograms
        if not reuse:
