storchastic
storchastic copied to clipboard
Stochastic Automatic Differentiation library for PyTorch.
Storchastic uses a rather intricate system for batching over multiple dimensions, but it's rather buggy and hard to work with for end users. Recently PyTorch 1.12 introduced torchdim with first-class...
Hi, @HEmile , I test the example in examples/vae/discrete_vae.py, but find the gumbel softmax performs much better than rebar, relax and reinforce (testing loss after 10 epochs: 98 for gumbel,...
Those parameters are learned using variance minimization, but I am not seeing any optimization steps. Ensure this actually happens somewhere.
Hi! I need to concatenate samples from these two methods into one tensor, so that I can sample from a continuous distribution using reparameterization, and sample from a discrete distribution...
See https://hal.archives-ouvertes.fr/hal-02968975/document Implement: For multivariate Bernoulli, Sample a single normal sample, then for each dimension, use this sample and flip the corresponding dimension. Run the normal sample and the flipped...
See https://openreview.net/pdf?id=Mk6PZtgAgfq Relatively straightforward to implement: Like a reparameterization with a modified (stochastic!) backward pass override. Overriding backward pass is already needed to implement normal straight-through Gumbel softmax, so just...
See https://arxiv.org/pdf/2007.14634.pdf . Implementation is a bit interesting as it requires adding a loss, while reparameterization doesn't usually do this. So this just uses an additive loss on that node...
Simultaneous perturbation stochastic approximation (SPSA) is a finite-differences like method. It fits well in the framework: * Perturb the parameters of the probability distribution * Sample from each * Compute...
Importance Weighted autoencoder bounds (IWAE) are easily implemented using Storchastic, but don't work out of the box: Using the score function with batch average on the ELBO is not the...