예제 #1
0
 def func(trainer):
     c = 0
     mixing = mix > random()
     while c < number:
         n = min(number - c, batch)
         z = generator.generate_latent(n)
         mix_z = generator.generate_latent(n) if mixing else None
         y = generator(z, stage, trainer.updater.alpha, mix_z)
         z.to_cpu()
         y.to_cpu()
         for i in range(n):
             path = filepath(
                 directory,
                 f"{stage}_{trainer.updater.iteration}_{trainer.updater.alpha:.3f}_{c + i + 1}",
                 "png")
             path = path if force else altfilepath(path)
             save_image(y.array[i], path)
             if save_latent:
                 path = filepath(
                     directory,
                     f"{stage}_{trainer.updater.iteration}_{trainer.updater.alpha:.3f}_{c + i + 1}",
                     "npy")
                 path = path if force else altfilepath(path)
                 save_array(z.array[i], path)
         c += n
예제 #2
0
 def func(trainer):
     path = filepath(directory, f"mopt_{stage}_{trainer.updater.iteration}",
                     "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, mapper_optimizer)
     path = filepath(directory, f"gopt_{stage}_{trainer.updater.iteration}",
                     "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, generator_optimizer)
     path = filepath(directory, f"dopt_{stage}_{trainer.updater.iteration}",
                     "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, discriminator_optimizer)
예제 #3
0
 def func(trainer):
     generator.to_cpu()
     averaged_generator.to_cpu()
     discriminator.to_cpu()
     path = filepath(directory, f"gen_{stage}_{trainer.updater.iteration}",
                     "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, generator)
     path = filepath(directory,
                     f"avgen_{stage}_{trainer.updater.iteration}", "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, averaged_generator)
     path = filepath(directory, f"dis_{stage}_{trainer.updater.iteration}",
                     "hdf5")
     path = path if force else altfilepath(path)
     serializers.save_hdf5(path, discriminator)
     if device >= 0:
         generator.to_gpu(device)
         averaged_generator.to_gpu(device)
         discriminator.to_gpu(device)
예제 #4
0
    generator, averaged_generator, discriminator, iterator, {
        "mapper": mapper_optimizer,
        "generator": generator_optimizer,
        "discriminator": discriminator_optimizer
    }, args.device, args.stage, args.mix, args.alpha, args.delta, args.gamma,
    args.decay, args.lsgan)

# Init result directory
print("Initializing destination directory...")
if args.wipe:
    rmtree(args.result, ignore_errors=True)
mkdirp(args.result)

# Dump command-line options
path = filepath(args.result, "args_quit" if args.quit else "args", "json")
path = path if args.force else altfilepath(path)
with open(path, mode="w", encoding="utf-8") as fp:
    dump(vars(args), fp, indent=2, sort_keys=True)


# Define extension to output images in progress
def save_middle_images(generator,
                       stage,
                       directory,
                       number,
                       batch,
                       mix,
                       force=True,
                       save_latent=True):
    @make_extension()
    def func(trainer):
예제 #5
0
if args.center is not None:
	print("Loading latent")
	center = generator.wrap_latent(load_array(args.center))
else:
	center = None

# Init destination folder
print("Initializing destination directory")
if args.wipe:
	rmtree(args.directory, ignore_errors=True)
mkdirp(args.directory)

# Dump command-line options
if args.dump_json:
	path = filepath(args.directory, "args_quit" if args.quit else "args", "json")
	path = path if args.force else altfilepath(path)
	with open(path, mode="w", encoding="utf-8") as fp:
		dump(vars(args), fp, indent=2, sort_keys=True)

# Quit mode
if args.quit:
	print("Finished (Quit mode)")
	exit(0)

# Generate images
c = 0
mean_w = None if args.psi is None else generator.calculate_mean_w()
while c < args.number:
	n = min(args.number - c, args.batch)
	z = generator.generate_latent(n, center=center, sd=args.sd)
	y = generator(z, args.stage, alpha=args.alpha, psi=args.psi, mean_w=mean_w)