diff options
Diffstat (limited to 'cli/app/commands/bigbigan')
| -rw-r--r-- | cli/app/commands/bigbigan/fetch.py | 57 | ||||
| -rw-r--r-- | cli/app/commands/bigbigan/random.py | 46 |
2 files changed, 103 insertions, 0 deletions
diff --git a/cli/app/commands/bigbigan/fetch.py b/cli/app/commands/bigbigan/fetch.py new file mode 100644 index 0000000..5b6c102 --- /dev/null +++ b/cli/app/commands/bigbigan/fetch.py @@ -0,0 +1,57 @@ +import click + +from app.utils import click_utils +from app.settings import app_cfg + +from os.path import join +from subprocess import call + +@click.command('') +# @click.option('-i', '--input', 'opt_dir_in', required=True, +# help='Path to input image glob directory') +# @click.option('-r', '--recursive', 'opt_recursive', is_flag=True) +@click.pass_context +def cli(ctx): + """ + """ + + # app_cfg.MODELZOO_CFG + import gensim + + # from nltk.corpus import wordnet as wn + # synsets = wordnet.synsets("fir_tree") + # synonyms = [ lemma.name() for lemma in synsets[0].lemmas() ] + + imagenet = Imagenet() + + sentence = "The quick brown fox jumps over the lazy dog" + tokens = gensim.utils.simple_preprocess(sentence) + +class Imagenet: + def __init__(): + tokens = {} + with open(app_cfg.FP_IMAGENET_WORDS, "r") as fp: + for line in fp.readlines(): + wordnet_id, word_list = line.split('\t') + words = [word.trim() for word in word_list.split(',')] + for word in words: + tokens[word] = wordnet_id + self.tokens = tokens + + def get_wordnet_ids_for_words(tokens): + # for token in tokens: + # if token in tokens: + pass + + def images_from_wordnet_id(wordnet_id): + """ + Given a Wordnet ID, download images for this class + """ + call([ + "python", + join(app_cfg.DIR_APP, "../ImageNet-Datasets-Downloader/downloader.py"), + '-data_root', app_cfg.FP_IMAGENET, + '-use_class_list', 'True', + '-class_list', wordnet_id, + '-images_per_class', app_cfg.IMAGENET_IMAGES_PER_CLASS + ]) diff --git a/cli/app/commands/bigbigan/random.py b/cli/app/commands/bigbigan/random.py new file mode 100644 index 0000000..a1fd65f --- /dev/null +++ b/cli/app/commands/bigbigan/random.py @@ -0,0 +1,46 @@ +import click + +from app.utils import click_utils +from app.settings import app_cfg + +from os.path import join +import time +import numpy as np + +from PIL import Image + +def image_to_uint8(x): + """Converts [-1, 1] float array to [0, 255] uint8.""" + x = np.asarray(x) + x = (256. / 2.) * (x + 1.) + x = np.clip(x, 0, 255) + x = x.astype(np.uint8) + return x + +@click.command('') +# @click.option('-i', '--input', 'opt_dir_in', required=True, +# help='Path to input image glob directory') +# @click.option('-r', '--recursive', 'opt_recursive', is_flag=True) +@click.pass_context +def cli(ctx): + """ + """ + import tensorflow as tf + import tensorflow_hub as hub + + print("Loading module...") + module = hub.Module('https://tfhub.dev/deepmind/bigbigan-resnet50/1') + z = tf.random.normal([8, 120]) # latent samples + outputs = module(z, signature='generate', as_dict=True) + + with tf.Session() as sess: + sess.run(tf.compat.v1.global_variables_initializer()) + sess.run(tf.compat.v1.tables_initializer()) + results = sess.run(outputs) + + for sample in results['default']: + sample = image_to_uint8(sample) + img = Image.fromarray(sample, "RGB") + fp_img_out = "{}.png".format(int(time.time() * 1000)) + img.save(join(app_cfg.DIR_OUTPUTS, fp_img_out)) + |
