import tensorflow as tf

                    mixed_idx = tf.range(0, self.mixed_label.get_shape().as_list()[0], 1)
                    mixed_idx = tf.random_shuffle(mixed_idx)[0:self.batch_size]
                    self.mixed_pc = tf.gather(self.mixed_pc, mixed_idx)
                    self.mixed_label = tf.gather(self.mixed_label, mixed_idx)

                    self.mixed_pred, mixed_end_points = self.get_pred(self.mixed_pc)
                    self.mixed_loss = self.get_loss(self.mixed_pred, self.mixed_label, mixed_end_points)

            with tf.variable_scope('discriminator') as scope:
                self.real_prob, self.real_logit = self.discriminator(self.real_pc_rotated, scope=scope, **disc_kwargs)
                self.synthetic_prob, self.synthetic_logit = self.discriminator(self.gen_out_rotated, reuse=True, scope=scope, **disc_kwargs)
            
            # Compute WGAN losses
            self.loss_d = tf.reduce_mean(self.synthetic_logit) - tf.reduce_mean(self.real_logit) # comparing rotated fake and real images
            self.loss_g = -tf.reduce_mean(self.synthetic_logit)

