tensorflow / probability

Probabilistic reasoning and statistical analysis in TensorFlow
https://www.tensorflow.org/probability/
Apache License 2.0
4.27k stars 1.11k forks source link

Many of the features not yet implemented tfp.math.ode.BDF. #600

Open wolfiex opened 5 years ago

wolfiex commented 5 years ago

It seems that many of the features/possible arguments are not yet implemented into the algorithm, is there a bleeding-edge version that has these? When will they be expected?

brianwa84 commented 5 years ago

Unfortunately the driver on the BDF front has stepped away, there aren't current efforts to improve the BDF solver. Are there particular stiff ODE problems that you're interested in?

You might be interested to find we just added a RK type solver (non-stiff), DormandPrince. https://github.com/tensorflow/probability/blob/master/tensorflow_probability/python/math/ode/dormand_prince.py

Quoting Dimitriii, who just added DOPRI: From my limited experience I think that for many semi-large scale ML applications explicit solver such as DormandPrince fits better. (mostly due to memory efficiency and speed) I've been adding some nice features to it, such as support for nested structures. There's still some work to tune it up (proper batching, some extra profiling), but it's close to a good working solver. It's also easier to add features to DormanPrince, as it is conceptually simpler.

wolfiex commented 5 years ago

Oh thats a shame - It is probably worth hilighting the features which are not enabled on the documentation.

I have a large, sparse numerically stiff chemical system I wish to solve, and thus need ideally a BDF or Rosebrock integrator. The task in itself is not necessarily ML based, although the direct integration into other projects, and tf's sparse tensor representation would be very useful.

SiegeLordEx commented 5 years ago

That sounds like a very interesting application! We're certainly open to re-prioritizing things and implementing what's necessary if possible. Could you clarify which features you'd like to see most and how you were planning on using the sparse tensor representation? Were you planning to compute gradients of your ODE simulation?