# 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)

### pdf-dirichlet

`(pdf-dirichlet {:keys [sample alpha is-log name attr], :or {sample nil, alpha nil, is-log nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of Dirichlet distributions with parameter *alpha*. The shape of *alpha* must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *alpha*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the value of *alpha* at index *i*. Examples:: random_pdf_dirichlet(sample=[[1,2],[2,3],[3,4]], alpha=[2.5, 2.5]) = [38.413498, 199.60245, 564.56085] sample = [[[1, 2, 3], [10, 20, 30], [100, 200, 300]], [[0.1, 0.2, 0.3], [0.01, 0.02, 0.03], [0.001, 0.002, 0.003]]] random_pdf_dirichlet(sample=sample, alpha=[0.1, 0.4, 0.9]) = [[2.3257459e-02, 5.8420084e-04, 1.4674458e-05], [9.2589635e-01, 3.6860607e+01, 1.4674468e+03]] Defined in src/operator/random/pdf_op.cc:L316 `sample`: Samples from the distributions. (optional) `alpha`: Concentration parameters of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-exponential

`(pdf-exponential {:keys [sample lam is-log name attr], :or {sample nil, lam nil, is-log nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of exponential distributions with parameters *lam* (rate). The shape of *lam* must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *lam*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the value of *lam* at index *i*. Examples:: random_pdf_exponential(sample=[[1, 2, 3]], lam=[1]) = [[0.36787945, 0.13533528, 0.04978707]] sample = [[1,2,3], [1,2,3], [1,2,3]] random_pdf_exponential(sample=sample, lam=[1,0.5,0.25]) = [[0.36787945, 0.13533528, 0.04978707], [0.30326533, 0.18393973, 0.11156508], [0.1947002, 0.15163267, 0.11809164]] Defined in src/operator/random/pdf_op.cc:L305 `sample`: Samples from the distributions. (optional) `lam`: Lambda (rate) parameters of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-gamma

`(pdf-gamma {:keys [sample alpha is-log beta name attr], :or {sample nil, alpha nil, is-log nil, beta nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of gamma distributions with parameters *alpha* (shape) and *beta* (rate). *alpha* and *beta* must have the same shape, which must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *alpha* and *beta*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the values of *alpha* and *beta* at index *i*. Examples:: random_pdf_gamma(sample=[[1,2,3,4,5]], alpha=[5], beta=[1]) = [[0.01532831, 0.09022352, 0.16803136, 0.19536681, 0.17546739]] sample = [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7]] random_pdf_gamma(sample=sample, alpha=[5,6,7], beta=[1,1,1]) = [[0.01532831, 0.09022352, 0.16803136, 0.19536681, 0.17546739], [0.03608941, 0.10081882, 0.15629345, 0.17546739, 0.16062315], [0.05040941, 0.10419563, 0.14622283, 0.16062315, 0.14900276]] Defined in src/operator/random/pdf_op.cc:L303 `sample`: Samples from the distributions. (optional) `alpha`: Alpha (shape) parameters of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `beta`: Beta (scale) parameters of the distributions. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-generalized-negative-binomial

`(pdf-generalized-negative-binomial {:keys [sample mu is-log alpha name attr], :or {sample nil, mu nil, is-log nil, alpha nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of generalized negative binomial distributions with parameters *mu* (mean) and *alpha* (dispersion). This can be understood as a reparameterization of the negative binomial, where *k* = *1 / alpha* and *p* = *1 / (mu \* alpha + 1)*. *mu* and *alpha* must have the same shape, which must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *mu* and *alpha*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the values of *mu* and *alpha* at index *i*. Examples:: random_pdf_generalized_negative_binomial(sample=[[1, 2, 3, 4]], alpha=[1], mu=[1]) = [[0.25, 0.125, 0.0625, 0.03125]] sample = [[1,2,3,4], [1,2,3,4]] random_pdf_generalized_negative_binomial(sample=sample, alpha=[1, 0.6666], mu=[1, 1.5]) = [[0.25, 0.125, 0.0625, 0.03125 ], [0.26517063, 0.16573331, 0.09667706, 0.05437994]] Defined in src/operator/random/pdf_op.cc:L314 `sample`: Samples from the distributions. (optional) `mu`: Means of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `alpha`: Alpha (dispersion) parameters of the distributions. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-negative-binomial

`(pdf-negative-binomial {:keys [sample k is-log p name attr], :or {sample nil, k nil, is-log nil, p nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of samples of negative binomial distributions with parameters *k* (failure limit) and *p* (failure probability). *k* and *p* must have the same shape, which must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *k* and *p*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the values of *k* and *p* at index *i*. Examples:: random_pdf_negative_binomial(sample=[[1,2,3,4]], k=[1], p=a[0.5]) = [[0.25, 0.125, 0.0625, 0.03125]] # Note that k may be real-valued sample = [[1,2,3,4], [1,2,3,4]] random_pdf_negative_binomial(sample=sample, k=[1, 1.5], p=[0.5, 0.5]) = [[0.25, 0.125, 0.0625, 0.03125 ], [0.26516506, 0.16572815, 0.09667476, 0.05437956]] Defined in src/operator/random/pdf_op.cc:L310 `sample`: Samples from the distributions. (optional) `k`: Limits of unsuccessful experiments. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `p`: Failure probabilities in each experiment. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-normal

`(pdf-normal {:keys [sample mu is-log sigma name attr], :or {sample nil, mu nil, is-log nil, sigma nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of normal distributions with parameters *mu* (mean) and *sigma* (standard deviation). *mu* and *sigma* must have the same shape, which must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *mu* and *sigma*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the values of *mu* and *sigma* at index *i*. Examples:: sample = [[-2, -1, 0, 1, 2]] random_pdf_normal(sample=sample, mu=[0], sigma=[1]) = [[0.05399097, 0.24197073, 0.3989423, 0.24197073, 0.05399097]] random_pdf_normal(sample=sample*2, mu=[0,0], sigma=[1,2]) = [[0.05399097, 0.24197073, 0.3989423, 0.24197073, 0.05399097], [0.12098537, 0.17603266, 0.19947115, 0.17603266, 0.12098537]] Defined in src/operator/random/pdf_op.cc:L300 `sample`: Samples from the distributions. (optional) `mu`: Means of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `sigma`: Standard deviations of the distributions. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-poisson

`(pdf-poisson {:keys [sample lam is-log name attr], :or {sample nil, lam nil, is-log nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of Poisson distributions with parameters *lam* (rate). The shape of *lam* must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *lam*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the value of *lam* at index *i*. Examples:: random_pdf_poisson(sample=[[0,1,2,3]], lam=[1]) = [[0.36787945, 0.36787945, 0.18393973, 0.06131324]] sample = [[0,1,2,3], [0,1,2,3], [0,1,2,3]] random_pdf_poisson(sample=sample, lam=[1,2,3]) = [[0.36787945, 0.36787945, 0.18393973, 0.06131324], [0.13533528, 0.27067056, 0.27067056, 0.18044704], [0.04978707, 0.14936121, 0.22404182, 0.22404182]] Defined in src/operator/random/pdf_op.cc:L307 `sample`: Samples from the distributions. (optional) `lam`: Lambda (rate) parameters of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `name`: Name of the symbol (optional) `attr`: Attributes of the symbol (optional)

### pdf-uniform

`(pdf-uniform {:keys [sample low is-log high name attr], :or {sample nil, low nil, is-log nil, high nil, name nil, attr nil}, :as opts})`

Computes the value of the PDF of *sample* of uniform distributions on the intervals given by *[low,high)*. *low* and *high* must have the same shape, which must match the leftmost subshape of *sample*. That is, *sample* can have the same shape as *low* and *high*, in which case the output contains one density per distribution, or *sample* can be a tensor of tensors with that shape, in which case the output is a tensor of densities such that the densities at index *i* in the output are given by the samples at index *i* in *sample* parameterized by the values of *low* and *high* at index *i*. Examples:: random_pdf_uniform(sample=[[1,2,3,4]], low=[0], high=[10]) = [0.1, 0.1, 0.1, 0.1] sample = [[[1, 2, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3]]] low = [[0, 0], [0, 0]] high = [[ 5, 10], [15, 20]] random_pdf_uniform(sample=sample, low=low, high=high) = [[[0.2, 0.2, 0.2 ], [0.1, 0.1, 0.1 ]], [[0.06667, 0.06667, 0.06667], [0.05, 0.05, 0.05 ]]] Defined in src/operator/random/pdf_op.cc:L298 `sample`: Samples from the distributions. (optional) `low`: Lower bounds of the distributions. (optional) `is-log`: If set, compute the density of the log-probability instead of the probability. (optional) `high`: Upper bounds 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:L194 `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)