Skip to main content

Restricted Boltzmann Machine implementation in PyTorch

Project description

BoltzmaNN9

BoltzmaNN9 is a small toolkit for training Restricted Boltzmann Machines (RBMs) with a block-aware architecture, optional preprocessing, and a simple CLI for managing experiments.

Installation

  • Requires Python 3.10+ and PyTorch (CPU or CUDA).
  • From the repo root: python -m venv .venv && .venv/Scripts/Activate.ps1 (PowerShell) then pip install -e . or pip install -e ".[dev]" for linting/test extras.

CLI commands

  • python boltzmann9.py new_project <path> – scaffold a project with config.py, data/, output/, and a synthetic data generator.
  • python boltzmann9.py preprocess_raw --config <config.py> – run DataPreprocessor to turn raw CSV columns into binary features; relative paths in the config are resolved against the config file location.
  • python boltzmann9.py train --project <project_dir> – train an RBM using the project’s config.py; creates a timestamped run under output/.
  • python boltzmann9.py evaluate --run <run_dir or project_dir> – evaluate a saved run (defaults to the latest run if a project path is given).
  • python boltzmann9.py list --project <project_dir> – list available runs.

Configuration basics

config.py is a plain Python dict (see src/templates/config.py for a template):

  • device: "auto"/cpu/cuda:0/mps.
  • data: csv_path (training data), optional drop_cols.
  • model: visible/hidden block sizes, cross-block restrictions, initialization.
  • preprocess: quantile bounds, category limits, missing-bit toggles.
  • dataloader / train / eval / conditional: loader sizes, training hyperparameters, evaluation options. All relative paths in preprocessing are resolved relative to the config file; training also adjusts data.csv_path relative to the project directory.

Project template

python boltzmann9.py new_project demo_project creates:

  • demo_project/config.py – prefilled with the data path data/data.csv.
  • demo_project/data/synthetic_generator.py – generates a demo dataset and plot.
  • demo_project/output/ – destination for runs (run_<timestamp>).

Development

  • Run tests (if added): python -m pytest.
  • Lint (if installed): ruff check . and black --check ..
  • Key sources: boltzmann9.py (CLI), src/boltzmann/model.py (RBM), src/boltzmann/preprocessor.py (raw → binary), src/boltzmann/pipeline.py (training/eval flow).

See docs/QUICKSTART.md for a step-by-step guide and docs/TECHNICAL_DOCUMENTATION.md for module-level details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boltzmann9-0.1.6.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boltzmann9-0.1.6-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file boltzmann9-0.1.6.tar.gz.

File metadata

  • Download URL: boltzmann9-0.1.6.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for boltzmann9-0.1.6.tar.gz
Algorithm Hash digest
SHA256 111b0721049d14e52f649e36a4e0f404b4132b955b4f1aebbe542bf58e3bc03e
MD5 20a067708c17efbb2983c5e4e2b4729b
BLAKE2b-256 c0a9d2693af8d5bfde54fee87550518a762d28651adaf33df5f79a2474efb4c6

See more details on using hashes here.

File details

Details for the file boltzmann9-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: boltzmann9-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for boltzmann9-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d6cda59e563c91cc180902cd13e24b99a15dff2d24fc8dd1afb3afbfefb5d53d
MD5 d912967937549f6548dea589c03ec1fd
BLAKE2b-256 4228d6a94d1f553d8c32cd55e65c4e828ac7894f9899d532792adda952e8cccd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page