def test_model_train_generator():
    config['model']["samples.per.epoch"] = webquestions.get_train_sample_size()
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train_on_generator(webquestions)
    print('Training finished')
def test_model_train():
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_question_tokens_set(),
                                 webquestions.get_property_set())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    print('Training finished')
def test_model_test_basernn():
    config['model']["base.model"] = "rnn"
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    print('Training finished')
def test_access_sample_with_model():
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'], logger=logger)
    trainablemodel.prepare_model(webquestions.get_question_tokens_set(), webquestions.get_property_set())
    input_set, targets = webquestions.get_training_samples(model=trainablemodel)
    assert len(input_set) == len(targets)
    if config['webquestions'].get('target.dist'):
        assert len(targets[0]) == config['webquestions'].get('max.negative.samples')
    else:
        assert type(targets[0]) == np.int32
    assert all('edgeSet' in g for g in input_set[0][1])
    assert all(len(g['edgeSet']) > 0 for s in input_set for g in s[1])
def test_model_save_load():
    config['model']["model.checkpoint"] = True
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    trainablemodel.load_last_saved()
    print('Training finished')
def test_model_test_attn():
    config['model']["graph.mode"] = "att"
    config['model']['epochs'] = 5
    config['model']['sem.layer.depth'] = 2
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    print('Training finished')
def test_model_test():
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    print('Training finished')
    accuracy_on_silver, predicted_targets = trainablemodel.test_on_silver(
        webquestions.get_full_validation(), verbose=True)
    print("Accuracy on silver data: {}".format(accuracy_on_silver))
def test_model_sampling():
    config['model']['epochs'] = 5
    config['model']['monitor'] = "acc"
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel._sampling_interval = 2
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples(),
        model_sampling=True)
    print('Training finished')
def test_model_multiclass():
    config['model']['epochs'] = 10
    config['model']['loss'] = "mlml"
    config['webquestions']['target.dist'] = "multiclass"
    webquestions = webquestions_io.WebQuestions(config['webquestions'],
                                                logger=logger)
    _, silver_test_targets = webquestions.get_full_validation()
    print(silver_test_targets[:10])
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_training_tokens(),
                                 webquestions.get_training_properties_tokens())
    trainablemodel.train(
        webquestions,
        validation_with_targets=webquestions.get_validation_samples())
    print('Training finished')
Пример #10
0
def test_model_question_encode():
    trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                                logger=logger)
    trainablemodel.prepare_model(webquestions.get_question_tokens_set(),
                                 webquestions.get_property_set())
    input_set, targets = webquestions.get_training_samples()
    print(input_set[0][0])
    print(trainablemodel._preprocess_sentence_tokens(*input_set[0]))
    q_encoding = trainablemodel.encode_question(input_set[0])
    print(q_encoding)
    assert q_encoding[5, trainablemodel._trigram_vocabulary['<e>']] == 1
    print(input_set[0][1][1])
    print(
        wdaccess.property2label[input_set[0][1][1]['edgeSet'][0]['kbID'][:-1]])
    print(
        trainablemodel._get_edge_str_representation(
            input_set[0][1][1]['edgeSet'][0]))
Пример #11
0
config['webquestions']['extensions'] = []
config['webquestions']['max.entity.options'] = 1
# config['webquestions']['target.dist'] = True
config['model']['graph.choices'] = config['webquestions'].get(
    "max.negative.samples", 30)
config['model']['epochs'] = 3
webquestions = webquestions_io.WebQuestions(config['webquestions'],
                                            logger=logger)

config['model']['max.sent.len'] = 10
config['model']["batch.size"] = 10
config['model']["encode.iclass"] = True
stages.ARG_TYPES = set()

config['model']["model.checkpoint"] = True
trainablemodel = models.CNNLabelsTorchModel(parameters=config['model'],
                                            logger=logger)
trainablemodel.load_from_file(
    "../trainedmodels/CNNLabelsTorchModel_103.torchweights")

logging.basicConfig(level=logging.DEBUG)
staged_generation.logger.setLevel(logging.DEBUG)


def test_ground_with_model():
    stages.HOP_TYPES = set()
    webquestions_entities = webquestions.extract_question_entities()
    i = 3
    print(webquestions.get_question_tokens(i))
    entity_linking.entity_linking_p["max.entity.options"] = 1
    question_entities = webquestions_entities[i]
    ungrounded_graph = {