Comments (8)
I like it. I think you should currently be able to do something like
m = @model (alpha, beta, sim) begin
z ~ Normal(alpha, beta)
y ~ sim(z, 1)
end
rand(m(alpha=a, beta=b, sim=MySimulator))
We'll be able to get rid of the last argument and use the current module scope once we're done with #42
from soss.jl.
Hi @kskyten ,
Thanks to @thautwarm 's recent update (JuliaStaging/GeneralizedGenerated.jl#28), we can get this working:
julia> struct MySimulator
mu
sigma
end;
julia> Base.rand(s::MySimulator) = rand(Normal(s.mu, s.sigma))
julia> m = @model (alpha, beta) begin
z ~ Normal(alpha, beta)
y ~ MySimulator(z, 1)
end;
julia> rand(m(alpha=2,beta=4))
(alpha = 2, beta = 4, z = -2.5523934421776824, y = -2.1025024446789806)
Hope to get a PR set up with this soon :)
from soss.jl.
I used to think I can make MySimulator
a module... but it seems unnecessary now😄
from soss.jl.
I would like to do this:
struct MySimulator
mu
sigma
end
Base.rand(s::MySimulator) = rand(Normal(s.mu, s.sigma))
m = @model (alpha, beta) begin
z ~ Normal(alpha, beta)
y ~ MySimulator(z, 1)
end
from soss.jl.
@kskyten this now works in 0.8!
from soss.jl.
I think I'm missing something here - how is what you propose different than the draft?
from soss.jl.
Currently, due to the address of performance regression, This feature got lost again:
Soss.jl/src/primitives/rand.jl
Line 14 in 80a9c28
we should re-implement of it in recent iterations.
from soss.jl.
We can allow m.model
to store non-models, and do static dispatch on this, certainly we can have this feature again, with no performance loss.
from soss.jl.
Related Issues (20)
- What am I doing wrong? HOT 3
- Examples page in documentation does not exist HOT 1
- sample(...) does not work HOT 9
- No more Soss.predict() methods for densities from Distributions.jl HOT 3
- Implemention of Gaussian mixture model fails when sampling the posterior HOT 4
- Collision of filenames on OS X HOT 3
- Int argument for predict function HOT 2
- Follow Traditional Style Guide? (At least in public API)
- Help fitting a simple t distribution HOT 4
- For(...) do i ... broken using Soss with [email protected] or later HOT 4
- Empty model in predict HOT 6
- Modeling discrete variables
- CSV interference HOT 1
- dynamicHMC UndefVarError
- Can't use M as variable name HOT 4
- Precompilation warning HOT 2
- Example in Readme fails HOT 7
- README example fails HOT 32
- Empty transform with (new) Soss.as HOT 4
- Unable to sample posterior of the MC example from JuliaCon 2021 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from soss.jl.