Пример #1
0
        emotion_sentences = load_pickle(config.emojis_path)

    # Load infersent embeddings if necessary
    infersent_sentences = None
    if config.infersent:
        print('Loading infersent sentence embeddings...')
        infersent_sentences = load_pickle(config.infersent_path)
        embedding_size = infersent_sentences[0][0].shape[0]
        config.infersent_output_size = embedding_size

    data_loader = get_loader(
        sentences=load_pickle(config.sentences_path),
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=config.batch_size,
        emojis=emotion_sentences,
        infersent=infersent_sentences)

    if config.model in VariationalModels:
        solver = VariationalSolver(config,
                                   None,
                                   data_loader,
                                   vocab=vocab,
                                   is_train=False)
        solver.build()
        solver.importance_sample()
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)
        solver.build()
        solver.test()
def load_pickle(path):
    with open(path, 'rb') as f:
        return pickle.load(f)


if __name__ == '__main__':
    config = get_config(mode='test')

    print('Loading Vocabulary...')
    vocab = Vocab()
    vocab.load(config.word2id_path, config.id2word_path)
    print(f'Vocabulary size: {vocab.vocab_size}')

    config.vocab_size = vocab.vocab_size

    data_loader = get_loader(
        sentences=load_pickle(config.sentences_path),
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=config.batch_size,
        shuffle=False)

    if config.model in VariationalModels:
        solver = VariationalSolver(config, None, data_loader, vocab=vocab, is_train=False)
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)

    solver.build()
    solver.embedding_metric()
Пример #3
0
        return pickle.load(f)


if __name__ == '__main__':
    config = get_config(mode='valid')

    print('Loading Vocabulary...')
    vocab = Vocab()
    vocab.load(config.word2id_path, config.id2word_path)
    print(f'Vocabulary size: {vocab.vocab_size}')

    config.vocab_size = vocab.vocab_size

    for i in range(50):
        check_file = str(i+1) + '.pkl'
        config.checkpoint = os.path.join(config.eval_checkpoint, check_file)
        data_loader = get_loader(
            sentences=load_pickle(config.sentences_path),
            conversation_length=load_pickle(config.conversation_length_path),
            sentence_length=load_pickle(config.sentence_length_path),
            vocab=vocab,
            batch_size=config.batch_size)

        if config.model in VariationalModels:
            solver = VariationalSolver(config, None, data_loader, vocab=vocab, is_train=False)
            solver.build()
            solver.evaluate()
        else:
            solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)
            solver.build()
            solver.test()
Пример #4
0
        vocab=vocab_freq,
        batch_size=test_freq_config.batch_size,
        shuffle=False)

    rare_data_loader = get_loader(
        sentences=load_pickle(test_rare_config.sentences_path),
        conversation_length=load_pickle(
            test_rare_config.conversation_length_path),
        sentence_length=load_pickle(test_rare_config.sentence_length_path),
        vocab=vocab_rare,
        batch_size=test_rare_config.batch_size,
        shuffle=False)

    if test_freq_config.model in VariationalModels:
        solver_rare = VariationalSolver(test_rare_config,
                                        None,
                                        rare_data_loader,
                                        rare_data_loader,
                                        vocab=vocab_rare,
                                        is_train=False)
    else:
        solver_rare = Solver(test_rare_config,
                             None,
                             rare_data_loader,
                             rare_data_loader,
                             vocab=vocab_rare,
                             is_train=False)

    solver_rare.build()
    solver_rare.embedding_metric()
Пример #5
0
    if config.infersent:
        print('Loading infersent sentence embeddings...')
        infersent_sentences = load_pickle(config.infersent_path)
        embedding_size = infersent_sentences[0][0].shape[0]
        config.infersent_output_size = embedding_size

    data_loader = get_loader(
        sentences=load_pickle(config.sentences_path),
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=config.batch_size,
        emojis=emotion_sentences,
        infersent=infersent_sentences)

    if config.model in VariationalModels:
        solver = VariationalSolver(config,
                                   None,
                                   data_loader,
                                   vocab=vocab,
                                   is_train=False)
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)

    solver.build()
    solver.interact(max_sentence_length=kwargs.max_sentence_length,
                    max_conversation_length=kwargs.max_conversation_length,
                    sample_by=kwargs.sample_by,
                    debug=kwargs.debug,
                    print_history=True)
Пример #6
0
    # Load infersent embeddings if necessary
    infersent_sentences = None
    if config.infersent or config.calc_novel_embedding:
        print('Loading infersent sentence embeddings...')
        infersent_sentences = load_pickle(config.infersent_path)
        embedding_size = infersent_sentences[0][0].shape[0]
        config.infersent_output_size = embedding_size

    data_loader = get_loader(
        sentences=load_pickle(config.sentences_path),
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=config.batch_size,
        shuffle=False,
        emojis=emotion_sentences,
        infersent=infersent_sentences)

    if config.model in VariationalModels:
        solver = VariationalSolver(config,
                                   None,
                                   data_loader,
                                   vocab=vocab,
                                   is_train=False)
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)

    solver.build()
    solver.novel_metrics()
Пример #7
0
def load_pickle(path):
    with open(path, 'rb') as f:
        return pickle.load(f)


if __name__ == '__main__':
    config = get_config(mode='test')

    print('Loading Vocabulary...')
    vocab = Vocab()
    vocab.load(config.word2id_path, config.id2word_path)
    print(f'Vocabulary size: {vocab.vocab_size}')

    config.vocab_size = vocab.vocab_size

    data_loader = get_loader(
        sentences=load_pickle(config.sentences_path),
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=config.batch_size)

    if config.model in VariationalModels:
        solver = VariationalSolver(config,
                                   None,
                                   data_loader,
                                   vocab=vocab,
                                   is_train=False)
        solver.build()
        solver.generate_file()
        conversation_length=load_pickle(config.conversation_length_path),
        sentence_length=load_pickle(config.sentence_length_path),
        vocab=vocab,
        batch_size=1,
        shuffle=False,
    )

    dt_string = datetime.now().strftime("%d-%m-%Y_%H:%M:%S")

    probs_dict = SqliteDict(
        config.save_path + "/eval_{}.pkl".format(dt_string),
        encode=my_encode,
        decode=my_decode,
        journal_mode="OFF",
        autocommit=True,
    )

    if config.model in VariationalModels:
        solver = VariationalSolver(
            config, None, data_loader, vocab=vocab, is_train=False
        )
        solver.build()
        batch_probs_history = solver.evaluate_convai()
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)
        solver.build()
        batch_probs_history = solver.evaluate_convai()

    for idx, probs_item in enumerate(batch_probs_history):
        probs_dict[str(idx)] = probs_item
            sentences=load_pickle(config.sentences_path),
            conversation_length=load_pickle(config.conversation_length_path),
            sentence_length=load_pickle(config.sentence_length_path),
            score=load_pickle(config.score_path),
            vocab=vocab,
            batch_size=config.batch_size,
            shuffle=False)
        
    else:    
        data_loader = get_loader(
            sentences=load_pickle(config.sentences_path),
            conversation_length=load_pickle(config.conversation_length_path),
            sentence_length=load_pickle(config.sentence_length_path),
            vocab=vocab,
            batch_size=config.batch_size,
            shuffle=False)
  

    if config.model in VariationalModels:
        if config.model == "ADEM":
            print("train line:69 config.model", config.model)
            solver = AdemSolver(config, None, data_loader, vocab=vocab, is_train=False)
        else:
            solver = VariationalSolver(config, None, data_loader, vocab=vocab, is_train=False)
        solver.build()
        solver.importance_sample()
    else:
        solver = Solver(config, None, data_loader, vocab=vocab, is_train=False)
        solver.build()
        solver.test()
Пример #10
0
        batch_size=test_freq_config.batch_size,
        shuffle=False)

    rare_data_loader = get_loader(
        sentences=load_pickle(test_rare_config.sentences_path),
        conversation_length=load_pickle(
            test_rare_config.conversation_length_path),
        sentence_length=load_pickle(test_rare_config.sentence_length_path),
        vocab=vocab_rare,
        batch_size=test_rare_config.batch_size,
        shuffle=False)

    if test_freq_config.model in VariationalModels:
        solver_freq = VariationalSolver(test_freq_config,
                                        None,
                                        freq_data_loader,
                                        rare_data_loader,
                                        vocab=vocab_freq,
                                        is_train=False)
        solver_freq.build()
        solver_freq.importance_sample()
    else:
        solver_freq = Solver(test_freq_config,
                             None,
                             freq_data_loader,
                             rare_data_loader,
                             vocab=vocab_freq,
                             is_train=False)
        solver_freq.build()
        freq_perplexity, freq_f1 = solver_freq.test()

    print('Loading rare Vocabulary...')