Closed ritvik06 closed 2 years ago
Hi, can you please elaborate what exactly you would like to do? If you want to sample entire trajectories over the forecast horizon but only care about one single mark, you could just generate the entire trajectories as follows
def select_mark(seq, mark: int):
arrival_times = seq.inter_times.cumsum(-1)[:-1]
return arrival_times[seq.marks == mark]
trajectories = model.sample(t_end=t_end, batch_size=100).to_list()
# e.g., select arrival times of events with mark #2
trajectories_for_mark = [select_mark(seq, mark=2) for seq in trajectories]
If you want to condition on some past sequence, you will need to get the context vector for the sequence that you want to condition on and pass it to model.sample
.
Thanks for your quick reply, this is really helpful.
I want to sample points of a specific mark given a historical sequence of events (basically forecasting). Do you think assigning the context_init arg as the historical embedding of the sequence in model.sample would work? Also do you think it's easy to rewrite model.sample with the refactored version of your code?
Thanks for your help again!
Yes, that's exactly what you should do. Just use model.get_features
and model.get_context
to obtain the history embedding, and then pass the last embedding to the model.sample
function.
Hi, thanks for the wonderful code. I am able to use it easily and reproduce the results.
I wanted to sample points of a specific mark in a horizon, I would appreciate any pointers from you how I could do this with your code.