Ejemplo n.º 1
0
def train(train_data, val_data, data_parser, args):
    input_dict, output_dict = data_parser.input_dict, data_parser.output_dict

    net = get_model(input_dict,
                    output_dict,
                    args.model,
                    args.hidden_size,
                    args.max_len,
                    args.layers,
                    args.dropout,
                    kernel_size=args.kernel_size,
                    dilate=args.dilate,
                    ignore_pad=args.ignore_pad,
                    multilinear=(not args.single_linear),
                    input_len=data_parser.input_max_len,
                    stride=args.stride,
                    attn_heads=args.attn_heads,
                    cuda=args.cuda)
    net.initialize_params(args.init_params)

    print(args)
    print()
    print(net)
    print('Number of Elements: %d' %
          (sum([x.view(-1).size(0) for x in net.parameters()])))

    trainer = Trainer(net,
                      optim_type=args.optim,
                      print_every=args.print_every,
                      cuda=args.cuda,
                      save_dir=args.save_dir,
                      save_every=args.save_every,
                      improve_wait=args.improve_wait,
                      batch_size=args.batch_size)
    if args.train_from:
        trainer.load_checkpoint(args.train_from)
        trainer.continue_training(data_parser,
                                  train_data,
                                  val_data,
                                  args.epochs,
                                  lr=args.lr,
                                  weight_decay=args.weight_decay)
    else:
        trainer.train_epochs(data_parser,
                             train_data,
                             val_data,
                             args.epochs,
                             lr=args.lr,
                             weight_decay=args.weight_decay)

    return trainer
Ejemplo n.º 2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--config', required=True, help='see example at ')
    parser.add_argument('--checkpoint', required=False, help='your checkpoint')

    args = parser.parse_args()
    config = Cfg.load_config_from_file(args.config)

    trainer = Trainer(config)

    if args.checkpoint:
        trainer.load_checkpoint(args.checkpoint)
        
    trainer.train()