import tensorflow as tf

        
        def squared_loss(y_pred,labels):
            return tf.reduce_mean((y_pred - labels)**2)
            
        def abs_loss(y_pred,labels):
            return tf.reduce_mean(tf.abs(y_pred - labels))  


        def binary_cross_entropy_loss(logits,labels):
            return tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=labels,logits=logits))
       
        self.images_real = tf.placeholder(tf.float32,[None,self.image_size,self.image_size,self.input_dim + self.output_dim])
        
        self.image_real_A = self.images_real[:,:,:,:self.input_dim]
        self.image_real_B = self.images_real[:,:,:,self.input_dim:self.input_dim + self.output_dim]
        self.images_fake_B = self.build_generator(self.image_real_A,reuse=False,name='generator_AB')
        self.images_fake_A = self.build_generator(self.images_fake_B,reuse=False,name='generator_BA')
        self.images_fake_A_ = self.build_generator(self.image_real_B,reuse=True,name='generator_BA')
