Skip to content

Releases: ziatdinovmax/pyroVED

v0.3.0

29 Nov 21:39
2bd8575
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.2.3...v0.3.0

v0.2.3

19 Jun 01:15
Compare
Choose a tag to compare

New functionalities

  1. The ability to condition (i)VAE on both continuous and discrete variables. The latter usually represent categorical data classes (aka labels) whereas the former can represent some continuous property (or multiple properties) of the data that we know. See the example notebook.

  2. (i)VAE for semi-supervised regression. To date, most applications of the semi-supervised VAE were for categorical data. Here we introduce an option to use semi-supervised VAE for regression analysis where for some (small) part of the data both the label variable and the predictors are observed, while for other (larger) part of the data only the predictors are given. The usage of the ss_reg_iVAE class is similar to that of the ssiVAE

  3. The auxSVITrainer now works for both classification and regression tasks. To choose between the two, use the task argument (e.g. task="classification" or task=regression```).

Breaking changes

  1. The way categorical variables are passed to ivae.manifold2d has changed.

Before:

for i in range(10):
    cvae.manifold2d(d=12, label=i, cmap="viridis")

Now:

for i in range(10):
    cls = pv.utils.to_onehot(torch.tensor([i,]), 10)
    cvae.manifold2d(d=12, y=cls, cmap="viridis")
  1. pyroVED < 0.2.3 is not compatible with the latest PyTorch version 1.9. Hence, if using earlier pyroVED versions, downgrade to the PyTorch < 1.9. See this page for details.

v0.2.1

28 May 17:17
49d731d
Compare
Choose a tag to compare

Minor bug fixes and improvements

v0.2.0

24 May 00:11
9b487d1
Compare
Choose a tag to compare

Breaking changes

Due to the addition of scale invariance, it is not sustainable any longer to place a new letter for each invariance before VAE. Hence, from now we are going to call it simply iVAE ('i' for invariant). As a result, the model names change as follows:

trVAE -> iVAE
sstrVAE -> ssiVAE
jtrVAE -> jiVAE

In addition invariances are now passed as a list during the model initialization. For example, to enforce rotation, translation, and scale invariances, use

model = pv.models.iVAE(data_dim, latent_dim, invariances=['r', 't', 's'])

To enforce rotational invariance only, use

model = pv.models.iVAE(data_dim, latent_dim, invariances=['r'])

Note that the default behavior is invariances=None.

New functionalities

  • Scale invariance for all VAE models

Other improvements

  • User has now an option to choose a specific GPU device for model and data
  • One can now select Gaussian Error Linear Unit (GELU) as an activation function for the encoder and decoder NNs
  • Some improvements to documentation

v0.1.2

15 Apr 20:25
01a0beb
Compare
Choose a tag to compare

Minor bug fixes and improvements including:

  • Option to use different scale factors for discrete and continuous KL terms (for jtrVAE)
  • Option to generate and plot traversals of the learned latent manifolds (for jtrVAE and sstrVAE)
  • Option to condition data generation with a trained model on the angle and/or shifts

v0.1.1

02 Apr 02:06
c216413
Compare
Choose a tag to compare

Push minor changes and bug fixes to PyPI

v0.1.0

31 Mar 02:16
d2ce1d0
Compare
Choose a tag to compare
  • Add a variational encoder-decoder model (input and output are different), which can be used e.g for the realization of the im2spec-type models
  • Add a baseVAE class for more flexibility and less repetition
  • More tests and bug fixes

v0.0.3

26 Mar 04:13
d7667d1
Compare
Choose a tag to compare
v0.0.3 Pre-release
Pre-release

Bug fixes and minor improvements

v0.0.2

23 Mar 03:31
34e8d55
Compare
Choose a tag to compare
v0.0.2 Pre-release
Pre-release
  • Add joint (t)(r)VAE using parallel enumeration in Pyro
  • Bug fixes
  • Add some tests

v0.0.1

17 Mar 03:57
Compare
Choose a tag to compare
v0.0.1 Pre-release
Pre-release

Pre-alpha release of the pyroVED package