-
Notifications
You must be signed in to change notification settings - Fork 93
Open
Description
I modified the state vector x = [p_x, p_y, v_x, v_y, a_x, a_y] and also adjusted F, H, and Q accordingly based on the original state vector.
## modify code
m_2d = 6 # dim of state for 2D CA model
F_gen_2d = torch.tensor([
[1, 0, delta_t_gen, 0, 0.5 * delta_t_gen ** 2, 0],
[0, 1, 0, delta_t_gen, 0, 0.5 * delta_t_gen ** 2],
[0, 0, 1, 0, delta_t_gen, 0],
[0, 0, 0, 1, 0, delta_t_gen],
[0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 1],
]).float()
H_identity_2d = torch.eye(6)
Q_gen_2d = q2 * torch.tensor([
[1/20*delta_t_gen**5, 0, 1/8*delta_t_gen**4, 0, 1/6*delta_t_gen**3, 0],
[0, 1/20*delta_t_gen**5, 0, 1/8*delta_t_gen**4, 0, 1/6*delta_t_gen**3],
[1/8*delta_t_gen**4, 0, 1/3*delta_t_gen**3, 0, 1/2*delta_t_gen**2, 0],
[0, 1/8*delta_t_gen**4, 0, 1/3*delta_t_gen**3, 0, 1/2*delta_t_gen**2],
[1/6*delta_t_gen**3, 0, 1/2*delta_t_gen**2, 0, delta_t_gen, 0],
[0, 1/6*delta_t_gen**3, 0, 1/2*delta_t_gen**2, 0, delta_t_gen],
]).float()
R_3_2d = r2 * torch.eye(6)
args.n_steps = 2000
args.n_batch = 40
args.lr = 1e-4
args.wd = 1e-4
## Generation model (CA)
sys_model_gen = SystemModel(F_gen_2d, Q_gen_2d, #H_onlyPos, R_onlyPos,
H_identity_2d, R_3_2d,
args.T, args.T_test)
sys_model_gen.InitSequence(m1x_0_2d, m2x_0_gen_2d)# x0 and P0
## Feed model (to KF, KalmanNet)
sys_model = SystemModel(F_gen_2d, Q_gen_2d, #H_onlyPos, R_onlyPos,
H_identity_2d, R_3_2d,
args.T, args.T_test)
sys_model.InitSequence(m1x_0_2d, m2x_0_2d)# x0 and P0
However,
-
Q1:I noticed that the MSE (Mean Squared Error) doesn’t perform well during training. I need to inspect the entire training process, so I might need to use the plot.py function. Could you provide a concrete example?
-
Q2:Should normalization be considered across these six dimensions [p_x, p_y, v_x, v_y, a_x, a_y]? The key code I modified is shown above (primarily aligning some state dimensions).
Metadata
Metadata
Assignees
Labels
No labels