import tensorflow as tf

            # ul_u = random_sphere(ul_images.shape)
            # ul_u_eval_train = random_sphere(ul_images_eval_train.shape)
            # ul_u_eval_test = random_sphere(images_eval_test.shape)
            ul_u = placeholder_like(ul_images, "ul_u")
            ul_u_eval_train = placeholder_like(ul_images_eval_train, "ul_u_eval_train")
            ul_u_eval_test =  placeholder_like(images_eval_test, "ul_u_eval_test")

        with tf.device(FLAGS.device):
            lr = tf.placeholder(tf.float32, shape=[], name="learning_rate")
            mom = tf.placeholder(tf.float32, shape=[], name="momentum")
            with tf.variable_scope("CNN") as scope:
                # Build training graph
                loss, train_op, global_step, ul_u_updated = build_training_graph(
                                                                images, labels, ul_images, ul_u, lr, mom)
                scope.reuse_variables()
                # Build eval graph
                losses_eval_train = build_eval_graph(images_eval_train, labels_eval_train, ul_images_eval_train, ul_u_eval_train)
                losses_eval_test = build_eval_graph(images_eval_test, labels_eval_test, images_eval_test, ul_u_eval_test)
