import tensorflow as tf

            self.conv1 = self._conv('conv1', self.x_preprocessed, padding= [[0,0],[3,3],[3,3],[0,0]],
                                    num_filters=64, kernel_size=(7, 7), stride=(2, 2), l2_strength=self.wd,
                                    bias=self.bias)

            self.conv1 = self._bn('bn1', self.conv1)

            self.conv1 = self._relu('relu1', self.conv1)
            _debug(self.conv1)
            self.conv1= tf.pad(self.conv1, tf.constant([[0,0],[1,1],[1,1],[0,0]]), "CONSTANT")
            self.conv1 = tf.nn.max_pool(self.conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID',
                                        name='max_pool1')
            _debug(self.conv1)
            print('conv1-shape: ' + str(self.conv1.shape.as_list()))

        with tf.variable_scope('conv2_x'):
            self.conv2 = self._residual_block('conv2_1', self.conv1, 64)
            _debug(self.conv2)
            self.conv2 = self._residual_block('conv2_2', self.conv2, 64)
            _debug(self.conv2)

        with tf.variable_scope('conv3_x'):
            self.conv3 = self._residual_block('conv3_1', self.conv2, 128, pool_first=True, strides=2)
            _debug(self.conv3)
            self.conv3 = self._residual_block('conv3_2', self.conv3, 128)
            _debug(self.conv3)

        with tf.variable_scope('conv4_x'):
            self.conv4 = self._residual_block('conv4_1', self.conv3, 256, pool_first=True, strides=2)
