예제 #1
0
 def train_iter_fct():
     return DataLoader.Dataloader(args,
                                  load_dataset(args, 'train', shuffle=True),
                                  args.batch_size,
                                  device,
                                  shuffle=True,
                                  is_test=False)
예제 #2
0
def validate(args, device_id, pt, step):
    if pt != '':
        test_from = pt
    else:
        test_from = args.test_from

    print('Loading checkpoint from %s' % test_from)
    logger.info('Loading checkpoint from %s' % test_from)
    checkpoint = torch.load(test_from,
                            map_location=lambda storage, loc: storage)
    opt = vars(checkpoint['opt'])
    for k in opt.keys():
        if k in model_flags:
            setattr(args, k, opt[k])
    print(args)

    model = Summarizer(args, device, checkpoint)
    valid_iter = DataLoader.Dataloader(args,
                                       load_dataset(args,
                                                    'valid',
                                                    shuffle=False),
                                       args.batch_size,
                                       device,
                                       shuffle=False,
                                       is_test=False)
    trainer = build_trainer(args, device_id, model, None)
    stats = trainer.validate(valid_iter, step)

    return stats.xent()
예제 #3
0
def test_ext(args, device_id, pt, step):
    if pt != '':
        test_from = pt
    else:
        test_from = args.test_from
    print('Loading checkpoint from %s' % test_from)
    checkpoint = torch.load(test_from,
                            map_location=lambda storage, loc: storage)
    opt = vars(checkpoint['opt'])
    for k in opt.keys():
        if k in model_flags:
            setattr(args, k, opt[k])
    print(args)

    model = Summarizer(args, device, checkpoint)
    test_iter = DataLoader.Dataloader(args,
                                      load_dataset(args, 'test',
                                                   shuffle=False),
                                      args.test_batch_size,
                                      device,
                                      shuffle=False,
                                      is_test=True)
    trainer = build_trainer(args, device_id, model, None)
    trainer.test(test_iter, step)