def map(distribution_tensor, user_num, time_num, poi_num): for i in range(user_num): for j in range(time_num): for k in range(poi_num): file_name = str(i)+"_"+str(j)+"_"+str(k)+".db" file_path = "data/step_two/"+file_name print file_path tensor_tensor_db = open(file_path, 'rw') tensor_tensor = pickle.load(tensor_tensor_db) res = three_tensor_hadarmard(distribution_tensor[i][j][k], tensor_tensor) pickle.dump(res, tensor_tensor_db) tensor_tensor_db.close()
# init_tensor6 = user_slice_sum_one(temp_tensor) # res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1) # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2) # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3) # # print analysis_eigen_tensor(init_tensor1) # print analysis_eigen_tensor(init_tensor2) # print analysis_eigen_tensor(init_tensor3) # # print analysis_eigen_tensor(res1) # print analysis_eigen_tensor(res2) # print analysis_eigen_tensor(res3) temp_tensor = [[[random.choice([0, 1, 1000]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor = three_tensor_hadarmard(1/three_order_tensor_first_norm(temp_tensor), temp_tensor) print "初始张量性质:\n" print analysis_eigen_tensor(temp_tensor, "user") print analysis_eigen_tensor(temp_tensor, "time") print analysis_eigen_tensor(temp_tensor, "poi") print "\n" temp_tensor1 = temp_tensor[:] temp_tensor2 = temp_tensor[:] temp_tensor3 = temp_tensor[:] temp_tensor4 = temp_tensor[:] res1, iterator_values1 = tensor_three_mode_product(transition_tensor, temp_tensor1) res2, iterator_values2 = tensor_three_mode_product(transition_tensor2, temp_tensor2) # res3, iterator_values3 = shifted_tensor_three_mode_product(transition_tensor3, temp_tensor3, alpha_shift)
# res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1) # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2) # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3) # # print analysis_eigen_tensor(init_tensor1) # print analysis_eigen_tensor(init_tensor2) # print analysis_eigen_tensor(init_tensor3) # # print analysis_eigen_tensor(res1) # print analysis_eigen_tensor(res2) # print analysis_eigen_tensor(res3) temp_tensor = [[[random.choice([0, 1, 1000]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor = three_tensor_hadarmard( 1 / three_order_tensor_first_norm(temp_tensor), temp_tensor) print "初始张量性质:\n" print analysis_eigen_tensor(temp_tensor, "user") print analysis_eigen_tensor(temp_tensor, "time") print analysis_eigen_tensor(temp_tensor, "poi") print "\n" temp_tensor1 = temp_tensor[:] temp_tensor2 = temp_tensor[:] temp_tensor3 = temp_tensor[:] temp_tensor4 = temp_tensor[:] res1, iterator_values1 = tensor_three_mode_product(transition_tensor, temp_tensor1) res2, iterator_values2 = tensor_three_mode_product(transition_tensor2,
# res1, iterator_values1 = tensor_three_mode_product(transition_tensor, init_tensor1) # res2, iterator_values2 = tensor_three_mode_product(transition_tensor, init_tensor2) # res3, iterator_values3 = tensor_three_mode_product(transition_tensor, init_tensor3) # # print analysis_eigen_tensor(init_tensor1) # print analysis_eigen_tensor(init_tensor2) # print analysis_eigen_tensor(init_tensor3) # # print analysis_eigen_tensor(res1) # print analysis_eigen_tensor(res2) # print analysis_eigen_tensor(res3) temp_tensor_all_equal = [[[1/(poi_num * time_num * user_num) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor = [[[random.choice([0, 1, 2, 3, 4]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor_all_ramdom = three_tensor_hadarmard(1/three_order_tensor_first_norm(temp_tensor), temp_tensor) temp_tensor_user_equal = [[[1/(poi_num * time_num) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor = [[[random.choice([0, 1, 2, 3, 4]) for i in range(poi_num)] for j in range(time_num)] for k in range(user_num)] temp_tensor_user_ramdom = user_slice_sum_one(temp_tensor) print check_six_order_transition_tensor(transition_tensor) # print "初始张量性质:\n" # print analysis_eigen_tensor(temp_tensor, "user") # print analysis_eigen_tensor(temp_tensor, "time") # print analysis_eigen_tensor(temp_tensor, "poi") # print "\n" res1, iterator_values1 = tensor_three_mode_product(transition_tensor, temp_tensor_all_equal) res2, iterator_values2 = tensor_three_mode_product(transition_tensor, temp_tensor_all_ramdom)