def main(_): if FLAGS.exp_name is None: FLAGS.exp_name = "reconstrued_results_unitLength" + str( int(FLAGS.latent_dim / FLAGS.latent_num)) image_shape = [ int(i) for i in FLAGS.image_shape.strip('()[]{}').split(',') ] dirs = init_directories(FLAGS.exp_name, FLAGS.output_dir) dirs[ 'data'] = '../../npz_datas' if FLAGS.data_dir is None else FLAGS.data_dir dirs['codes'] = os.path.join(dirs['data'], 'codes/') create_directories(dirs, FLAGS.train, FLAGS.save_codes) output_dim = reduce(mul, image_shape, 1) run_config = tf.ConfigProto(allow_soft_placement=True) run_config.gpu_options.allow_growth = True run_config.gpu_options.per_process_gpu_memory_fraction = 0.9 sess = tf.Session(config=run_config) ae = AE( session=sess, arch=FLAGS.arch, lr=FLAGS.lr, alpha=FLAGS.alpha, beta=FLAGS.beta, latent_dim=FLAGS.latent_dim, latent_num=FLAGS.latent_num, class_net_unit_num=FLAGS.class_net_unit_num, output_dim=output_dim, batch_size=FLAGS.batch_size, image_shape=image_shape, exp_name=FLAGS.exp_name, dirs=dirs, vis_reconst=FLAGS.visualize_reconstruct, ) if FLAGS.save_codes: sampleNum = 1000 # 50x64 large batch, forward prop only dataVisualName = 'SVHN10_img_N1000x32x32x3_testForModularity' data_manager = ShapesDataManager(dirs['data'], dataVisualName, FLAGS.batch_size, image_shape, shuffle=False, file_ext=FLAGS.file_ext, train_fract=1.0, inf=True) #data_manager.set_divisor_batch_size() ae.train_iter, ae.dev_iter, ae.test_iter = data_manager.get_iterators() ae.session.run(tf.global_variables_initializer()) #saved_step = ae.load() saved_step = ae.load_fixedNum(4000) assert saved_step > 1, "A trained model is needed to encode the data!" pathForSave = 'ValidateEncodedImgs' if not os.path.exists(pathForSave): os.mkdir(pathForSave) codes = [] images = [] for batch_num in range(int(sampleNum / FLAGS.batch_size)): img_batch, _mask1, _ = next(ae.train_iter) #code = ae.encode(img_batch) #[batch_size, reg_latent_dim] code, image = ae.getCodesAndImgs(pathForSave, img_batch, batch_num) codes.append(code) images.append(image) if batch_num < 5 or batch_num % 10 == 0: print(("Batch number {0}".format(batch_num))) codes = np.vstack(codes) images = np.vstack(images) codes_name = 'CIFAR3_codesModularityMetricsCal' filename = os.path.join(pathForSave, "codes_" + codes_name) #np.save(filename, codes) np.savez(filename + '.npz', imagesNorm0_1=images, codes=codes) print(("Images and Codes saved to: {0}".format(filename)))
def main(_): if FLAGS.exp_name is None: FLAGS.exp_name = "reconstrued_results" image_shape = [ int(i) for i in FLAGS.image_shape.strip('()[]{}').split(',') ] dirs = init_directories(FLAGS.exp_name, FLAGS.output_dir) dirs[ 'data'] = '../../../npz_datas_single_test' if FLAGS.data_dir is None else FLAGS.data_dir dirs['codes'] = os.path.join(dirs['data'], 'codes/') create_directories(dirs, FLAGS.train, FLAGS.save_codes) output_dim = reduce(mul, image_shape, 1) run_config = tf.ConfigProto(allow_soft_placement=True) run_config.gpu_options.allow_growth = True run_config.gpu_options.per_process_gpu_memory_fraction = 0.9 sess = tf.Session(config=run_config) ae = AE( session=sess, arch=FLAGS.arch, lr=FLAGS.lr, alpha=FLAGS.alpha, beta=FLAGS.beta, latent_dim=FLAGS.latent_dim, latent_num=FLAGS.latent_num, class_net_unit_num=FLAGS.class_net_unit_num, output_dim=output_dim, batch_size=FLAGS.batch_size, image_shape=image_shape, exp_name=FLAGS.exp_name, dirs=dirs, vis_reconst=FLAGS.visualize_reconstruct, ) # save codes and images data1Name = "mnistOffset1_Imgs_GTimages_mask_GTlabel_(32x64)x32x32x1_unitLength1_CodeImageDataset" data_manager = ShapesDataManager(dirs['data'], data1Name, FLAGS.batch_size, image_shape, shuffle=False, file_ext=FLAGS.file_ext, train_fract=1.0, inf=True) ae.train_iter1, ae.dev_iter1, ae.test_iter1 = data_manager.get_iterators() ae.session.run(tf.global_variables_initializer()) saved_step = ae.load_fixedNum(1875) assert saved_step > 1, "A trained model is needed to encode the data!" pathForSave = 'ValidateEncodedImgs_Offset{}'.format(1) save_name = "reconstrued_results_offset{}".format(1) try: os.makedirs(pathForSave) except OSError as exc: # Python >2.5 if exc.errno == errno.EEXIST and os.path.isdir(pathForSave): pass else: raise codes = [] images = [] sampleNum = 2048 for batch_num in range(int(sampleNum / FLAGS.batch_size)): img_batch, _mask1, _ = next(ae.train_iter1) # code = ae.encode(img_batch) #[batch_size, reg_latent_dim] code, image = ae.getCodesAndImgs(pathForSave, img_batch, _mask1, batch_num) codes.append(code) images.append(image) if batch_num < 5 or batch_num % 10 == 0: print(("Batch number {0}".format(batch_num))) codes = np.vstack(codes) images = np.vstack(images) filename = os.path.join(dirs['codes'], "codes_" + save_name) # np.save(filename, codes) np.savez(filename + '.npz', imagesNorm0_1=images, codes=codes) print(("Images and Codes saved to: {0}".format(filename)))