Skip to content
Projects

jundsp/VAE-BSS has 48 GitHub stars and 9 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 06:48 UTC. Last push 2026-11-12.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

Unsupervised blind source separation of mixed images and sounds with variational auto-encoders.

Machine Learning

README.md

Original

VAE-BSS

New: DVAE-BSS adds a dynamical prior, so it separates audio of any length, with a pretrained model and a one-command dvae-separate. Listen to examples.

A PyTorch model of the variational auto-encoder for unsupervised blind source separation, with training and evaluation programs, as described in

Includes pre-trained models located in saves/pretrained (~75 MB total).

Author: Julian Neri

Diagram

Instructions

Installation

git clone https://github.com/jundsp/VAE-BSS.git
cd VAE-BSS
pip install -r requirements.txt

Usage

Run either the evaluate.py or train.py files.

  • For example, enter this command in terminal: python3 evaluate.py

evaluate.py uses models that we pre-trained in an unsupervised way to separate mixed MNIST handwritten digit images. Results for K = 2, 3, 4 assumed model sources are saved in the results directory. The models include normal auto-encoders, variational auto-encoders, and the VAE with masking, to compare their qualities. The VAEs, with or without masking, perform high quality separation without knowing the true number of source images in the mixture and without ever having access to the true ground truth source images.

train.py starts from scratch and trains a VAE model solely on data mixtures in an unsupervised way. It demonstrates the training procedure described in our paper. The number of epochs for training / testing is defined in argparser.py. Separation is clear within the first 10 epochs. You should get about the same results as the pre-trained models if you train over a few thousand epochs, following the training settings defined in our paper. The other arguments allow you to try different hyperparameters and settings for model training / specification, such as the dimension of the latent space, the prior probability, and the batch size.

Either program will first download the MNIST data and prepare it as training and testing datasets. The datasets are saved in a directory that will be recalled for subsequent use.

MNIST K=3