Esempio n. 1
0
def train_drqa(cmdline_args, use_cuda=True):
    # Parse cmdline args and setup environment
    parser = argparse.ArgumentParser(
        'DrQA Document Reader',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    add_train_args(parser)
    config.add_model_args(parser)
    args = parser.parse_args(cmdline_args)
    set_defaults(args)

    # Set cuda
    # args.cuda = not args.no_cuda and torch.cuda.is_available()
    args.cuda = use_cuda and torch.cuda.is_available()
    if args.cuda:
        logger.info('Using GPU')
        torch.cuda.set_device(args.gpu)
    else:
        logger.info('Using CPU')
    if args.use_bert_embeddings:
        assert args.cuda, 'Must use CUDA if doing BERT training.'

    # NOTE: The code below is commented out because it is done in smallfry utils.
    # Set random state
    # np.random.seed(args.random_seed)
    # torch.manual_seed(args.random_seed)
    # if args.cuda:
    #     torch.cuda.manual_seed(args.random_seed)

    # Set logging
    # logger.setLevel(logging.INFO)
    # fmt = logging.Formatter('%(asctime)s: [ %(message)s ]',
    #                         '%m/%d/%Y %I:%M:%S %p')
    # console = logging.StreamHandler()
    # console.setFormatter(fmt)
    # logger.addHandler(console)
    # if args.log_file:
    #     if args.checkpoint:
    #         logfile = logging.FileHandler(args.log_file, 'a')
    #     else:
    #         logfile = logging.FileHandler(args.log_file, 'w')
    #     logfile.setFormatter(fmt)
    #     logger.addHandler(logfile)
    # logger.info('COMMAND: %s' % ' '.join(sys.argv))

    # Run!
    return main(args)
Esempio n. 2
0
        pin_memory=args.cuda,
    )
    stats = {'timer': utils.Timer(), 'epoch': 0, 'best_valid': 0}
    scores, pred_objs = compute_expected_metric(args, dev_loader, model, stats,
                                                dev_offsets, dev_texts,
                                                dev_answers)
    return scores, pred_objs


if __name__ == '__main__':
    # Parse cmdline args and setup environment
    parser = argparse.ArgumentParser(
        'DrQA Document Reader',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    add_train_args(parser)
    config.add_model_args(parser)
    args = parser.parse_args()
    set_defaults(args)

    # Set cuda
    args.cuda = not args.no_cuda and torch.cuda.is_available()
    if args.cuda:
        torch.cuda.set_device(args.gpu)

    # Set random state
    np.random.seed(args.random_seed)
    torch.manual_seed(args.random_seed)
    if args.cuda:
        torch.cuda.manual_seed(args.random_seed)

    # Set logging
Esempio n. 3
0
        if result[args.valid_metric] > stats['best_valid']:
            logger.info('Best valid: %s = %.2f (epoch %d, %d updates)' %
                        (args.valid_metric, result[args.valid_metric],
                         stats['epoch'], model.updates))
            model.save(args.model_file)
            stats['best_valid'] = result[args.valid_metric]


if __name__ == '__main__':
    # Parse cmdline args and setup environment
    parser = argparse.ArgumentParser(
        'DrQA Document Reader',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter
    )
    add_train_args(parser)
    config.add_model_args(parser)
    args = parser.parse_args()
    set_defaults(args)

    # Set cuda
    args.cuda = not args.no_cuda and torch.cuda.is_available()
    if args.cuda:
        torch.cuda.set_device(args.gpu)

    # Set random state
    np.random.seed(args.random_seed)
    torch.manual_seed(args.random_seed)
    if args.cuda:
        torch.cuda.manual_seed(args.random_seed)

    # Set logging
Esempio n. 4
0
                    action='store_true',
                    help='Only store single top span instead of top N list')
parser.add_argument('--use-default', action="store_true")
args = parser.parse_args()
t0 = time.time()

args.cuda = not args.no_cuda and torch.cuda.is_available()
if args.cuda:
    torch.cuda.set_device(args.gpu)
    logger.info('CUDA enabled (GPU %d)' % args.gpu)
else:
    logger.info('Running on CPU only.')

if args.use_default:
    other_parser = argparse.ArgumentParser()
    add_model_args(other_parser)
    other_args = other_parser.parse_args([])
else:
    print("no other args")
    other_args = None

predictor = Predictor(model=args.model,
                      tokenizer=args.tokenizer,
                      embedding_file=args.embedding_file,
                      num_workers=args.num_workers,
                      other_args=other_args)
if args.cuda:
    predictor.cuda()

# ------------------------------------------------------------------------------
# Read in dataset and make predictions.