Distributions
clorch.distributions provides probability distributions with a data-first API.
(require '[clorch.distributions :as dist]
'[clorch.torch :as t])
Constructors
(dist/normal 0.0 1.0)
(dist/log-normal 0.0 0.5)
(dist/bernoulli (t/tensor [0.2 0.8]))
(dist/categorical (t/tensor [0.1 0.2 0.7]))
(dist/binomial 10.0 0.3)
(dist/uniform -1.0 2.0)
(dist/poisson 3.0)
(dist/exponential 2.0)
(dist/cauchy 0.0 1.0)
(dist/geometric 0.4)
(dist/gumbel 0.0 1.0)
(dist/laplace 0.0 1.0)
Core Operations
(def d (dist/normal 0.0 1.0))
(dist/sample d [4 3]) ;; sample-shape
(dist/log-prob d 0.0) ;; tensor or scalar
(dist/mean d)
(dist/variance d)
Notes
sample-shapeis supported for numeric-parameter distributions and for the common cases above.categoricalsampling usesmultinomial.log-probis implemented analytically for all distributions in this namespace.