IdeaCredIdeaCred

cossio/RestrictedBoltzmannMachines.jl

87

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 rounds

A 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

Innovation
5 (25%)
Craft
83 (35%)
Traction
37 (15%)
Scope
89 (25%)

Signal breakdown

Innovation

Not Fork+1
Code Novelty+1
Concept Novelty+1

Craft

Ci+5
Tests+8
Polish+2
Releases+5
Has License+5
Code Quality+27
Readme Quality+15
Recent Activity+7
Structure Quality+4
Commit Consistency+5
Has Dependency Mgmt+0

Traction

Forks+12
Stars+20
Hn Points+0
Watchers+3
Early Traction+0
Devto Reactions+0
Community Contribs+2

Scope

Commits+8
Languages+5
Subsystems+13
Bloat Penalty+0
Completeness+6
Contributors+7
Authored Files+15
Readme Code Match+3
Architecture Depth+7
Implementation Depth+8

Evidence

Commits

97

Contributors

3

Files

101

Active weeks

16

TestsCI/CDREADMELicenseContributing

Repository

Language

Jupyter Notebook

Stars

20

Forks

4

License

MIT