discrete pairwise undirected graphical models
Project description
Copyright (c) 2021 Nico Piatkowski
pxpy
The python library for discrete pairwise undirected graphical models. Runs on Linux with GLIBC >= 2.28 and Windows 10. Exported ONNX models run on any architecture that has an ONNX runtime with opset 13.
Inference
Loopy belief propagation
Junction tree
Stochastic Clenshaw-Curtis quadrature
Sampling
Gibbs Sampling
Perturb+Map Sampling
Parameter learning
Accelerated proximal gradient
built-in L1 / L2 regularization
Support for custom regularization
Structure learning
Chow-Liu trees
Soft-thresolding
High-order clique structures
Misc
Support for deep Boltzmann tree models (DBT)
Support for spatio-temporal compressible reparametrization (STRF)
Runs on x86_64 (linux, windows) and aarch64 (linux)
Graph drawing via graphviz
Discretization
—
Alpha Changelog
1.0a66: Improved: Data type selection, various minor fixes. Added: Integer model file io.
1.0a65: Improved: Manual model construction
1.0a64: Improved: GPU code. Added: ONNX export
1.0a63: Added: Experimental annealed rejection sampler for structure sampling
1.0a62: Improved: Model loading
1.0a61: Improved: Setting target for “star” structure; reduced python version to 3.6
1.0a60: Improved: Numerical stability of discretization
1.0a55: Added: Load/store of discretization models; aarch64 support (tested on Jetson TX1)
1.0a54: Improved: Init speed
1.0a53: Improved: Init speed
1.0a52: Improved: Graph splitting; init speed
1.0a51: Fixed: Multi-core normalization; Split-edge weight centering
1.0a50: Improved: Support for external inference engines; Changed required GLIBC version to 2.29
1.0a49: Fixed: External loader
1.0a48: Added: Shell script “pxpy_environ” for populating various environment variables. Improved: multi-core support.
1.0a47: Added: draw_neighbors(..). Improved: Discretization
1.0a44: Improved: Discretization
1.0a42: Improved: Updated some default values
1.0a41: Improved: Fixed subtle bug in parameter initialization
1.0a40: Added: Loading string data via genfromstrcsv(..) (built-in string<->int mapper)
1.0a36: Improved: Randomized clique search
1.0a29: Added: Randomized clique search
1.0a28: Improved: Handling NaN-values during discretization (now interpreted as missing)
1.0a27: Improved: Accelerated structure estimation
1.0a26: Improved: Progress computation. Added: Online entropy computation for large cliques
1.0a25: Improved: Memory management
1.0a24: Improved: Structure estimation, backend. Added: Third-order structure estimation; simple graphviz output
1.0a23: Improved: Structure estimation
1.0a22: Improved: Discretization engine, support for external inference engine. Added: default to 32bit computation (disable via env PX_USE64BIT)
1.0a21: Improved: Support for external inference engine
1.0a20: Added: Support for external inference engine (access via env PX_EXTINF)
1.0a19: Improved: Manual model creation
1.0a18: Added: Debug mode (linux only, enable via env PX_DEBUGMODE)
1.0a17: Improved: API, tests, regularization. Added: AIC and BIC computation
1.0a16: Improved: Memory management, access to optimizer state in optimization hooks. Added: Support for training resumption
1.0a15: Improved: API
1.0a14: Improved: Memory management
1.0a13: Improved: Memory management (fixed leak in conditional sampling/marginals)
1.0a12: Improved: Access to vertex and pairwise marginals
1.0a11: Added: Access to single variable marginals
1.0a10: Improved: Library build process
1.0a9: Added: Conditional sampling
1.0a8: Imroved: Maximum-a-posteriori (MAP) estimation. Added: Custom graph construction
1.0a7: Added: Conditional marginal inference, support for Ising/minimal statistics
1.0a6: Added: Manual model creation, support for training data with missing values (represented by pxpy.MISSING_VALUE)
1.0a5: Improved: Model management
1.0a4: Added: Model access in regularization and proximal hooks
1.0a3: Improved: GLIBC requirement, removed libgomp dependency
1.0a2: Added: Python 3.5 compatibility
1.0a1: Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.