in tcav/tcav_examples/image_models/imagenet/imagenet_and_broden_fetcher.py [0:0]
def generate_random_folders(working_directory, random_folder_prefix,
number_of_random_folders,
number_of_examples_per_folder, imagenet_dataframe):
imagenet_concepts = imagenet_dataframe["class_name"].values.tolist()
for partition_number in range(number_of_random_folders):
partition_name = random_folder_prefix + "_" + str(partition_number)
partition_folder_path = os.path.join(working_directory, partition_name)
tf.io.gfile.makedirs(partition_folder_path)
# Select a random concept
examples_selected = 0
while examples_selected < number_of_examples_per_folder:
random_concept = random.choice(imagenet_concepts)
urls = fetch_all_urls_for_concept(imagenet_dataframe, random_concept)
for url in urls:
# We are filtering out images from Flickr urls, since several of those were removed
if "flickr" not in url:
try:
download_image(partition_folder_path, url)
examples_selected += 1
if (examples_selected) % 10 == 0:
tf.compat.v1.logging.info("Downloaded " + str(examples_selected) + "/" +
str(number_of_examples_per_folder) + " for " +
partition_name)
break # Break if we successfully downloaded an image
except:
pass # try new url