Пример #1
0
    print "Building model..."
    model = cstm_model.build_model(conf)
    print "Loading weights from %s ..." % args.model_weights
    model.load_weights(args.model_weights)
    print "Completed."

    # Load vocabulary files and invert them
    print "Loading vocabulary files..."
    src_vocab = load_object(args.source_vocab)
    trg_vocab = load_object(args.target_vocab)
    corp.set_src_vocab(src_vocab)
    corp.set_trg_vocab(trg_vocab)
    print "Completed."

    # Map source sentences
    mapped_sents = corp.map_sentences(src_sents, corp.src_vocab, conf.max_seq_len, skip_unk=args.remove_unk)
    print "%d source sentences mapped." % len(mapped_sents)

    # Create decoder instance
    decoder = Decoder(trg_vocab["</s>"], trg_vocab["<unk>"], args.beamsize, args.generate_unk)

    # Validation prediction placeholder
    y_pred = np.ndarray((mapped_sents.shape[0], mapped_sents.shape[1], len(trg_vocab))).astype(np.float32)
    # Feed-forward pass
    y_pred_dict = model.predict({'input': mapped_sents})

    for i in range(y_pred.shape[1]):
        y_pred[:, i, :] = y_pred_dict['output_%d' % i]

    scorer = MultiBleuScorer()
    d = decoder.process(y_pred)