org.apache.clojure-mxnet.symbol-random-api

Experimental

exponential

(exponential {:keys [lam shape ctx dtype name attr], :or {lam nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from an exponential distribution.

Samples are distributed according to an exponential distribution parametrized by *lambda* (rate).

Example::

   exponential(lam=4, shape=(2,2)) = [[ 0.0097189 ,  0.08999364],
                                      [ 0.04146638,  0.31715935]]


Defined in src/operator/random/sample_op.cc:L137

`lam`: Lambda parameter (rate) of the exponential distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

exponential-like

(exponential-like {:keys [lam shape dtype name attr], :or {lam nil, shape nil, dtype nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
exponential distributions with parameters lambda (rate).

The parameters of the distributions are provided as an input array.
Let *[s]* be the shape of the input array, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input array, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input value at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input array.

Examples::

   lam = [ 1.0, 8.5 ]

   // Draw a single sample for each distribution
   sample_exponential(lam) = [ 0.51837951,  0.09994757]

   // Draw a vector containing two samples for each distribution
   sample_exponential(lam, shape=(2)) = [[ 0.51837951,  0.19866663],
                                         [ 0.09994757,  0.50447971]]


Defined in src/operator/random/multisample_op.cc:L284

`lam`: Lambda (rate) parameters of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

gamma

(gamma {:keys [alpha beta shape ctx dtype name attr], :or {alpha nil, beta nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a gamma distribution.

Samples are distributed according to a gamma distribution parametrized by *alpha* (shape) and *beta* (scale).

Example::

   gamma(alpha=9, beta=0.5, shape=(2,2)) = [[ 7.10486984,  3.37695289],
                                            [ 3.91697288,  3.65933681]]


Defined in src/operator/random/sample_op.cc:L125

`alpha`: Alpha parameter (shape) of the gamma distribution. (optional)
`beta`: Beta parameter (scale) of the gamma distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

gamma-like

(gamma-like {:keys [alpha shape dtype beta name attr], :or {alpha nil, shape nil, dtype nil, beta nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
gamma distributions with parameters *alpha* (shape) and *beta* (scale).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   alpha = [ 0.0, 2.5 ]
   beta = [ 1.0, 0.7 ]

   // Draw a single sample for each distribution
   sample_gamma(alpha, beta) = [ 0.        ,  2.25797319]

   // Draw a vector containing two samples for each distribution
   sample_gamma(alpha, beta, shape=(2)) = [[ 0.        ,  0.        ],
                                           [ 2.25797319,  1.70734084]]


Defined in src/operator/random/multisample_op.cc:L282

`alpha`: Alpha (shape) parameters of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`beta`: Beta (scale) parameters of the distributions. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

generalized-negative-binomial

(generalized-negative-binomial {:keys [mu alpha shape ctx dtype name attr], :or {mu nil, alpha nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a generalized negative binomial distribution.

Samples are distributed according to a generalized negative binomial distribution parametrized by
*mu* (mean) and *alpha* (dispersion). *alpha* is defined as *1/k* where *k* is the failure limit of the
number of unsuccessful experiments (generalized to real numbers).
Samples will always be returned as a floating point data type.

Example::

   generalized_negative_binomial(mu=2.0, alpha=0.3, shape=(2,2)) = [[ 2.,  1.],
                                                                    [ 6.,  4.]]


Defined in src/operator/random/sample_op.cc:L179

`mu`: Mean of the negative binomial distribution. (optional)
`alpha`: Alpha (dispersion) parameter of the negative binomial distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

generalized-negative-binomial-like

(generalized-negative-binomial-like {:keys [mu shape dtype alpha name attr], :or {mu nil, shape nil, dtype nil, alpha nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
generalized negative binomial distributions with parameters *mu* (mean) and *alpha* (dispersion).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Samples will always be returned as a floating point data type.

Examples::

   mu = [ 2.0, 2.5 ]
   alpha = [ 1.0, 0.1 ]

   // Draw a single sample for each distribution
   sample_generalized_negative_binomial(mu, alpha) = [ 0.,  3.]

   // Draw a vector containing two samples for each distribution
   sample_generalized_negative_binomial(mu, alpha, shape=(2)) = [[ 0.,  3.],
                                                                 [ 3.,  1.]]


Defined in src/operator/random/multisample_op.cc:L293

`mu`: Means of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`alpha`: Alpha (dispersion) parameters of the distributions. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

multinomial-like

(multinomial-like {:keys [data shape get-prob dtype name attr], :or {data nil, shape nil, get-prob nil, dtype nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple multinomial distributions.

*data* is an *n* dimensional array whose last dimension has length *k*, where
*k* is the number of possible outcomes of each multinomial distribution. This
operator will draw *shape* samples from each distribution. If shape is empty
one sample will be drawn from each distribution.

If *get_prob* is true, a second array containing log likelihood of the drawn
samples will also be returned. This is usually used for reinforcement learning
where you can provide reward as head gradient for this array to estimate
gradient.

Note that the input distribution must be normalized, i.e. *data* must sum to
1 along its last axis.

Examples::

   probs = [[0, 0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1, 0]]

   // Draw a single sample for each distribution
   sample_multinomial(probs) = [3, 0]

   // Draw a vector containing two samples for each distribution
   sample_multinomial(probs, shape=(2)) = [[4, 2],
                                           [0, 0]]

   // requests log likelihood
   sample_multinomial(probs, get_prob=True) = [2, 1], [0.2, 0.3]


`data`: Distribution probabilities. Must sum to one on the last axis. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`get-prob`: Whether to also return the log probability of sampled result. This is usually used for differentiating through stochastic variables, e.g. in reinforcement learning. (optional)
`dtype`: DType of the output in case this can't be inferred. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

negative-binomial

(negative-binomial {:keys [k p shape ctx dtype name attr], :or {k nil, p nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a negative binomial distribution.

Samples are distributed according to a negative binomial distribution parametrized by
*k* (limit of unsuccessful experiments) and *p* (failure probability in each experiment).
Samples will always be returned as a floating point data type.

Example::

   negative_binomial(k=3, p=0.4, shape=(2,2)) = [[ 4.,  7.],
                                                 [ 2.,  5.]]


Defined in src/operator/random/sample_op.cc:L164

`k`: Limit of unsuccessful experiments. (optional)
`p`: Failure probability in each experiment. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

negative-binomial-like

(negative-binomial-like {:keys [k shape dtype p name attr], :or {k nil, shape nil, dtype nil, p nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
negative binomial distributions with parameters *k* (failure limit) and *p* (failure probability).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Samples will always be returned as a floating point data type.

Examples::

   k = [ 20, 49 ]
   p = [ 0.4 , 0.77 ]

   // Draw a single sample for each distribution
   sample_negative_binomial(k, p) = [ 15.,  16.]

   // Draw a vector containing two samples for each distribution
   sample_negative_binomial(k, p, shape=(2)) = [[ 15.,  50.],
                                                [ 16.,  12.]]


Defined in src/operator/random/multisample_op.cc:L289

`k`: Limits of unsuccessful experiments. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`p`: Failure probabilities in each experiment. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

normal

(normal {:keys [loc scale shape ctx dtype name attr], :or {loc nil, scale nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a normal (Gaussian) distribution.

.. note:: The existing alias ``normal`` is deprecated.

Samples are distributed according to a normal distribution parametrized by *loc* (mean) and *scale*
(standard deviation).

Example::

   normal(loc=0, scale=1, shape=(2,2)) = [[ 1.89171135, -1.16881478],
                                          [-1.23474145,  1.55807114]]


Defined in src/operator/random/sample_op.cc:L113

`loc`: Mean of the distribution. (optional)
`scale`: Standard deviation of the distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

normal-like

(normal-like {:keys [mu shape dtype sigma name attr], :or {mu nil, shape nil, dtype nil, sigma nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
normal distributions with parameters *mu* (mean) and *sigma* (standard deviation).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   mu = [ 0.0, 2.5 ]
   sigma = [ 1.0, 3.7 ]

   // Draw a single sample for each distribution
   sample_normal(mu, sigma) = [-0.56410581,  0.95934606]

   // Draw a vector containing two samples for each distribution
   sample_normal(mu, sigma, shape=(2)) = [[-0.56410581,  0.2928229 ],
                                          [ 0.95934606,  4.48287058]]


Defined in src/operator/random/multisample_op.cc:L279

`mu`: Means of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`sigma`: Standard deviations of the distributions. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

poisson

(poisson {:keys [lam shape ctx dtype name attr], :or {lam nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a Poisson distribution.

Samples are distributed according to a Poisson distribution parametrized by *lambda* (rate).
Samples will always be returned as a floating point data type.

Example::

   poisson(lam=4, shape=(2,2)) = [[ 5.,  2.],
                                  [ 4.,  6.]]


Defined in src/operator/random/sample_op.cc:L150

`lam`: Lambda parameter (rate) of the Poisson distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

poisson-like

(poisson-like {:keys [lam shape dtype name attr], :or {lam nil, shape nil, dtype nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
Poisson distributions with parameters lambda (rate).

The parameters of the distributions are provided as an input array.
Let *[s]* be the shape of the input array, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input array, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input value at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input array.

Samples will always be returned as a floating point data type.

Examples::

   lam = [ 1.0, 8.5 ]

   // Draw a single sample for each distribution
   sample_poisson(lam) = [  0.,  13.]

   // Draw a vector containing two samples for each distribution
   sample_poisson(lam, shape=(2)) = [[  0.,   4.],
                                     [ 13.,   8.]]


Defined in src/operator/random/multisample_op.cc:L286

`lam`: Lambda (rate) parameters of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

randint

(randint {:keys [low high shape ctx dtype name attr], :or {shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a discrete uniform distribution.

Samples are uniformly distributed over the half-open interval *[low, high)*
(includes *low*, but excludes *high*).

Example::

   randint(low=0, high=5, shape=(2,2)) = [[ 0,  2],
                                          [ 3,  1]]



Defined in src/operator/random/sample_op.cc:L193

`low`: Lower bound of the distribution.
`high`: Upper bound of the distribution.
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to int32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

uniform

(uniform {:keys [low high shape ctx dtype name attr], :or {low nil, high nil, shape nil, ctx nil, dtype nil, name nil, attr nil}, :as opts})
Draw random samples from a uniform distribution.

.. note:: The existing alias ``uniform`` is deprecated.

Samples are uniformly distributed over the half-open interval *[low, high)*
(includes *low*, but excludes *high*).

Example::

   uniform(low=0, high=1, shape=(2,2)) = [[ 0.60276335,  0.85794562],
                                          [ 0.54488319,  0.84725171]]



Defined in src/operator/random/sample_op.cc:L96

`low`: Lower bound of the distribution. (optional)
`high`: Upper bound of the distribution. (optional)
`shape`: Shape of the output. (optional)
`ctx`: Context of output, in format [cpu|gpu|cpu_pinned](n). Only used for imperative calls. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)

uniform-like

(uniform-like {:keys [low shape dtype high name attr], :or {low nil, shape nil, dtype nil, high nil, name nil, attr nil}, :as opts})
Concurrent sampling from multiple
uniform distributions on the intervals given by *[low,high)*.

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array with shape *[s]x[t]*.

For any valid *n*-dimensional index *i* with respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   low = [ 0.0, 2.5 ]
   high = [ 1.0, 3.7 ]

   // Draw a single sample for each distribution
   sample_uniform(low, high) = [ 0.40451524,  3.18687344]

   // Draw a vector containing two samples for each distribution
   sample_uniform(low, high, shape=(2)) = [[ 0.40451524,  0.18017688],
                                           [ 3.18687344,  3.68352246]]


Defined in src/operator/random/multisample_op.cc:L277

`low`: Lower bounds of the distributions. (optional)
`shape`: Shape to be sampled from each random distribution. (optional)
`dtype`: DType of the output in case this can't be inferred. Defaults to float32 if not defined (dtype=None). (optional)
`high`: Upper bounds of the distributions. (optional)
`name`: Name of the symbol (optional)
`attr`: Attributes of the symbol (optional)