summaryrefslogtreecommitdiff
path: root/cli/app/commands/bigbigan
diff options
context:
space:
mode:
Diffstat (limited to 'cli/app/commands/bigbigan')
-rw-r--r--cli/app/commands/bigbigan/fetch.py57
-rw-r--r--cli/app/commands/bigbigan/random.py46
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))
+