Exemple #1
0
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)
Exemple #2
0
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()
Exemple #3
0
    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()
Exemple #4
0
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()
Exemple #5
0
        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,
Exemple #6
0
            # 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)