train_iter, dev_iter, test_iter = data.BucketIterator.splits( (train, dev, test), batch_size=args.batch_size, device=device) config = args config.n_embed = len(inputs.vocab) config.d_out = len(answers.vocab) config.n_cells = config.n_layers # double the number of cells for bidirectional networks if config.birnn: config.n_cells *= 2 if args.resume_snapshot: model = torch.load(args.resume_snapshot, map_location=device) else: model = SNLIClassifier(config) if args.word_vectors: model.embed.weight.data.copy_(inputs.vocab.vectors) model.to(device) criterion = nn.CrossEntropyLoss() opt = O.Adam(model.parameters(), lr=args.lr) iterations = 0 start = time.time() best_dev_acc = -1 train_iter.repeat = False header = ' Time Epoch Iteration Progress (%Epoch) Loss Dev/Loss Accuracy Dev/Accuracy' dev_log_template = ' '.join( '{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{:8.6f},{:12.4f},{:12.4f}' .split(','))
config = args config.n_embed = len(inputs.vocab) config.d_out = len(answers.vocab) config.n_cells = config.n_layers # double the number of cells for bidirectional networks if config.birnn: config.n_cells *= 2 if args.resume_snapshot: model = torch.load( args.resume_snapshot, map_location=lambda storage, locatoin: storage.cuda(args.gpu)) else: model = SNLIClassifier(config) if args.word_vectors: model.embed.weight.data.copy_(inputs.vocab.vectors) model.cuda(args.gpu) criterion = nn.CrossEntropyLoss() opt = O.Adam(model.parameters(), lr=args.lr) iterations = 0 start = time.time() best_dev_acc = -1 train_iter.repeat = False header = ' Time Epoch Iteration Progress (%Epoch) Loss Dev/Loss Accuracy Dev/Accuracy' dev_log_template = ' '.join( '{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{:8.6f},{:12.4f},{:12.4f}' .split(','))
answers.build_vocab(train) train_iter, dev_iter, test_iter = data.BucketIterator.splits( (train, dev, test), batch_size=args.batch_size, device=args.gpu) config = args config.n_embed = len(inputs.vocab) config.d_out = len(answers.vocab) config.n_cells = config.n_layers if config.birnn: config.n_cells *= 2 if args.resume_snapshot: model = torch.load(args.resume_snapshot, map_location=lambda storage, locatoin: storage.cuda(args.gpu)) else: model = SNLIClassifier(config) if args.word_vectors: model.embed.weight.data = inputs.vocab.vectors model.cuda() criterion = nn.CrossEntropyLoss() opt = O.Adam(model.parameters(), lr=args.lr) iterations = 0 start = time.time() best_dev_acc = -1 train_iter.repeat = False header = ' Time Epoch Iteration Progress (%Epoch) Loss Dev/Loss Accuracy Dev/Accuracy' dev_log_template = ' '.join('{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{:8.6f},{:12.4f},{:12.4f}'.split(',')) log_template = ' '.join('{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{},{:12.4f},{}'.split(',')) os.makedirs(args.save_path, exist_ok=True)
train_iter, dev_iter, test_iter = data.BucketIterator.splits( (train, dev, test), batch_size=args.batch_size, device=device) config = args config.n_embed = len(inputs.vocab) config.d_out = len(answers.vocab) config.n_cells = config.n_layers # double the number of cells for bidirectional networks if config.birnn: config.n_cells *= 2 if args.resume_snapshot: model = torch.load(args.resume_snapshot, map_location=device) else: model = SNLIClassifier(config) if args.word_vectors: model.embed.weight.data.copy_(inputs.vocab.vectors) model.to(device) criterion = nn.CrossEntropyLoss() opt = O.Adam(model.parameters(), lr=args.lr) iterations = 0 start = time.time() best_dev_acc = -1 header = ' Time Epoch Iteration Progress (%Epoch) Loss Dev/Loss Accuracy Dev/Accuracy' dev_log_template = ' '.join('{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{:8.6f},{:12.4f},{:12.4f}'.split(',')) log_template = ' '.join('{:>6.0f},{:>5.0f},{:>9.0f},{:>5.0f}/{:<5.0f} {:>7.0f}%,{:>8.6f},{},{:12.4f},{}'.split(',')) makedirs(args.save_path) print(header)
config.lr_decay_by = 0.75 config.lr_decay_every = 1 #0.6 config.regularization = 0 #3e-6 config.mlp_dropout = 0.07 config.embed_dropout = 0.08 # 0.17 config.n_mlp_layers = 2 config.d_tracker = 64 config.d_mlp = 1024 config.d_hidden = 300 config.d_embed = 300 config.d_proj = 600 torch.backends.cudnn.enabled = False else: config.regularization = 0 model = SNLIClassifier(config) if config.spinn: model.out[len(model.out._modules) - 1].weight.data.uniform_(-0.005, 0.005) if args.word_vectors: model.embed.weight.data = inputs.vocab.vectors if args.gpu != -1: model.cuda() print(next(model.parameters()).is_cuda) if args.resume_snapshot: model.load_state_dict(torch.load(args.resume_snapshot)) criterion = nn.CrossEntropyLoss() #opt = optim.Adam(model.parameters(), lr=args.lr) opt = optim.RMSprop(model.parameters(), lr=config.lr, alpha=0.9,
train_iter, dev_iter, test_iter = data.BucketIterator.splits( (train, dev, test), batch_size=args.batch_size, device=device) config = args config.n_embed = len(inputs.vocab) config.d_out = len(answers.vocab) config.n_cells = config.n_layers # double the number of cells for bidirectional networks if config.birnn: config.n_cells *= 2 if args.resume_snapshot: model = torch.load(args.resume_snapshot, map_location=device) else: model = SNLIClassifier(config) if args.word_vectors: model.embed.weight.data.copy_(inputs.vocab.vectors) model.to(device) modelfile=os.path.join(args.save_path,[e for e in os.listdir(args.save_path) if '_'.join(e.split('_')[0:2])=='best_snapshot'][0]) print(modelfile) model = torch.load(modelfile) model.eval() # calculate accuracy on test set n_test_correct, test_loss = 0, 0 with torch.no_grad(): for test_batch_idx, test_batch in enumerate(test_iter): answer = model(test_batch, None, None)