Esempio n. 1
0
def make_randoms(source_dir, number_of_images_per_folder,
                 number_of_random_folders):

    logging.basicConfig(filename=source_dir + '/logger.log',
                        level=logging.INFO)

    # Run script to download data to source_dir
    if not gfile.exists(source_dir):
        gfile.makedirs(source_dir)
    if not gfile.exists(os.path.join(
            source_dir, 'broden1_224/')) or not gfile.exists(
                os.path.join(source_dir, 'inception5h')):
        subprocess.call(['bash', 'FetchDataAndModels.sh', source_dir])

    # make targets from imagenet
    imagenet_dataframe = fetcher.make_imagenet_dataframe(
        "/home/tomohiro/code/tcav/tcav/tcav_examples/image_models/imagenet/imagenet_url_map.csv"
    )

    # Make random folders. If we want to run N random experiments with tcav, we need N+1 folders.
    fetcher.generate_random_folders(
        working_directory=source_dir,
        random_folder_prefix="random50",
        number_of_random_folders=number_of_random_folders + 1,
        number_of_examples_per_folder=number_of_images_per_folder,
        imagenet_dataframe=imagenet_dataframe)
Esempio n. 2
0
def make_concepts_targets_and_randoms(source_dir, number_of_images_per_folder,
                                      number_of_random_folders):

    logging.basicConfig(filename=source_dir + '/logger.log',
                        level=logging.INFO)

    # Run script to download data to source_dir
    if not gfile.exists(source_dir):
        gfile.makedirs(source_dir)
    if not gfile.exists(os.path.join(
            source_dir, 'broden1_224/')) or not gfile.exists(
                os.path.join(source_dir, 'inception5h')):
        subprocess.call(['bash', 'FetchDataAndModels.sh', source_dir])

    # make targets from imagenet
    imagenet_dataframe = fetcher.make_imagenet_dataframe(
        "/home/tomohiro/code/tcav/tcav/tcav_examples/image_models/imagenet/imagenet_url_map.csv"
    )
    all_class = imagenet_dataframe["class_name"].values.tolist()

    # Determine classes that we will fetch
    imagenet_classes = ['fire engine']
    broden_concepts = ['striped', 'dotted', 'zigzagged']
    random_except_concepts = ['zebra', 'fire engine']
    except_words = [
        'cat', 'shark', 'apron', 'dogsled', 'dumbbell', 'ball', 'bus'
    ]
    for e_word in except_words:
        random_except_concepts.extend([
            element for element in all_class
            if e_word == str(element)[-len(e_word):]
        ])

    tf.logging.info('imagenet_classe %s' % imagenet_classes)
    tf.logging.info('concepts %s' % broden_concepts)
    tf.logging.info('random_except_concepts %s' % random_except_concepts)

    for image in imagenet_classes:
        fetcher.fetch_imagenet_class(source_dir, image,
                                     number_of_images_per_folder,
                                     imagenet_dataframe)
    # Make concepts from broden
    for concept in broden_concepts:
        fetcher.download_texture_to_working_folder(
            broden_path=os.path.join(source_dir, 'broden1_224'),
            saving_path=source_dir,
            texture_name=concept,
            number_of_images=number_of_images_per_folder)

    # Make random folders. If we want to run N random experiments with tcav, we need N+1 folders.
    # (変更) 除外するクラスを指定
    fetcher.generate_random_folders(
        working_directory=source_dir,
        random_folder_prefix="random500",
        number_of_random_folders=number_of_random_folders + 1,
        number_of_examples_per_folder=number_of_images_per_folder,
        imagenet_dataframe=imagenet_dataframe,
        random_except_concepts=random_except_concepts)
Esempio n. 3
0
def make_imagent_color_concept(source_dir, number_of_images_per_folder):
    # make targets from imagenet
    imagenet_dataframe = fetcher.make_imagenet_dataframe(
        "/home/tomohiro/code/tcav/tcav/tcav_examples/image_models/imagenet/imagenet_url_map.csv"
    )
    color_lst = ['red', 'yellow', 'blue', 'green']
    fetcher.fetch_imagenet_class_color(source_dir,
                                       number_of_images_per_folder,
                                       imagenet_dataframe,
                                       folder_prefix="imagenet",
                                       color_lst=color_lst)
Esempio n. 4
0
def make_targets(source_dir, number_of_images_per_folder):

    # make targets from imagenet
    imagenet_dataframe = fetcher.make_imagenet_dataframe(
        "/home/tomohiro/code/tcav/tcav/tcav_examples/image_models/imagenet/imagenet_url_map.csv"
    )
    all_class = imagenet_dataframe["class_name"].values.tolist()

    # Determine classes that we will fetch
    imagenet_classes = ['soccer ball']

    for image in imagenet_classes:
        fetcher.fetch_imagenet_class(source_dir, image,
                                     number_of_images_per_folder,
                                     imagenet_dataframe)
Esempio n. 5
0
def make_concepts_targets_and_randoms(source_dir, number_of_images_per_folder,
                                      number_of_random_folders):
    # Run script to download data to source_dir
    if not gfile.exists(source_dir):
        gfile.makedirs(source_dir)
    if not gfile.exists(os.path.join(
            source_dir, 'broden1_224/')) or not gfile.exists(
                os.path.join(source_dir, 'inception5h')):
        subprocess.call(['bash', 'FetchDataAndModels.sh', source_dir])

    # Determine classes that we will fetch
    imagenet_classes = ['zebra']
    broden_concepts = ['striped', 'dotted', 'zigzagged']

    # make targets from imagenet
    imagenet_dataframe = fetcher.make_imagenet_dataframe(
        "./imagenet_url_map.csv")
    for image in imagenet_classes:
        fetcher.fetch_imagenet_class(source_dir, image,
                                     number_of_images_per_folder,
                                     imagenet_dataframe)

    # Make concepts from broden
    for concept in broden_concepts:
        fetcher.download_texture_to_working_folder(
            broden_path=os.path.join(source_dir, 'broden1_224'),
            saving_path=source_dir,
            texture_name=concept,
            number_of_images=number_of_images_per_folder)

    # Make random folders. If we want to run N random experiments with tcav, we need N+1 folders.
    fetcher.generate_random_folders(
        working_directory=source_dir,
        random_folder_prefix="random500",
        number_of_random_folders=number_of_random_folders + 1,
        number_of_examples_per_folder=number_of_images_per_folder,
        imagenet_dataframe=imagenet_dataframe)