Biologically Inspired Sparse Graph Model for Image Generation
Uses the Dragon Hatchling (BDH) architecture as a sparse, Hebbian graph-based decoder over VQ-VAE image tokens to generate images efficiently while exploring biologically plausible and interpretable neural dynamics.
The image generation pipeline has 5 steps:
- Train VQ-VAE: Encode images into discrete tokens
- Extract codes: Extract token sequences from training images
- Train prior: Train a prior model to generate token sequences
- Sample images: Generate new images from the prior
- Evaluate: Compute metrics on generated images
python train_vqvae.py
python extract_codes.py
For BDH prior:
python train_prior.py --config configs/prior_bdh.yaml
For MaskGIT prior:
python train_prior.py --config configs/prior_maskgit.yaml
For PixelCNN prior:
python train_prior.py --config configs/prior_pixelcnn.yaml
For PixelSNAIL prior:
python train_prior.py --config configs/prior_pixelsnail.yaml
For BDH prior:
python sample_images.py --config configs/prior_bdh.yaml
For MaskGIT prior:
python sample_images.py --config configs/prior_maskgit.yaml
For PixelCNN prior:
python sample_images.py --config configs/prior_pixelcnn.yaml
For PixelSNAIL prior:
python sample_images.py --config configs/prior_pixelsnail.yaml
For BDH prior:
python eval_metrics.py --prior_config configs/prior_bdh.yaml
For MaskGIT prior:
python eval_metrics.py --prior_config configs/prior_maskgit.yaml
For PixelCNN prior:
python eval_metrics.py --prior_config configs/prior_pixelcnn.yaml
For PixelSNAIL prior:
python eval_metrics.py --prior_config configs/prior_pixelsnail.yaml
Use oscar_script.sh for cluster execution. Uncomment the lines for the prior you want to train/evaluate.
evaluation/sample_images/- Generated image samplessamples_bdh_prior.png- BDH prior samplessamples_bdh_prior.pt_epoch*.png- Samples at different epochs
evaluation/training_loss/- Training loss logsbdh_train.log- BDH training logmaskgit_train.log- MaskGIT training logpixelcnn_train.log- PixelCNN training logpixelsnail_train.log- PixelSNAIL training logvqvae_training_log.txt- VQ-VAE training log
checkpoints/- Model checkpointsvqvae_best.pt- Best VQ-VAE checkpointprior_best.pt- Best prior checkpointprior_final.pt- Final prior checkpointprior_*.pt- Checkpoints at different iterations
evaluation/evaluation_loss_curve_*.png- Loss curvesevaluation/vqvae_metrics.png- VQ-VAE metrics
Prior models are configured in configs/:
configs/prior_bdh.yaml- BDH prior configconfigs/prior_maskgit.yaml- MaskGIT prior configconfigs/prior_pixelcnn.yaml- PixelCNN prior configconfigs/prior_pixelsnail.yaml- PixelSNAIL prior config
Edit these files to change model architecture, training parameters, or dataset settings.