def run_acdml():
    acdml = AttentionCrossDomainMetaLearning(
        database=None,
        val_database=ISICDatabase(),
        test_database=EuroSatDatabase(),
        network_cls=get_assembled_model,
        n=5,
        k_ml=1,
        k_val_ml=5,
        k_val=1,
        k_val_val=15,
        k_test=1,
        k_val_test=15,
        meta_batch_size=4,
        num_steps_ml=5,
        lr_inner_ml=0.05,
        num_steps_validation=5,
        save_after_iterations=15000,
        meta_learning_rate=0.001,
        report_validation_frequency=1000,
        log_train_images_after_iteration=1000,
        num_tasks_val=100,
        clip_gradients=True,
        experiment_name='acdml_11',
        val_seed=42,
        val_test_batch_norm_momentum=0.0,
    )

    acdml.train(iterations=60000)
    acdml.evaluate(iterations=100, num_tasks=1000, seed=14)
def run_separate_domain():
    test_database = ISICDatabase()
    maml = SeparateDomainMAML(
        database=test_database,
        network_cls=MiniImagenetModel,
        n=5,
        k=1,
        k_val_ml=5,
        k_val_val=15,
        k_val_test=15,
        k_test=1,
        meta_batch_size=4,
        num_steps_ml=5,
        lr_inner_ml=0.05,
        num_steps_validation=5,
        save_after_iterations=15000,
        meta_learning_rate=0.001,
        report_validation_frequency=1000,
        log_train_images_after_iteration=1000,
        number_of_tasks_val=100,
        number_of_tasks_test=1000,
        clip_gradients=True,
        experiment_name='separate_domain_isic',
        val_seed=42,
        val_test_batch_norm_momentum=0.0,
    )

    maml.train(iterations=60000)
    maml.evaluate(100, seed=14)
Esempio n. 3
0
def run_transfer_learning():
    isic_database = ISICDatabase()
    transfer_learning = TransferLearningVGG16(
        database=isic_database,
        n=5,
        k_val_test=15,
        k_test=5,
        lr_inner_ml=0.01,
        number_of_tasks_test=100,
        val_test_batch_norm_momentum=0.0,
        random_layer_initialization_seed=42,
        num_trainable_layers=0,
    )
    transfer_learning.evaluate(10, seed=42, use_val_batch_statistics=True)
 def get_test_dataset(self, seed=-1):
     database = ISICDatabase()
     test_dataset = self.get_supervised_meta_learning_dataset(
         database.test_folders,
         n=self.n,
         k=self.k_test,
         k_validation=self.k_val_test,
         meta_batch_size=1,
         seed=seed
     )
     test_dataset = test_dataset.repeat(-1)
     test_dataset = test_dataset.take(self.number_of_tasks_test)
     setattr(test_dataset, 'steps_per_epoch', self.number_of_tasks_test)
     return test_dataset
 def get_val_dataset(self):
     database = ISICDatabase()
     val_dataset = self.get_supervised_meta_learning_dataset(
         database.val_folders,
         n=self.n,
         k=self.k,
         k_validation=self.k_val_val,
         meta_batch_size=1,
         seed=self.val_seed,
     )
     val_dataset = val_dataset.repeat(-1)
     val_dataset = val_dataset.take(self.number_of_tasks_val)
     setattr(val_dataset, 'steps_per_epoch', self.number_of_tasks_val)
     return val_dataset
Esempio n. 6
0
    def get_val_dataset(self):
        databases = [ISICDatabase()]

        val_dataset = self.get_cross_domain_meta_learning_dataset(
            databases=databases,
            n=self.n,
            k=self.k,
            k_validation=self.k_val_val,
            meta_batch_size=1,
            partition='val')
        val_dataset = val_dataset.repeat(-1)
        val_dataset = val_dataset.take(self.number_of_tasks_val)
        setattr(val_dataset, 'steps_per_epoch', self.number_of_tasks_val)
        return val_dataset
Esempio n. 7
0
    def setUp(self):
        def parse_function(example_address):
            return example_address

        self.parse_function = parse_function

        self.omniglot_database = OmniglotDatabase(random_seed=-1,
                                                  num_train_classes=1200,
                                                  num_val_classes=100)
        self.mini_imagenet_database = MiniImagenetDatabase()
        self.celeba_database = CelebADatabase()
        self.lfw_database = LFWDatabase()
        self.euro_sat_database = EuroSatDatabase()
        self.isic_database = ISICDatabase()
        self.chest_x_ray_database = ChestXRay8Database()
Esempio n. 8
0

if __name__ == '__main__':
    tf.config.set_visible_devices([], 'GPU')
    root_folder_to_save = os.path.expanduser('~/datasets_visualization/')
    if not os.path.exists(root_folder_to_save):
        os.mkdir(root_folder_to_save)

    databases = (
        MiniImagenetDatabase(),
        OmniglotDatabase(random_seed=42,
                         num_train_classes=1200,
                         num_val_classes=100),
        AirplaneDatabase(),
        CUBDatabase(),
        DTDDatabase(),
        FungiDatabase(),
        VGGFlowerDatabase(),
        # TrafficSignDatabase(),
        MSCOCODatabase(),
        PlantDiseaseDatabase(),
        EuroSatDatabase(),
        ISICDatabase(),
        ChestXRay8Database(),
    )

    # for database in databases:
    #     visualize_database(database, root_folder_to_save)

    visualize_all_domains_together(databases, root_folder_to_save)
]
model = tf.keras.models.Model(inputs=vgg19.inputs, outputs=outputs)


def convert_to_activaitons(imgs):
    imgs_activations = []
    for image in imgs:
        image = convert_str_to_img(image)[np.newaxis, ...]
        activations = model.predict(image)
        imgs_activations.append(activations)
    return imgs_activations


DTDDatabase()
d1_imgs = get_all_instances(MiniImagenetDatabase())
d2_imgs = get_all_instances(ISICDatabase())
d3_imgs = get_all_instances(ChestXRay8Database())
d4_imgs = get_all_instances(PlantDiseaseDatabase())

d1_imgs = np.random.choice(d1_imgs, 10, replace=False)
d2_imgs = np.random.choice(d2_imgs, 10, replace=False)
d3_imgs = np.random.choice(d3_imgs, 10, replace=False)
d4_imgs = np.random.choice(d4_imgs, 10, replace=False)

print(d1_imgs)
print(d2_imgs)
print(d3_imgs)
print(d4_imgs)

d1_imgs_activations = convert_to_activaitons(d1_imgs)
d2_imgs_activations = convert_to_activaitons(d2_imgs)