示例#1
0
def test_genmodel(gen_model, train, dev, word_index, classify_model = None, glove_alter = None, batch_size = 64, ci = False):
   
    gens_count = 6
    dev_counts = 6
    gens = []
    for i in range(gens_count):
        creatives = np.random.random_integers(0, len(train), batch_size)
        preds = generation_predict_embed(gen_model, word_index.index, dev[:batch_size], creatives, class_indices = [i % 3] * batch_size)
        gens.append(get_classes(preds))

    for j in range(dev_counts):
        print " ".join(dev[j][0])
        print " ".join(dev[j][1])
        print "Generations: "
        for i in range(gens_count):
            gen_lex = gens[i][j]
            gen_str = word_index.print_seq(gen_lex)
            if ci:
               gen_str = load_data.LABEL_LIST[i%3][0] + ' ' + gen_str
            
            if classify_model != None and glove_alter != None: 
                probs = misc.predict_example(" ".join(dev[j][0]), gen_str, classify_model, glove_alter)
                print probs[0][0][i%3], gen_str
            else:
                print gen_str
        print
示例#2
0
def test_model2(model, dev, glove):
    from misc import predict_example
    tp = 0
    for ex in dev:
	probs = predict_example(" ".join(ex[0]), " ".join(ex[1]), model, glove)
	label = load_data.LABEL_LIST[np.argmax(probs)]
	if label == ex[2]:
	   tp +=1
    return tp / float(len(dev))
示例#3
0
def tune_model(observed_example, train_example, model, glove):
    class_arg = load_data.LABEL_LIST.index(observed_example[2])
    prem = " ".join(observed_example[0])
    hypo = " ".join(observed_example[1])
    print prem, hypo, observed_example[2], class_arg
    for i in range(30):
	probs = misc.predict_example(prem, hypo, model, glove)[0]
        print i, probs
        if probs.argmax() == class_arg:
            break
        models.update_model_once(model, glove, [train_example])