Ejemplo n.º 1
0
        ds_dir + 'datasets/TIMIT/traininglist_100/testlist_200.txt')
    rnd.shuffle(TIMIT_lst)

    p = Augmentor.Pipeline()
    p.random_distortion(probability=1,
                        grid_width=4,
                        grid_height=4,
                        magnitude=8)
    p.flip_left_right(probability=0.5)
    p.flip_top_bottom(probability=0.5)
    p.rotate90(probability=0.5)
    p.rotate270(probability=0.5)

    dp = Birds200DataProvider(
        min_cluster_count=1,
        max_cluster_count=5,
        target_img_size=(128, 128),
        min_element_count_per_cluster=2,
        additional_augmentor=lambda x: p.sample_with_array(x))
    dp.use_augmentation_for_test_data = False
    dp.use_augmentation_for_validation_data = False
    en = CnnEmbedding(output_size=256,
                      cnn_layers_per_block=1,
                      block_feature_counts=[32, 64, 128],
                      fc_layer_feature_counts=[256],
                      hidden_activation=LeakyReLU(),
                      final_activation=LeakyReLU(),
                      batch_norm_for_init_layer=False,
                      batch_norm_after_activation=True,
                      batch_norm_for_final_layer=True,
                      dropout_init=0.25,
                      dropout_after_max_pooling=[0.25, 0.25, 0.25],
    from impl.nn.base.embedding_nn.cnn_embedding import CnnEmbedding

    is_linux = platform == "linux" or platform == "linux2"
    top_dir = "/cluster/home/meierbe8/data/MT/" if is_linux else "G:/tmp/"
    ds_dir = "./" if is_linux else "../"

    p = Augmentor.Pipeline()
    p.random_distortion(probability=1, grid_width=4, grid_height=4, magnitude=8)
    p.flip_left_right(probability=0.5)
    p.flip_top_bottom(probability=0.5)
    p.rotate90(probability=0.5)
    p.rotate270(probability=0.5)

    dp = Birds200DataProvider(
        min_cluster_count=1,
        max_cluster_count=5,
        additional_augmentor=lambda x: p.sample_with_array(x),
        target_img_size=(96, 96)
    )

    en = CnnEmbedding(
        output_size=2,
        cnn_layers_per_block=2, block_feature_counts=[2],
        fc_layer_feature_counts=[2], hidden_activation=LeakyReLU(), final_activation=LeakyReLU(),
        batch_norm_for_init_layer=False, batch_norm_after_activation=True, batch_norm_for_final_layer=True,
    )

    c_nn = ClusterNNTry00_V30(dp, 5, en, lstm_layers=1, internal_embedding_size=3, cluster_count_dense_layers=1, cluster_count_dense_units=2,
                              output_dense_layers=1, output_dense_units=2, cluster_count_lstm_layers=2, cluster_count_lstm_units=2,
                              kl_embedding_size=2)
    c_nn.include_self_comparison = False
    c_nn.weighted_classes = True
Ejemplo n.º 3
0
if __name__ == '__main__':

    # Difference to test_cluster_nn_try00.py: No embedding is used and the network always returns that 10 clusters were
    # found, but some of them may be empty

    from sys import platform

    from impl.data.image.birds200_data_provider import Birds200DataProvider
    from impl.nn.base.embedding_nn.cnn_embedding import CnnEmbedding

    is_linux = platform == "linux" or platform == "linux2"
    top_dir = "/cluster/home/meierbe8/data/MT/" if is_linux else "G:/tmp/"
    ds_dir = "./" if is_linux else "../"

    dp = Birds200DataProvider(min_cluster_count=1, max_cluster_count=5)
    en = CnnEmbedding(output_size=256,
                      cnn_layers_per_block=1,
                      block_feature_counts=[64, 128, 256],
                      fc_layer_feature_counts=[256],
                      hidden_activation=LeakyReLU(),
                      final_activation=LeakyReLU(),
                      batch_norm_for_init_layer=False,
                      batch_norm_after_activation=True,
                      batch_norm_for_final_layer=True,
                      dropout_after_fc=[0.5],
                      dropout_after_max_pooling=[0.5, 0.5, 0.5],
                      dropout_init=0.5)

    c_nn = ClusterNNTry00_V50(dp,
                              20,
    #     data_dir=top_dir + "/TIMIT", cache_directory=top_dir + "/test/cache",
    #     min_cluster_count=5,
    #     max_cluster_count=5,
    #     return_1d_audio_data=False,
    #
    #     train_classes=speaker_list,
    #     test_classes=speaker_list,
    #     validate_classes=speaker_list,
    #
    #     concat_audio_files_of_speaker=True
    # )
    classes = list(range(5))
    dp = Birds200DataProvider(
        train_classes=classes,
        validate_classes=classes,
        test_classes=classes,
        min_cluster_count=5,
        max_cluster_count=5,
    )

    def get_cnn(dataprovider=None):
        if dataprovider is None:
            dataprovider = dp
        en = CnnEmbedding(output_size=100,
                          cnn_layers_per_block=1,
                          block_feature_counts=[32, 64],
                          fc_layer_feature_counts=[100],
                          hidden_activation='relu',
                          final_activation='relu',
                          batch_norm_for_init_layer=True,
                          dropout_after_max_pooling=0.5,