def test(sess, cnn, testList, merged): label = [] sum_pair = 0 for i in numbertest: sum_pair += i for line in testList: label_item = int(line[0]) label.append(label_item) x_test_1, x_test_2, x_test_3 = data_helper.load_val_batch( testList, vocab, 0, sum_pair) feed_dict = { cnn.input_x_1: x_test_1, cnn.input_x_2: x_test_2, # x_test_2 equals x_test_3 for the test case cnn.lengths: x_test_3, cnn.label: np.array(label) } summary, acc = sess.run([merged, cnn.accuracy], feed_dict) return summary, acc
def dev_step(sess, cnn, testList): ndcg3 = [] ndcg5 = [] ndcg10 = [] ndcg20 = [] sum1 = 0 for i in numbertest: queryList = [] x_test_1, x_test_2, x_test_3 = data_helper.load_val_batch( testList, vocab, sum1, i) feed_dict = { cnn.input_x_1: x_test_1, cnn.input_x_2: x_test_2, # x_test_2 equals x_test_3 for the test case cnn.lengths: x_test_3 } predicted = sess.run(cnn.score, feed_dict) for index, s in enumerate(predicted): line = testList[sum1 + index] term = line[0] queryList.append((term, predicted[index])) sum1 += i queryList = sorted(queryList, key=lambda x: x[1]) queryList.reverse() query_sort = [int(x[0]) for x in queryList] r = [] for j in query_sort: r.append(j) ndcg3.append(ndcg_at_k(r, 3)) ndcg5.append(ndcg_at_k(r, 5)) ndcg10.append(ndcg_at_k(r, 10)) ndcg20.append(ndcg_at_k(r, 20)) return sum(ndcg3) * 1.0 / len(ndcg3), sum(ndcg5) * 1.0 / len( ndcg5), sum(ndcg10) * 1.0 / len(ndcg10), sum(ndcg20) * 1.0 / len( ndcg20)