def get_conditional_topo_samples(generator, m, n, condition_sampler_fn, embedding_file=DEFAULT_EMBEDDING_FILE): if isinstance(generator, basestring): generator = load_generator_from_file(generator) conditional_batch = generator.condition_space.make_theano_batch() conditional_data = condition_sampler_fn(generator, m, n, embedding_file=embedding_file) topo_samples_batch = generator.sample(conditional_batch) topo_sample_f = theano.function([conditional_batch], topo_samples_batch) topo_samples = topo_sample_f(conditional_data).swapaxes(0, 3) return topo_samples, conditional_data
embeddings = np.load(args.embedding_file)['arr_0'] if args.axes is None: args.axes = range(embeddings.shape[1]) else: args.axes = [int(x) for x in args.axes.strip().split(',')] condition_dim = embeddings.shape[1] m, n = len(args.axes), 10 shift = 7.5 # Prepare generator generator = util.load_generator_from_file(args.model_path) noise_batch = generator.noise_space.make_theano_batch() conditional_batch = generator.condition_space.make_theano_batch() topo_sample_f = theano.function([noise_batch, conditional_batch], generator.dropout_fprop((noise_batch, conditional_batch))[0]) # Sample some noise data -- this needs to be shared between orig and mod # sample pairs noise_data = generator.get_noise((n, generator.noise_dim)).eval() # Begin modifying axes base_conditional_data = args.conditional_sampler(generator, n, 1, embedding_file=args.embedding_file) print 'Mean for each axis:' pprint.pprint(zip(args.axes, base_conditional_data[:, args.axes].mean(axis=1)))
help='Comma-separated list of axes to modify') args = parser.parse_args() embeddings = np.load(args.embedding_file)['arr_0'] if args.axes is None: args.axes = range(embeddings.shape[1]) else: args.axes = [int(x) for x in args.axes.strip().split(',')] condition_dim = embeddings.shape[1] m, n = len(args.axes), 10 shift = 7.5 # Prepare generator generator = util.load_generator_from_file(args.model_path) noise_batch = generator.noise_space.make_theano_batch() conditional_batch = generator.condition_space.make_theano_batch() topo_sample_f = theano.function([noise_batch, conditional_batch], generator.dropout_fprop( (noise_batch, conditional_batch))[0]) # Sample some noise data -- this needs to be shared between orig and mod # sample pairs noise_data = generator.get_noise((n, generator.noise_dim)).eval() # Begin modifying axes base_conditional_data = args.conditional_sampler( generator, n, 1, embedding_file=args.embedding_file) print 'Mean for each axis:' pprint.pprint(zip(args.axes, base_conditional_data[:, args.axes].mean(axis=1)))