def worker_estimator(args, manager, config, make_env): init_logging_handler(args.log_dir, '_estimator') agent = GAN(make_env, args, manager, config, args.process, pre_irl=True) agent.load(args.save_dir + '/best') best0, best1 = float('inf'), float('inf') for e in range(args.epoch): agent.train_disc(e, args.batchsz_traj) best0 = agent.test_disc(e, args.batchsz, best0)
def main(argv): # Load configs from file config = json.load(open(FLAGS.config)) # set_backend() # Set name #name = '{}_{}_'.format(config['INPUT_NAME'], config['TARGET_NAME']) #for l in config['LABELS']: # name += str(l) #config['NAME'] += '_' + name if FLAGS.use_wandb: import wandb resume_wandb = True if FLAGS.wandb_resume_id is not None else False wandb.init(config=config, resume=resume_wandb, id=FLAGS.wandb_resume_id, project='EchoGen', name=FLAGS.wandb_run_name) # Initialize GAN device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") print(device) model = GAN(config, FLAGS.use_wandb, device, FLAGS.dataset_path) # load trained models if they exist if FLAGS.ckpt_load is not None: model.load(f'{FLAGS.ckpt_load}/generator_last_checkpoint.bin', model='generator') model.load(f'{FLAGS.ckpt_load}/discriminator_last_checkpoint.bin', model='discriminator') if FLAGS.test: model.test() else: model.train()
generator.add(BatchNormalization(128)) generator.add(Activation(config.nonlinearity)) generator.add( Deconvolution2D(128, 3, ksize=4, stride=2, pad=paddings.pop(0), use_weightnorm=config.use_weightnorm)) if config.distribution_output == "sigmoid": generator.add(sigmoid()) if config.distribution_output == "tanh": generator.add(tanh()) params = { "config": config.to_dict(), "model": generator.to_dict(), } with open(generator_sequence_filename, "w") as f: json.dump(params, f, indent=4, sort_keys=True, separators=(',', ': ')) generator_params = params gan = GAN(discriminator_params, generator_params) gan.load(args.model_dir) if args.gpu_device != -1: cuda.get_device(args.gpu_device).use() gan.to_gpu()
random.seed(rnd_seed) numpy.random.seed(rnd_seed) torch.manual_seed(rnd_seed) print("Random Seed: ", rnd_seed) #CUDA if torch.cuda.is_available(): Tensor = torch.cuda.FloatTensor print("CUDA is available") else: Tensor = torch.Tensor print("CUDA is NOT available") #load model gan = GAN(opts) gan.load(opts.output_path) #display model info summary(gan.generator.cuda(), input_size=(opts.latent_dim, 1, 1)) summary(gan.discriminator.cuda(), input_size=(opts.channels_nbr, opts.image_size, opts.image_size)) #IMAGE GENERATION #test model nrows = 16 ncols = 16 latent_vectors = Tensor( numpy.random.normal(0.0, 1.0, (nrows * ncols, opts.latent_dim, 1, 1))) gen = gan.generator(latent_vectors).detach()
for p in processes: p.join() worker_estimator(args, manager, config, make_env) logging.info("pretrain ends here") elif args.test: logging.debug('test') logging.disable(logging.DEBUG) current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) # dir_name = datetime.now().isoformat() args.save_dir = os.path.join('model_' + args.gan_type, current_time) logging.info(args.save_dir) agent = GAN(make_env, args, manager, config, 1, infer=True) agent.load(args.load) logging.info("model loading finish and start evaluating") agent.evaluate(save_dialog=True) # agent.evaluate() # agent.expert_generator() else: # training current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) # dir_name = datetime.now().isoformat() args.save_dir = os.path.join('model_' + args.gan_type, current_time) logging.info(args.save_dir) # current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) logging.debug('train {}'.format(current_time)) agent = GAN(make_env,
# load MNIST X_train = np.load('MNIST_data/mnist_train_x.npy') if args.model == 0: X_train = X_train.reshape(60000, 784) elif args.model == 1: X_train = X_train.reshape(60000, 28, 28, 1) X_train = tf.image.resize_images(X_train, [64, 64]).eval() # normalize -1 to 1 X_train = (X_train.astype(np.float32) - 127.5) / 127.5 #train model.fit(X_train) else: model.load(args.restoring_epoch) if args.model == 0: img_path = 'results/gan_genarated_image.png' img_size = (28, 28) elif args.model == 1: img_path = 'results/dcgan_genarated_image.png' img_size = (64, 64) save_results(model, args.restoring_epoch, img_path, dim=(7, 7), figsize=(7, 7), img_size=img_size)