result.write(str(idx + 1) + '.\n') result.write("GOLD\n" + gold.encode('ascii', 'ignore').decode('utf-8', 'ignore') + '\n') result.write( "GEN\n" + beam.encode('ascii', 'ignore').decode('utf-8', 'ignore').lower() + '\n\n') return preds, golds if __name__ == "__main__": args = parse_args() args.eval = True dataset = PaperDataset(args) args = set_args(args, dataset) model = Model(args) state_dict = torch.load(args.save, map_location=lambda storage, location: storage) model.load_state_dict(state_dict) model = model.to(args.device) model.args = args model.maxlen = args.maxlen model.starttok = dataset.OUTPUT.vocab.stoi['<start>'] model.endtok = dataset.OUTPUT.vocab.stoi['<eos>'] model.eostok = dataset.OUTPUT.vocab.stoi['.'] test(args, dataset, model) # evaluate(model, dataset, args) # uncomment this and comment above in order to check loss and PPL