pool = multiprocessing.Pool(8)
	
	adjlist_file_name = "../synthetic_data.ajdlist0"
	feature_file_name = "../synthetic_data.feature0"
	
	num_graphs = 1
	
	training_data_list = [{}] * num_graphs
	for i in range(num_graphs):
		training_data_list[i]["num_features"] = 2
		training_data_list[i]["source"] = 0
		training_data_list[i]["positives"] = range(200)
		training_data_list[i]["negatives"] = range(9800, 10000)
		training_data_list[i]["num_nodes"] = 10000
		(training_data_list[i]["edge_ij"], training_data_list[i]["feature_stack"]) = problem_setup.get_edge_ij_and_feature_stack(adjlist_file_name, feature_file_name, training_data_list[i]["num_features"])
		training_data_list[i]["diff_generating_mat"] = grad_one_source.build_diff_generating_mat(range(200), range(200, 9800), 10000)
	
	w0 = numpy.random.randn(training_data_list[0]["num_features"], 1)
	print(w0.shape)
	
	p_warm_start_list = [numpy.ones((10000, 1)) / 10000.0] * num_graphs
	p_grad_warm_start_list = [numpy.zeros((10000, 2))] * num_graphs
	
	#w_1 = numpy.copy(w0)
	#w_1[0] -= 1e-5
	#w_2 = numpy.copy(w0)
	#w_2[0] += 1e-5
	#
	#cost_1 = compute_cost.compute_cost(w_1, training_data_list, p_warm_start_list, p_grad_warm_start_list, params, pool)
	#grad_1 = compute_grad.compute_grad(w_1, training_data_list, p_warm_start_list, p_grad_warm_start_list, params, pool)
	#
Example #2
0
#testing_data_list = map(lambda i: training_data_list[i], x[(num_graphs / 2):])

for training_data in training_data_list:
	rpos = numpy.random.rand(len(training_data["training_positives"]))
	rneg = numpy.random.rand(len(training_data["training_negatives"]))
	training_data["positives"] = []
	for i in range(len(rpos)):
		if rpos[i] <= params["prop_training_gts"]:
			training_data["positives"].append(training_data["training_positives"][i])

	training_data["negatives"] = []
	for i in range(len(rneg)):
		if rneg[i] <= params["prop_training_gts"]:
			training_data["negatives"].append(training_data["training_negatives"][i])
	
	training_data["diff_generating_mat"] = grad_one_source.build_diff_generating_mat(training_data["positives"], training_data["negatives"], training_data["num_nodes"])

for i in range(num_graphs):
	(garbage_a, training_data_list[i]["feature_stack"], garbage_b) = (edge_ij, feature_stack, G) = problem_setup.get_edge_ij_and_feature_stack("../synthetic_data/synthetic_data.ajdlist%d"%(indices[i]), "../synthetic_data/synthetic_data.antisymmetric_feature%d_noisy%f"%(indices[i], sigma_squared), 2, num_nodes = num_nodes)

p_warm_start_list = [numpy.ones((num_nodes, 1)) / (1.0 * num_nodes)] * len(training_data_list)
p_grad_warm_start_list = [numpy.zeros((num_nodes, training_data_list[0]["num_features"]))] * len(training_data_list)

w0 = numpy.array([[2.0], [3.0]]) #numpy.random.randn(2, 1) #numpy.array([[1.0], [-1.0]])
print "w0=",w0

w_opt = supervised_random_walk.train(training_data_list, p_warm_start_list, p_grad_warm_start_list, params, compute_cost.compute_cost, compute_grad.compute_grad, w0, pool = pool)

numpy.save("model_synthetic_backprop_mini_noisy%f.npy"%(sigma_squared), w_opt)

print "Total time: %.6f sec "%((time.clock() - start))