Exemplo n.º 1
0
    def objective(hyperpar):
        [
            init_method,
            max_init_weight,
            embed_size,
            rnn_size,
            post_image_size,
            pre_output_size,
            post_image_activation,
            rnn_type,
            optimizer,
            learning_rate,
            normalize_image,
            weights_reg_weight,
            image_dropout_prob,
            post_image_dropout_prob,
            embedding_dropout_prob,
            rnn_dropout_prob,
            max_gradient_norm,
            minibatch_size,
            beam_width,
        ] = hyperpar
        with model_neural_trad.TradNeuralModel(
                vocab_size=vocab.size,
                init_method=init_method,
                max_init_weight=max_init_weight,
                embed_size=embed_size,
                rnn_size=rnn_size,
                post_image_size=post_image_size,
                pre_output_size=pre_output_size,
                post_image_activation=post_image_activation,
                rnn_type=rnn_type,
                architecture='merge',
                optimizer=optimizer,
                learning_rate=learning_rate,
                normalize_image=normalize_image,
                weights_reg_weight=weights_reg_weight,
                image_dropout_prob=image_dropout_prob,
                post_image_dropout_prob=post_image_dropout_prob,
                embedding_dropout_prob=embedding_dropout_prob,
                rnn_dropout_prob=rnn_dropout_prob,
                max_gradient_norm=max_gradient_norm,
                freeze_prefix_params=True,
        ) as model:
            model.compile_model()

            result = list()
            for _ in range(config.hyperpar_num_runs):
                model.init_params()
                model.set_prefix_params(best_prefix_params)

                model.fit(dataset,
                          config.hyperpar_dir + '/langmodtrans/' + corpus +
                          '/2_model.hdf5',
                          max_batch_size=config.val_batch_size,
                          minibatch_size=minibatch_size,
                          max_epochs=config.hyperpar_max_epochs,
                          early_stop_patience=config.early_stop_patience)

                (index_sents, logprobs) = model.generate_sents_beamsearch(
                    max_batch_size=config.val_batch_size,
                    images=test_images,
                    beam_width=beam_width,
                    lower_bound_len=config.lower_bound_len,
                    upper_bound_len=config.upper_bound_len,
                    temperature=config.temperature)
                text_sents = index_sents.decompile_sents(vocab).sents

                wmd = evaluation.get_wmd_score(test_sents, text_sents)[0]

                result.append(wmd)

            return -np.mean(result)
Exemplo n.º 2
0
        langmod_minibatch_size = int(hyperpars['minibatch_size'])
        langmod_beam_width = int(hyperpars['beam_width'])

        correct_sents = datasources['test'].tokenize_sents().text_sents.sents

        with model_neural_trad.TradNeuralModel(
                vocab_size=langmod_vocab.size,
                init_method=langmod_init_method,
                max_init_weight=langmod_max_init_weight,
                embed_size=langmod_embed_size,
                rnn_size=langmod_rnn_size,
                post_image_size=langmod_post_image_size,
                pre_output_size=langmod_pre_output_size,
                post_image_activation=langmod_post_image_activation,
                rnn_type=langmod_rnn_type,
                architecture='langmod',
                optimizer=langmod_optimizer,
                learning_rate=langmod_learning_rate,
                normalize_image=langmod_normalize_image,
                weights_reg_weight=langmod_weights_reg_weight,
                image_dropout_prob=langmod_image_dropout_prob,
                post_image_dropout_prob=langmod_post_image_dropout_prob,
                embedding_dropout_prob=langmod_embedding_dropout_prob,
                rnn_dropout_prob=langmod_rnn_dropout_prob,
                max_gradient_norm=langmod_max_gradient_norm,
                freeze_prefix_params=False,
        ) as model:
            model.compile_model()
            model.set_params(
                model.load_params(config.results_dir + '/langmodtrans/' +
                                  dataset_name + '/' + lm_dir_name +
                                  '/1_model.hdf5'))
Exemplo n.º 3
0
    def objective(hyperpar):
        [
            init_method,
            max_init_weight,
            embed_size,
            rnn_size,
            post_image_size,
            pre_output_size,
            post_image_activation,
            rnn_type,
            optimizer,
            learning_rate,
            normalize_image,
            weights_reg_weight,
            image_dropout_prob,
            post_image_dropout_prob,
            embedding_dropout_prob,
            rnn_dropout_prob,
            max_gradient_norm,
            minibatch_size,
            beam_width,
        ] = hyperpar
        with model_neural_trad.TradNeuralModel(
                vocab_size=vocab.size,
                init_method=init_method,
                max_init_weight=max_init_weight,
                embed_size=embed_size,
                rnn_size=rnn_size,
                post_image_size=post_image_size,
                pre_output_size=pre_output_size,
                post_image_activation=post_image_activation,
                rnn_type=rnn_type,
                architecture='langmod',
                optimizer=optimizer,
                learning_rate=learning_rate,
                normalize_image=normalize_image,
                weights_reg_weight=weights_reg_weight,
                image_dropout_prob=image_dropout_prob,
                post_image_dropout_prob=post_image_dropout_prob,
                embedding_dropout_prob=embedding_dropout_prob,
                rnn_dropout_prob=rnn_dropout_prob,
                max_gradient_norm=max_gradient_norm,
                freeze_prefix_params=False,
        ) as model:
            model.compile_model()

            result = list()
            for _ in range(config.hyperpar_num_runs):
                model.init_params()

                model.fit(dataset,
                          config.hyperpar_dir + '/langmodtrans/' + corpus +
                          '/1_model.hdf5',
                          max_batch_size=config.val_batch_size,
                          minibatch_size=minibatch_size,
                          max_epochs=config.hyperpar_max_epochs,
                          early_stop_patience=config.early_stop_patience)

                (logpplx, num_inf_pplx) = evaluation.get_loggeomean_perplexity(
                    model.get_sents_logprobs(
                        max_batch_size=config.val_batch_size,
                        index_sents=test_index_sents)[0],
                    test_index_sents.lens)
                if num_inf_pplx > 0:
                    raise InfinitePerplexityError()

                result.append(logpplx)

            return np.mean(result)
Exemplo n.º 4
0
                        ]
                else:
                    correct_sents = datasources['test'].shuffle(seed=0).take(
                        one_per_group=True).tokenize_sents().text_sents.sents

                model = model_neural_trad.TradNeuralModel(
                    vocab_size=vocab.size,
                    init_method=init_method,
                    max_init_weight=max_init_weight,
                    embed_size=embed_size,
                    rnn_size=rnn_size,
                    post_image_size=post_image_size,
                    pre_output_size=pre_output_size,
                    post_image_activation=post_image_activation,
                    rnn_type=rnn_type,
                    architecture=architecture,
                    optimizer=optimizer,
                    learning_rate=learning_rate,
                    normalize_image=normalize_image,
                    weights_reg_weight=weights_reg_weight,
                    image_dropout_prob=image_dropout_prob,
                    post_image_dropout_prob=post_image_dropout_prob,
                    embedding_dropout_prob=embedding_dropout_prob,
                    rnn_dropout_prob=rnn_dropout_prob,
                    max_gradient_norm=max_gradient_norm,
                    freeze_prefix_params=False,
                )
                model.compile_model()
                model.set_params(
                    model.load_params(config.results_dir + '/whereimage/' +
                                      architecture + '/' + dir_name +
                                      '/model.hdf5'))