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
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))
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])