Neural ODE with unkown time steps

Hey! , I am trying to model 3D points in space using a Neural ODE, those points form a trajectory since they originated from the same particle and are ‘snapshots’ of it throughout time, I want to use a Neural ODE to model the dynamics but my data has only the X, Y ,Z , Px (for momentum on the X-axis) , Py and Pz , and I don’t have any data related to time, I thought of using the distance in 3D space as a replacement for time but the trajectories are curved (and since In the end , the model will be used to classify points to different trajectories so time isn’t that important in the inference phase),
what can I do in this case?
thanks for you time and help!

I’m not sure I quite understand your problem. Illustrate it with an example?

Oh hi Chris! , thanks for your effort towards the community, I learnet diffeq.jl from your tutorial :slight_smile: ,so here is the thing, I have data on particle collisions, the data is the position of the particles throughout the detectors, each position of the same particle is a “hit”, so as they move in the detector from the collision point to the outside, the positions are documented (x y z ) but the timestamps of when each hit happened are not documented, so i have points in space only, that they form a trajectory of the movement of that particle, my question is, how can i model this using a neural ODE if i don’t have the exact time stamps (time step) for the loss function to work since it compares each point in space from the real data to its corresponding from the neural net (at that timestamp).
Note that i have momentum values too along with the coordinates(xyz).
P.S.i usually dont share screenshots but we are discussing theory not code.

Do you know if these values are meant to be sequential, i.e. is id 2 in time after id 1 and you just don’t know how long it took? Do you have an idea for the maximum time it could’ve taken?

Yes, they are sequential and i know exactly what hits belong to what trajectory , each trajectory has a max of 21hits , average ~10 , and min 3/4 hits, i do have all the info about what hit to what track ,hence ,to which particle it belongs , while i do not have the time span or the maximum time

You can do a form of data shooting:

For each subiteration, sample a random data point. Solve it over (0,tmax), where tmax is the maximum time to the next point. Now calculate the closest point along this trajectory to the next data point. Take that as the time point for the observation and calculate the loss against that data point. Repeat that between a bunch of data point. This is parallelizable and should have robust properties with respect to local minima.