import tensorflow as tf

                scope.reuse_variables()

            print('D in:', X.get_shape().as_list())

            rate = [2, 3, 4]
            X = atrous_convs(X, "d_atrous_0", rate = rate, depth=256, reuse=reuse)
            X = tf.nn.leaky_relu(X, 0.2)
            X = self.conv('d_1', X, 512, size=1, stride=1, padding="SAME")
            X = tf.nn.leaky_relu(X, 0.2)
            X = self.conv('d_2', X, 512, size=1, stride=1, padding="SAME")
            X = tf.nn.leaky_relu(X, 0.2)
            X = self.conv('d_3', X, 512, size=1, stride=1, padding="SAME")
