Coder Social home page Coder Social logo

Comments (12)

goedman avatar goedman commented on August 20, 2024 1

Hi Vaibhav, thanks for your support, you've certainly not slowed me down! I'll prepare the initial version of the repo over the next couple of days.

from diffeqbayes.jl.

Vaibhavdixit02 avatar Vaibhavdixit02 commented on August 20, 2024

Yes in the DiffEqBayes PR I made these changes.

from diffeqbayes.jl.

goedman avatar goedman commented on August 20, 2024

Just successfully ran the Stan tests on the updated master of DiffEqBayes.

I also experimented with the 4 parameter model by injecting more noise and widening the priors. That also behaves ok.

For StatisticalRethinking chapter 16 I would like to use DiffEqBayes but really can't use it in it's current form. It simply has too many dependencies.

I wonder if the current DiffEqBayes should just target Turing and if there is interest in splitting off a DiffEqBayesStan.jl. Maybe the same argument could be made for DynamicHMC.

If you feel that goes too far outside the objectives of SciML, I could create a DiffEqBayesStan.jl in StanJulia.

from diffeqbayes.jl.

Vaibhavdixit02 avatar Vaibhavdixit02 commented on August 20, 2024

We had switched to require for DynamicHMC and CmdStan but I moved StanSample out of it because it seems to have less issues in installation to me, we can move it back but I don't think that's what you want. I am not sure it's too many dependencies, the motivation was to have a unified interface for several PPL packages through this package so that has been the approach so far. I am curious if you can specify a bit more what seems excessive here to you we can maybe take care of that?

from diffeqbayes.jl.

goedman avatar goedman commented on August 20, 2024

Thanks Vaibhav, you are of course correct that the objectives of DiffEqBayes are much broader than my question.

My main problem has been (time and time again) that pulling in too many dependencies creates version conflicts and/or compilation warnings and/or package downgrades. This has gotten better over the last few years but in just trying to help out here showed me these issues are still there.

It certainly doesn't help that I prefer to develop on nightly. Currently (last time I tried it a few days ago) DiffEqBayes only works on Julia 1.6, not on 1.7/1.8. For very good reasons!

CmdStan and StanJulia all require Stan's cmdstan executable to be installed and hence to use Stan behind Requires makes perfect sense. Requesting to put all 3 behind Requires seems ridiculous to me. Hence my thought for a StanJulia sibling of DiffEqBayes.jl.

from diffeqbayes.jl.

Vaibhavdixit02 avatar Vaibhavdixit02 commented on August 20, 2024

CmdStan and StanJulia all require Stan's cmdstan executable to be installed and hence to use Stan behind Requires makes perfect sense.

Right yeah, let's move it back in there then.

Requesting to put all 3 behind Requires seems ridiculous to me.

We still keep Turing outside it just DynamicHMC and Stan behind it.

Hence my thought for a StanJulia sibling of DiffEqBayes.jl.

I am a little hesitant since this project is already not heavily developed so splitting will thin both the users and dev effort. I get your pain for version incompatibilities but to be honest DiffEqBayes is probably one with least issues as compared to some other packages in the SciML ecosystem. I am not looking to counter you though, so feel free to move ahead if you do think it's the best way forward we can always just link back to this repo so users can discover it.

from diffeqbayes.jl.

ChrisRackauckas avatar ChrisRackauckas commented on August 20, 2024

It's not the most user facing repository. I mean, it kind of is a higher level interface for people who don't want to dig into PPLs, but the most useful thing has actually been for devs to benchmark between PPLs.

from diffeqbayes.jl.

goedman avatar goedman commented on August 20, 2024

from diffeqbayes.jl.

Vaibhavdixit02 avatar Vaibhavdixit02 commented on August 20, 2024

@goedman let's go ahead with it, I see the value and there is hardly any downside as discussed above, will be exciting! Sorry to have slowed you down with my concerns.

from diffeqbayes.jl.

goedman avatar goedman commented on August 20, 2024

@Vaibhavdixit02 , I did send you an invite to StanJulia. Of course up to you if you wanna accept this! Or I could send you an invite to just DiffEqBayesStan.jl a bit later on.

A local version of DiffEqBayesStan is basically working. I like to make a few more updates, the most important ones are:

  1. Switching the tests to Tables.jl based chains (I don't think right now AxisArrays.jl in MCMCChains runs on J1.7 & 1.8).
  2. Add the DEB tests as examples to Stan.jl (which I use to test all of StanJulia on 1.6, 1.7 & nightly).

And also, slightly longer term:

  1. I would love to add a SIR model example.
  2. I'm looking into a way of making the code in stan_inference() easier to grasp by creating a step-by-step example script documenting the key steps like generating the ODE model code, generating constraints on the parameters and generating the priors (maybe as a Pluto notebook). This is part of how far can we push? code like this:
  if isnothing(diffeq_string)
    sys = ModelingToolkit.modelingtoolkitize(prob)
    length_of_parameter = length(ModelingToolkit.parameters(sys)) + sample_u0 * length(save_idxs)
  else
    length_of_parameter = length(prob.p) + sample_u0 * length(save_idxs)
  end
  1. Better understand the save_idxs related lines in stan_inference().

Rob

from diffeqbayes.jl.

Vaibhavdixit02 avatar Vaibhavdixit02 commented on August 20, 2024

Hey @goedman I didn't receive the invitation unfortunately, can you send it again?

from diffeqbayes.jl.

goedman avatar goedman commented on August 20, 2024

Hi @Vaibhavdixit02 , Just redid it.

Screen Shot 2021-07-16 at 10 52 28

from diffeqbayes.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.