in src/run.py [0:0]
def main(args):
set_seed(args.seed)
n_batch = args.n_sub_batch * args.n_gpu
if args.data_path.endswith("cifar10"):
n_class = 10
elif args.data_path.endswith("imagenet"):
n_class = 1000
else:
raise ValueError("Dataset not supported.")
X = tf.placeholder(tf.int32, [n_batch, args.n_px * args.n_px])
Y = tf.placeholder(tf.float32, [n_batch, n_class])
x = tf.split(X, args.n_gpu, 0)
y = tf.split(Y, args.n_gpu, 0)
hparams = set_hparams(args)
trainable_params, gen_logits, gen_loss, clf_loss, tot_loss, accuracy = create_model(x, y, args.n_gpu, hparams)
reduce_mean(gen_loss, clf_loss, tot_loss, accuracy, args.n_gpu)
saver = tf.train.Saver(var_list=[tp for tp in trainable_params if not 'clf' in tp.name])
with tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=False)) as sess:
sess.run(tf.global_variables_initializer())
saver.restore(sess, args.ckpt_path)
if args.eval:
(trX, trY), (vaX, vaY), (teX, teY) = load_data(args.data_path)
evaluate(sess, trX[:len(vaX)], trY[:len(vaY)], X, Y, gen_loss, clf_loss, accuracy, n_batch, "train")
evaluate(sess, vaX, vaY, X, Y, gen_loss, clf_loss, accuracy, n_batch, "valid")
evaluate(sess, teX, teY, X, Y, gen_loss, clf_loss, accuracy, n_batch, "test")
if args.sample:
if not os.path.exists(args.save_dir):
os.makedirs(args.save_dir)
clusters = np.load(args.color_cluster_path)
sample(sess, X, gen_logits, args.n_sub_batch, args.n_gpu, args.n_px, args.n_vocab, clusters, args.save_dir)