cossio/RestrictedBoltzmannMachines.jl
Train and sample Restricted Boltzmann machines in Julia
What's novel
Train and sample Restricted Boltzmann machines in Julia
Code Analysis
15 files read · 4 roundsA Julia package for training and sampling Restricted Boltzmann Machines with multiple unit types (binary, spin, Potts, Gaussian, ReLU variants), supporting PCD training, Gibbs/Metropolis sampling, annealed importance sampling for partition function estimation, and centered/standardized RBM variants
Strengths
Exceptionally clean architecture with a macro-based layer system that reduces boilerplate while maintaining type stability, mathematically rigorous implementations verified against analytical solutions and automatic differentiation, and genuinely novel layer types (dReLU as two-sided truncated Gaussian mixture) with proper gauge handling for Potts layers.
Weaknesses
The codebase is Julia-specific and the @declare_layer macro, while elegant, creates a learning curve for contributors; some advanced features like the standardized RBM PCD loop have complex interdependencies between offset/scale updates and gauge constraints that could benefit from more documentation of the invariants.
Score Breakdown
Signal breakdown
Innovation
Craft
Traction
Scope
Evidence
Commits
97
Contributors
3
Files
101
Active weeks
16
Repository
Language
Jupyter Notebook
Stars
20
Forks
4
License
MIT