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')
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]))
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 = {