示例#1
0
callbacks = Callbacks(model, eval_set=valid_set, **args.callback_args)

# train model
model.fit(train_set,
          optimizer=optimizer,
          num_epochs=args.epochs,
          cost=cost, callbacks=callbacks)

# obtain predictions
shape = (valid_set.nbatches, args.batch_size, time_steps)
if num_beams == 0:
    ypred = model.get_outputs(valid_set)
    # flip the reversed predictions back to normal sentence order
    prediction = ypred.argmax(2).reshape(shape).transpose(1, 0, 2)[:, :, ::-1]
else:
    ypred = model.get_outputs_beam(valid_set, num_beams=num_beams)
    prediction = ypred.reshape(shape).transpose(1, 0, 2)[:, :, ::-1]

# print some examples
src_dict, tgt_dict = valid_set.s_index_to_token, valid_set.t_index_to_token
for i in range(3):
    print_sample(ex_source=valid_set.X[i, 0, :],
                 ex_reference=valid_set.y[i, 0, :],
                 ex_prediction=prediction[i, 0, :],
                 src_dict=src_dict, tgt_dict=tgt_dict)

# compute BLEU scores
inputs = valid_set.X[:, :valid_set.nbatches, :]
source_sentences = bleu_format(inputs, tgt_dict, valid_set.nbatches, args.batch_size)

generated = bleu_format(prediction, tgt_dict, valid_set.nbatches, args.batch_size)
示例#2
0
callbacks = Callbacks(model, eval_set=valid_set, **args.callback_args)

# train model
model.fit(train_set,
          optimizer=optimizer,
          num_epochs=args.epochs,
          cost=cost, callbacks=callbacks)

# obtain predictions
shape = (valid_set.nbatches, args.batch_size, time_steps)
if num_beams == 0:
    ypred = model.get_outputs(valid_set)
    # flip the reversed predictions back to normal sentence order
    prediction = ypred.argmax(2).reshape(shape).transpose(1, 0, 2)[:, :, ::-1]
else:
    ypred = model.get_outputs_beam(valid_set, num_beams=num_beams)
    prediction = ypred.reshape(shape).transpose(1, 0, 2)[:, :, ::-1]

# print some examples
src_dict, tgt_dict = valid_set.s_index_to_token, valid_set.t_index_to_token
for i in range(3):
    print_sample(ex_source=valid_set.X[i, 0, :],
                 ex_reference=valid_set.y[i, 0, :],
                 ex_prediction=prediction[i, 0, :],
                 src_dict=src_dict, tgt_dict=tgt_dict)

# compute BLEU scores
inputs = valid_set.X[:, :valid_set.nbatches, :]
source_sentences = bleu_format(inputs, tgt_dict, valid_set.nbatches, args.batch_size)

generated = bleu_format(prediction, tgt_dict, valid_set.nbatches, args.batch_size)