Connection Weight Distributions¶
When creating a projection, you can specify the distribution from
which the connection weights are drawn in the projection spec, using
the dist parameter. Here is an example of adding a projection
to the network net, from the layer named "input" to
the layer named "output", with all weights set to the scalar
value 0.6.
import leabra7 as lb
net.new_projn(name="input_to_output",
pre="input",
post="output",
spec=lb.ProjnSpec(dist=lb.Scalar(0.6)))
Below is a list of all supported distributions:
-
class
leabra7.Scalar(value: float)¶ A scalar “distribution” (i.e. a constant).
Parameters: value – The value of the scalar.
-
class
leabra7.Uniform(low: float, high: float)¶ A uniform distribution.
Parameters: - low – The lower bound of the distribution’s interval, inclusive.
- high – The upper bound of the distribution’s interval, inclusive.
Raises: ValueError – If
low > high.
-
class
leabra7.Gaussian(mean: float, var: float)¶ A Gaussian distribution.
Parameters: - mean – The mean of the distribution.
- var – The variance of the distribution.
Raises: ValueError – If
varis negative.
-
class
leabra7.LogNormal(mean: float, var: float)¶ A lognormal distribution. The parameters
meanandvarare for the unique Gaussian random variable \(X\) such that \(Y = e^X\), where \(Y\) is the lognormal random variable.Parameters: - mean – The mean of \(X\).
- var – The variance of \(X\).
Raises: ValueError – If
varis negative.
-
class
leabra7.Exponential(lambd: float)¶ An exponential distribution.
Parameters: lambd – The distribution’s rate parameter \(\lambda\). If \(\mu\) is the mean, then \(\lambda = 1 / \mu\).