コード例 #1
0
ファイル: topic_disc.py プロジェクト: zengjichuan/Topic_Disc
def main(config):
    prepare_dirs_loggers(config, os.path.basename(__file__))
    corpus_client = corpora.TwitterCorpus(config)

    conv_corpus = corpus_client.get_corpus_bow()
    train_conv, valid_conv, test_conv, vocab_size = conv_corpus['train'],\
                                        conv_corpus['valid'],\
                                        conv_corpus['test'],\
                                        conv_corpus['vocab_size']

    # create data loader that feed the deep models
    train_feed = data_loaders.TCDataLoader("Train", train_conv, vocab_size,
                                           config)
    valid_feed = data_loaders.TCDataLoader("Valid", valid_conv, vocab_size,
                                           config)
    test_feed = data_loaders.TCDataLoader("Test", test_conv, vocab_size,
                                          config)

    # for generation
    conv_corpus_seq = corpus_client.get_corpus_seq()
    train_conv_seq, valid_conv_seq, test_conv_seq = conv_corpus_seq[
        'train'], conv_corpus_seq['valid'], conv_corpus_seq['test']

    model = conv_models.TDM(corpus_client, config)

    if config.use_gpu:
        model.cuda()

    engine.train(model, train_feed, valid_feed, test_feed, config)

    # config.batch_size = 10
    train_feed_output = data_loaders.TCDataLoader("Train_Output", train_conv,
                                                  vocab_size, config)
    test_feed_output = data_loaders.TCDataLoader("Test_Output", test_conv,
                                                 vocab_size, config)
    valid_feed_output = data_loaders.TCDataLoader("Valid_Output", valid_conv,
                                                  vocab_size, config)

    if config.output_vis:
        with open(os.path.join(config.session_dir, "gen_samples.txt"),
                  "w") as gen_f:
            gen_utils.generate(model,
                               valid_feed_output,
                               valid_conv_seq,
                               config,
                               num_batch=2,
                               dest_f=gen_f)
コード例 #2
0

# This tool is independent of the syntool name.
def convert(example, example_class, syntool_name):
    example_class.add_array_input(example[0], nolen=True)
    example_class.add_int_input(example[1])
    example_class.add_int_input(example[2])
    example_class.add_int_input(example[3])
    example_class.array_output(example[4], nolen=True)

    return example_class


if __name__ == "__main__":
    random.seed(0)
    examples = gen_utils.generate(generate_example)
    # Create an output of each type using the convert
    # function.
    example_sets = gen_utils.build_sets(examples, convert)

    # Set up any important sub-fields in any of the tests.
    # Need to set an example program for simpl.
    example_sets['simpl'].partial_program = """
fun arr, n, m, val, arrout ->
r=0;
p=0;
while(?) {
?;
}
return arrout;
"""