Exemple #1
0
def do_train(args):
    device = paddle.set_device(args.select_device)

    # Define dataloader
    train_loader, eval_loader, src_vocab_size, tgt_vocab_size, eos_id = create_train_loader(
        args)

    model = paddle.Model(
        Seq2SeqAttnModel(src_vocab_size, tgt_vocab_size, args.hidden_size,
                         args.hidden_size, args.num_layers, args.dropout,
                         eos_id))

    grad_clip = nn.ClipGradByGlobalNorm(args.max_grad_norm)
    optimizer = paddle.optimizer.Adam(learning_rate=args.learning_rate,
                                      parameters=model.parameters(),
                                      grad_clip=grad_clip)

    ppl_metric = Perplexity()
    model.prepare(optimizer, CrossEntropyCriterion(), ppl_metric)

    print(args)
    if args.init_from_ckpt:
        model.load(args.init_from_ckpt)
        print("Loaded checkpoint from %s" % args.init_from_ckpt)

    model.fit(train_data=train_loader,
              eval_data=eval_loader,
              epochs=args.max_epoch,
              eval_freq=1,
              save_freq=1,
              save_dir=args.model_path,
              log_freq=args.log_freq)
Exemple #2
0
def do_train(args):
    device = paddle.set_device("gpu" if args.use_gpu else "cpu")

    # Define dataloader
    train_loader, vocab_size, pad_id = create_train_loader(args.batch_size)

    model = paddle.Model(
        Seq2SeqAttnModel(vocab_size, args.hidden_size, args.hidden_size,
                         args.num_layers, pad_id))

    optimizer = paddle.optimizer.Adam(
        learning_rate=args.learning_rate, parameters=model.parameters())
    ppl_metric = Perplexity()
    model.prepare(optimizer, CrossEntropyCriterion(), ppl_metric)

    print(args)
    model.fit(train_data=train_loader,
              epochs=args.max_epoch,
              eval_freq=1,
              save_freq=1,
              save_dir=args.model_path,
              log_freq=args.log_freq,
              callbacks=[paddle.callbacks.VisualDL('./log')])
Exemple #3
0
def do_train(args):
    device = paddle.set_device(args.device)

    # Define dataloader
    train_loader, vocab = create_train_loader(args.batch_size)
    vocab_size = len(vocab)
    pad_id = vocab[vocab.eos_token]

    model = paddle.Model(
        Seq2SeqAttnModel(vocab_size, args.hidden_size, args.hidden_size,
                         args.num_layers, pad_id))

    optimizer = paddle.optimizer.Adam(learning_rate=args.learning_rate,
                                      parameters=model.parameters())
    ppl_metric = Perplexity()
    model.prepare(optimizer, CrossEntropyCriterion(), ppl_metric)

    print(args)
    model.fit(train_data=train_loader,
              epochs=args.max_epoch,
              eval_freq=1,
              save_freq=1,
              save_dir=args.model_path,
              log_freq=args.log_freq)