Invariant representation learning from imaging and spectral data
Full Changelog: https://github.com/ziatdinovmax/pyroVED/compare/v0.2.3...v0.3.0
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.
(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
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```).
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")
Minor bug fixes and improvements
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
.
Minor bug fixes and improvements including:
Push minor changes and bug fixes to PyPI
Bug fixes and minor improvements
Pre-alpha release of the pyroVED package