if __name__ == "__main__":
    with tf.Session() as sess:
        init = tf.global_variables_initializer()
        sess.run(init)
        neural_net_ang.load_weights(ang_model_path+"/weights/BNN_weights")  # load NN parameters
        neural_net_vel.load_weights(vel_model_path+"/weights/BNN_weights")
        angs = []  # prediction in angle space
        vels = []  # prediction in velocity space
        angs.append(validation_data[0][:2])
        vels.append(validation_data[0][2:4])
        state = np.array(validation_data[0])
        nor_state = z_score_normalize(np.asarray([state]), x_nor_arr[0], x_nor_arr[1])
        print(nor_state) #EDIT
        for i in range(len(validation_data)-1):
            (ang_delta, vel_delta) = sess.run((y_ang_delta_pre, y_vel_delta_pre), feed_dict={x: nor_state})
            ang_delta = z_score_denormalize(ang_delta, y_nor_arr_ang[0], y_nor_arr_ang[1])[0]  # denormalize
            vel_delta = z_score_denormalize(vel_delta, y_nor_arr_vel[0], y_nor_arr_vel[1])[0]
            next_ang = state[:2] + ang_delta
            next_vel = state[2:4] + vel_delta
            angs.append(next_ang)
            vels.append(next_vel)
            state = np.append(np.append(next_ang, next_vel), validation_data[i + 1][4:5])
            state = map_angle(state)
            nor_state = z_score_normalize(np.asarray([state]), x_nor_arr[0], x_nor_arr[1])

angs = np.asarray(angs)
vels = np.asarray(vels)

plt.figure(1)
plt.scatter(validation_data[0, 0], validation_data[0, 1], marker="*", label='start')
plt.plot(validation_data[:, 0], validation_data[:, 1], color='blue', label='Ground Truth', marker='.')
        neural_net_pos.load_weights(
            pos_model_path + "/weights/BNN_weights")  # load NN parameters
        neural_net_load.load_weights(load_model_path + "/weights/BNN_weights")
        poses = []  # prediction in angle space
        loads = []  # prediction in velocity space
        poses.append(validation_data[0][:2])
        loads.append(validation_data[0][2:4])
        state = np.array(validation_data[0])
        nor_state = z_score_normalize(np.asarray([state]), x_nor_arr[0],
                                      x_nor_arr[1])
        #Normalize data for the neural net, makes it easier to learn
        print(nor_state)
        for i in range(len(validation_data) - 1):
            (pos_delta, load_delta) = sess.run(
                (y_pos_delta_pre, y_load_delta_pre), feed_dict={x: nor_state})
            pos_delta = z_score_denormalize(pos_delta, y_nor_arr_ang[0],
                                            y_nor_arr_ang[1])[0]  # denormalize
            load_delta = z_score_denormalize(load_delta, y_nor_arr_vel[0],
                                             y_nor_arr_vel[1])[0]
            #And now we turn it back
            next_pos = state[:2] + pos_delta
            next_load = state[2:4] + load_delta
            poses.append(next_pos)
            loads.append(next_load)
            state = np.append(np.append(next_pos, next_load),
                              validation_data[i + 1][4:6])
            nor_state = z_score_normalize(np.asarray([state]), x_nor_arr[0],
                                          x_nor_arr[1])

poses = np.asarray(poses)
loads = np.asarray(loads)