import tensorflow as tf

        else:
            print(f'EPOCH: {epoch}, real_rot_loss: {round(epoch_real_rot_loss, 3)}, fake_rot_loss: {round(epoch_fake_rot_loss, 3)}, loss_d_rot: {round(epoch_loss_d, 3)}, loss_g_rot: {round(epoch_loss_g, 3)}, real_rot_acc: {round(real_rot_acc, 3)}, fake_rot_acc: {round(fake_rot_acc, 3)}')
        
        return dict, duration
    
    def _add_summaries(self, writer, names, values):
        for name, value in zip(names, values):
            summary = tf.Summary(value=[
                tf.Summary.Value(tag=name, simple_value=value),
            ])
            writer.add_summary(summary, self.step_count)

    def eval_rot(self, batch_data):
        feed_dict = {self.real_pc: batch_data, self.is_training_pl: False}
        _, rot_loss = self.sess.run([self.opt_pred, self.real_pc_rot_loss], feed_dict=feed_dict)
        return rot_loss
