Replies: 1 comment
-
|
The reason we changed to no initial observation is that for factorial models There are a couple of other reasons in mind why no initial observation is preferable, (i) it results in less @AdrienCorenflos rules out having such a
For sure we need this better documented. #189 will help but an example would also make sense (can be dedicated specifically to having an initial obs)
Agree if we can do this without assuming any structure about In general, it seems many users will want to have an initial observation and I acknowledge the awkwardness of it currently in cuthbert. So we should work to reduce that awkwardness. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
There was a decision at some point to not allow observations at the first time step (or, at least, not use them). Some explanation of this is part of #189, and it seems to have happened in #191. This is a bit unfortunate for me, as in dynestyx we're trying to have support for multiple different inference backends (including cuthbert), and this assumption is at odds with other libraries (e.g., dynamax).
This makes for some pretty ugly integration code, where I'll have to use some degenerate dynamics for the first time step, re-index any controls and time-variant functions, run the filter, then again re-index at the last step. This is by no means insurmountable, but is somewhat annoying -- it adds like a half hour of dev time to write + document + test, and becomes code that's a bit complicated to explain to other people later on (and easy to mess up if anyone edits it).
From my perspective, it would be much more convenient if this were handled at the
filterAPI level -- e.g., adding aconsume_first_observationthat uses the first observation ifTrueand ignores it otherwise. c.f. this commit in my fork that I'm currently using fordynestyx.In general, this isn't a huge deal of course, since this API choice is without loss of generality. But it is a problem that I imagine people will have more than once, and seems worth closing that gap -- even if that just means a nicely-documented example in the docs or some utility function that does this re-indexing for you...
Beta Was this translation helpful? Give feedback.
All reactions