import tensorflow as tf

                                                          train=True,
                                                          validation=FLAGS.validation,
                                                          shuffle=True)
            ul_images_eval_train = unlabeled_inputs(batch_size=FLAGS.eval_batch_size,
                                                    validation=FLAGS.validation,
                                                    shuffle=True)

            images_eval_test, labels_eval_test = inputs(batch_size=FLAGS.eval_batch_size,
                                                        train=False,
                                                        validation=FLAGS.validation,
                                                        shuffle=True)

            def placeholder_like(x, name=None):
                return tf.placeholder(shape=x.shape, dtype=tf.float32, name=name)

            def random_sphere(shape):
                n = tf.random_normal(shape=shape, dtype=tf.float32)
                n = tf.reshape(n, shape=(int(shape[0]), -1))
                n = tf.nn.l2_normalize(n, dim=1)
                n = tf.reshape(n, shape)
                return n

            def random_sphere_numpy(shape):
                n = np.random.normal(size=shape)
                proj_shape = tuple([n.shape[0]] + [1 for _ in range(len(shape) - 1)])
                return n / np.linalg.norm(n.reshape((n.shape[0], -1)), axis=1).reshape(proj_shape)
