GithubHelp home page GithubHelp logo

Comments (2)

ssydasheng avatar ssydasheng commented on May 20, 2024

@thjashin

from zhusuan.

thjashin avatar thjashin commented on May 20, 2024

Hi @ssydasheng ,
Actually that's what I intended to. In the new api, there is no further assumptions about shape of the Tensors. no (batch_size, n_samples) anymore. With new StochasticTensors, you can sample in any sample_dim you want. You can take a look at examples/vae.py. Over the days I have thought about for a graphical model, there is nothing special to batch_size, it's just a plate (a rectangle). So my choice in vae.py is just build the model (p(x,z)) like the graphical view (z_mean as (n_z,), z_logstd as (n_z,), z as (batch_size, n_z)), what I add to make it more suitable in variational setting is just adding a n_particles (i.e. n_samples) dimension before all of these shapes, which can be seen as we allow multiple samples (particles) to pass through a node in the graphical model. That meets the need when getting q(z) samples of shape (n_particles, batch_size, n_z) so that these samples can be passed into models.

Normal and Bernoulli actually means independent Normal and independent Bernoulli. Discrete will sum over the last dimension. If you look at my new vae under examples/, it sums logpdf by hand over the dimension you want and then gets passed to advi. I will further change the api of advi to make this more comfortable.

For your case, if w is of shape (n1, n2), I guess you can define w_mean, w_logstd, w as shape (n_particles, n1, n2), qw_mean, qw_logstd can be as shape (n1, n2), and qw=Normal(qw_mean, qw_logstd, sample_dim=0, n_samples=n_particles)

Above may be a little messy to understand, we can chat in details.

from zhusuan.

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.