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)
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
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
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()
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)