import models import nrekit import sys import torch from torch import optim from nrekit.data_loader import JSONFileDataLoader as DataLoader max_length = 40 train_data_loader = DataLoader('./data/train.json', './data/glove.6B.50d.json', max_length=max_length) val_data_loader = DataLoader('./data/val_select.json', './data/glove.6B.50d.json', max_length=max_length) test_data_loader = DataLoader('./data/test.json', './data/glove.6B.50d.json', max_length=max_length) distant = DataLoader('./data/distant.json', './data/glove.6B.50d.json', max_length=max_length, distant=True) framework = nrekit.framework.Framework(train_data_loader, val_data_loader, test_data_loader, distant) sentence_encoder = nrekit.sentence_encoder.CNNSentenceEncoder(train_data_loader.word_vec_mat, max_length) sentence_encoder2 = nrekit.sentence_encoder.CNNSentenceEncoder(train_data_loader.word_vec_mat, max_length) model2 = models.snowball_siamese.Siamese(sentence_encoder2, hidden_size=230) model = models.snowball_siamese.Snowball(sentence_encoder, base_class=train_data_loader.rel_tot, siamese_model=model2, hidden_size=230) # load pretrain checkpoint = torch.load('./checkpoint/cnn_encoder_on_fewrel.pth.tar.bak')['state_dict'] checkpoint2 = torch.load('./checkpoint/cnn_siamese_euc_on_fewrel.pth.tar.bak')['state_dict'] for key in checkpoint2: checkpoint['siamese_model.' + key] = checkpoint2[key] model.load_state_dict(checkpoint) model.cuda() model.train() model_name = 'cnn_snowball_euc'
import models import nrekit import sys from torch import optim from nrekit.data_loader import JSONFileDataLoader as DataLoader max_length = 40 train_data_loader = DataLoader('./data/train_train.json', './data/glove.6B.50d.json', max_length=max_length) val_data_loader = DataLoader('./data/train_val.json', './data/glove.6B.50d.json', max_length=max_length, rel2id=train_data_loader.rel2id, shuffle=False) framework = nrekit.framework.SuperviseFramework(train_data_loader, val_data_loader) sentence_encoder = nrekit.sentence_encoder.CNNSentenceEncoder(train_data_loader.word_vec_mat, max_length) model = models.snowball.Siamese(sentence_encoder, hidden_size=230) model_name = 'cnn_siamese_on_fewrel' # set optimizer batch_size = 128 train_iter = 30000 parameters_to_optimize = filter(lambda x:x.requires_grad, model.parameters()) optimizer = optim.SGD(parameters_to_optimize, 1., weight_decay=1e-5) framework.train_siamese(model, model_name, optimizer=optimizer, batch_size=batch_size, train_iter=train_iter, learning_rate=1., warmup=True)
import models import nrekit import sys from torch import optim from nrekit.data_loader import JSONFileDataLoader as DataLoader from pytorch_pretrained_bert import BertAdam max_length = 40 train_data_loader = DataLoader('./data/train_train.json', './data/glove.6B.50d.json', max_length=max_length) val_data_loader = DataLoader('./data/val.json', './data/glove.6B.50d.json', max_length=max_length) framework = nrekit.framework.SuperviseFramework(train_data_loader, val_data_loader) sentence_encoder = nrekit.sentence_encoder.CNNSentenceEncoder( train_data_loader.word_vec_mat, max_length) model = models.snowball_euc.Siamese(sentence_encoder, hidden_size=230) model_name = 'cnn_siamese_euc_on_fewrel' checkpoint = framework.__load_model__('./checkpoint/' + model_name + '.pth.tar.bak') model.load_state_dict(checkpoint['state_dict']) model.cuda() framework.eval_siamese(model, eval_iter=500,