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)