This is an automated email from the ASF dual-hosted git repository.

zhasheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new e37ff53   Return value docs for nd.random.* and sym.random.* (#13994)
e37ff53 is described below

commit e37ff53f0a3a0cc9276a7a1d4aff0deab91c40df
Author: Zach Boldyga <[email protected]>
AuthorDate: Tue Jan 29 17:54:57 2019 -0800

     Return value docs for nd.random.* and sym.random.* (#13994)
    
    * mx.random.multinomial python documentation updated, return type details 
added
    
    * multinomial documentation clarified
    
    * added basic case for negative_binomial
    
    * added basic case for generalized_negative_binomial
    
    * basic case added for gamma
    
    * added basic case for exponential
    
    * basic case added for randn
    
    * remaining base cases added.
    
    * randint case added
    
    * cleaned up return types for random.py
    
    * zboldyga added to contributors
    
    * spacing typo correction
    
    * updated symbol.random return types, minor correction to ndarray.random 
return types
    
    * removed trailing whitespace in docs
---
 CONTRIBUTORS.md                |  1 +
 python/mxnet/ndarray/random.py | 87 ++++++++++++++++++++++++++++++++++++++++++
 python/mxnet/symbol/random.py  | 85 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 173 insertions(+)

diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 5b5fdce..6bf44c5 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -194,6 +194,7 @@ List of Contributors
 * [Harsh Patel](https://github.com/harshp8l)
 * [Xiao Wang](https://github.com/BeyonderXX)
 * [Piyush Ghai](https://github.com/piyushghai)
+* [Zach Boldyga](https://github.com/zboldyga)
 
 Label Bot
 ---------
diff --git a/python/mxnet/ndarray/random.py b/python/mxnet/ndarray/random.py
index 78339a0..f19c1e0 100644
--- a/python/mxnet/ndarray/random.py
+++ b/python/mxnet/ndarray/random.py
@@ -78,6 +78,14 @@ def uniform(low=0, high=1, shape=_Null, dtype=_Null, 
ctx=None, out=None, **kwarg
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        An NDArray of type `dtype`. If input `shape` has shape, e.g.,
+        `(m, n)` and `low` and `high` are scalars, output shape will be `(m, 
n)`.
+        If `low` and `high` are NDArrays with shape, e.g., `(x, y)`, then the
+        return NDArray will have shape `(x, y, m, n)`, where `m*n` uniformly 
distributed
+        samples are drawn for each `[low, high)` pair.
 
     Examples
     --------
@@ -128,6 +136,13 @@ def normal(loc=0, scale=1, shape=_Null, dtype=_Null, 
ctx=None, out=None, **kwarg
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        An NDArray of type `dtype`. If input `shape` has shape, e.g., `(m, n)` 
and
+        `loc` and `scale` are scalars, output shape will be `(m, n)`. If `loc` 
and
+        `scale` are NDArrays with shape, e.g., `(x, y)`, then output will have 
shape
+        `(x, y, m, n)`, where `m*n` samples are drawn for each `[loc, scale)` 
pair.
 
     Examples
     --------
@@ -178,6 +193,13 @@ def randn(*shape, **kwargs):
     out : NDArray
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `loc` and `scale` are 
scalars, output
+        shape will be `(m, n)`. If `loc` and `scale` are NDArrays with shape, 
e.g., `(x, y)`,
+        then output will have shape `(x, y, m, n)`, where `m*n` samples are 
drawn for
+        each `[loc, scale)` pair.
 
     Examples
     --------
@@ -227,6 +249,13 @@ def poisson(lam=1, shape=_Null, dtype=_Null, ctx=None, 
out=None, **kwargs):
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `lam` is
+        a scalar, output shape will be `(m, n)`. If `lam`
+        is an NDArray with shape, e.g., `(x, y)`, then output will have shape
+        `(x, y, m, n)`, where `m*n` samples are drawn for each entry in `lam`.
 
     Examples
     --------
@@ -274,6 +303,12 @@ def exponential(scale=1, shape=_Null, dtype=_Null, 
ctx=None, out=None, **kwargs)
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `scale` is a scalar, 
output shape will
+        be `(m, n)`. If `scale` is an NDArray with shape, e.g., `(x, y)`, then 
`output`
+        will have shape `(x, y, m, n)`, where `m*n` samples are drawn for each 
entry in scale.
 
     Examples
     --------
@@ -320,6 +355,13 @@ def gamma(alpha=1, beta=1, shape=_Null, dtype=_Null, 
ctx=None, out=None, **kwarg
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `alpha` and `beta` are 
scalars, output
+        shape will be `(m, n)`. If `alpha` and `beta` are NDArrays with shape, 
e.g.,
+        `(x, y)`, then output will have shape `(x, y, m, n)`, where `m*n` 
samples are
+        drawn for each `[alpha, beta)` pair.
 
     Examples
     --------
@@ -369,6 +411,12 @@ def negative_binomial(k=1, p=1, shape=_Null, dtype=_Null, 
ctx=None,
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `k` and `p` are 
scalars, output shape
+        will be `(m, n)`. If `k` and `p` are NDArrays with shape, e.g., `(x, 
y)`, then
+        output will have shape `(x, y, m, n)`, where `m*n` samples are drawn 
for each `[k, p)` pair.
 
     Examples
     --------
@@ -420,6 +468,13 @@ def generalized_negative_binomial(mu=1, alpha=1, 
shape=_Null, dtype=_Null, ctx=N
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        If input `shape` has shape, e.g., `(m, n)` and `mu` and `alpha` are 
scalars, output
+        shape will be `(m, n)`. If `mu` and `alpha` are NDArrays with shape, 
e.g., `(x, y)`,
+        then output will have shape `(x, y, m, n)`, where `m*n` samples are 
drawn for
+        each `[mu, alpha)` pair.
 
     Examples
     --------
@@ -469,8 +524,27 @@ def multinomial(data, shape=_Null, get_prob=False, 
out=None, dtype='int32', **kw
         Data type of the sample output array. The default is int32.
         Note that the data type of the log likelihood array is the same with 
that of `data`.
 
+    Returns
+    -------
+    List, or NDArray
+        For input `data` with `n` dimensions and shape `(d1, d2, ..., dn-1, 
k)`, and input
+        `shape` with shape `(s1, s2, ..., sx)`, returns an NDArray with shape
+        `(d1, d2, ... dn-1, s1, s2, ..., sx)`. The `s1, s2, ... sx` dimensions 
of the
+        returned NDArray consist of 0-indexed values sampled from each 
respective multinomial
+        distribution provided in the `k` dimension of `data`.
+
+        For the case `n`=1, and `x`=1 (one shape dimension), returned NDArray 
has shape `(s1,)`.
+
+        If `get_prob` is set to True, this function returns a list of format:
+        `[ndarray_output, log_likelihood_output]`, where 
`log_likelihood_output` is an NDArray of the
+        same shape as the sampled outputs.
+
     Examples
     --------
+    >>> probs = mx.nd.array([0, 0.1, 0.2, 0.3, 0.4])
+    >>> mx.nd.random.multinomial(probs)
+    [3]
+    <NDArray 1 @cpu(0)>
     >>> probs = mx.nd.array([[0, 0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1, 0]])
     >>> mx.nd.random.multinomial(probs)
     [3 1]
@@ -503,6 +577,13 @@ def shuffle(data, **kwargs):
     out : NDArray, optional
         Array to store the result.
 
+    Returns
+    -------
+    NDArray
+        A new NDArray with the same shape and type as input `data`, but
+        with items in the first axis of the returned NDArray shuffled randomly.
+        The original input `data` is not modified.
+
     Examples
     --------
     >>> data = mx.nd.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
@@ -545,6 +626,12 @@ def randint(low, high, shape=_Null, dtype=_Null, ctx=None, 
out=None, **kwargs):
     out : NDArray, optional
         Store output to an existing NDArray.
 
+    Returns
+    -------
+    NDArray
+        An NDArray of type `dtype`. If input `shape` has shape, e.g.,
+        `(m, n)`, the returned NDArray will shape will be `(m, n)`. Contents
+        of the returned NDArray will be samples from the interval `[low, 
high)`.
 
     Examples
     --------
diff --git a/python/mxnet/symbol/random.py b/python/mxnet/symbol/random.py
index 34663cd..4bdfe70 100644
--- a/python/mxnet/symbol/random.py
+++ b/python/mxnet/symbol/random.py
@@ -66,6 +66,14 @@ def uniform(low=0, high=1, shape=_Null, dtype=_Null, 
**kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each `[low, high)` 
pair.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `low` and `high` 
are
+        scalars, returned Symbol will resolve to shape `(m, n)`. If `low` and 
`high`
+        are Symbols with shape, e.g., `(x, y)`, returned Symbol will have shape
+        `(x, y, m, n)`, where `m*n` samples are drawn for each `[low, high)` 
pair.
     """
     return _random_helper(_internal._random_uniform, _internal._sample_uniform,
                           [low, high], shape, dtype, kwargs)
@@ -91,6 +99,15 @@ def normal(loc=0, scale=1, shape=_Null, dtype=_Null, 
**kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each `[loc, scale)` 
pair.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `loc` and
+        `scale` are scalars, returned Symbol will resolve to shape `(m, n)`.
+        If `loc` and `scale` are Symbols with shape, e.g., `(x, y)`, returned
+        Symbol will resolve to shape `(x, y, m, n)`, where `m*n` samples are 
drawn
+        for each `[loc, scale)` pair.
     """
     return _random_helper(_internal._random_normal, _internal._sample_normal,
                           [loc, scale], shape, dtype, kwargs)
@@ -113,6 +130,14 @@ def poisson(lam=1, shape=_Null, dtype=_Null, **kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each entry in `lam`.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `lam` is
+        a scalar, output shape will be `(m, n)`. If `lam`
+        is an Symbol with shape, e.g., `(x, y)`, then output will have shape
+        `(x, y, m, n)`, where `m*n` samples are drawn for each entry in `lam`.
     """
     return _random_helper(_internal._random_poisson, _internal._sample_poisson,
                           [lam], shape, dtype, kwargs)
@@ -139,6 +164,14 @@ def exponential(scale=1, shape=_Null, dtype=_Null, 
**kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each entry in 
`scale`.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `scale` is
+        a scalar, returned Symbol will have shape `(m, n)`. If `scale`
+        is a Symbol with shape, e.g., `(x, y)`, returned Symbol will resolve to
+        shape `(x, y, m, n)`, where `m*n` samples are drawn for each entry in 
`scale`.
     """
     return _random_helper(_internal._random_exponential, 
_internal._sample_exponential,
                           [1.0/scale], shape, dtype, kwargs)
@@ -164,6 +197,14 @@ def gamma(alpha=1, beta=1, shape=_Null, dtype=_Null, 
**kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each `[alpha, beta)` 
pair.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)` and `alpha` and
+        `beta` are scalars, returned Symbol will resolve to shape `(m, n)`. If 
`alpha`
+        and `beta` are Symbols with shape, e.g., `(x, y)`, returned Symbol 
will resolve
+        to shape `(x, y, m, n)`, where `m*n` samples are drawn for each 
`[alpha, beta)` pair.
     """
     return _random_helper(_internal._random_gamma, _internal._sample_gamma,
                           [alpha, beta], shape, dtype, kwargs)
@@ -190,6 +231,14 @@ def negative_binomial(k=1, p=1, shape=_Null, dtype=_Null, 
**kwargs):
         `(x, y, m, n)`, where `m*n` samples are drawn for each `[k, p)` pair.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `k` and
+        `p` are scalars, returned Symbol will resolve to shape `(m, n)`. If `k`
+        and `p` are Symbols with shape, e.g., `(x, y)`, returned Symbol will 
resolve
+        to shape `(x, y, m, n)`, where `m*n` samples are drawn for each `[k, 
p)` pair.
     """
     return _random_helper(_internal._random_negative_binomial,
                           _internal._sample_negative_binomial,
@@ -218,6 +267,14 @@ def generalized_negative_binomial(mu=1, alpha=1, 
shape=_Null, dtype=_Null, **kwa
         `(x, y, m, n)`, where `m*n` samples are drawn for each `[mu, alpha)` 
pair.
     dtype : {'float16', 'float32', 'float64'}, optional
         Data type of output samples. Default is 'float32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `mu` and
+        `alpha` are scalars, returned Symbol will resolve to shape `(m, n)`. 
If `mu`
+        and `alpha` are Symbols with shape, e.g., `(x, y)`, returned Symbol 
will resolve
+        to shape `(x, y, m, n)`, where `m*n` samples are drawn for each `[mu, 
alpha)` pair.
     """
     return _random_helper(_internal._random_generalized_negative_binomial,
                           _internal._sample_generalized_negative_binomial,
@@ -248,6 +305,22 @@ def multinomial(data, shape=_Null, get_prob=True, 
dtype='int32', **kwargs):
     dtype : str or numpy.dtype, optional
         Data type of the sample output array. The default is int32.
         Note that the data type of the log likelihood array is the same with 
that of `data`.
+
+    Returns
+    -------
+    Symbol
+        For input `data` with `n` dimensions and shape `(d1, d2, ..., dn-1, 
k)`, and input
+        `shape` with shape `(s1, s2, ..., sx)`, returns a Symbol that resovles 
to shape
+        `(d1, d2, ... dn-1, s1, s2, ..., sx)`. The `s1, s2, ... sx` dimensions 
of the
+        returned Symbol's resolved value will consist of 0-indexed values 
sampled from each
+        respective multinomial distribution provided in the `k` dimension of 
`data`.
+
+        For the case `n`=1, and `x`=1 (one shape dimension), returned Symbol 
will resolve to
+        shape `(s1,)`.
+
+        If `get_prob` is set to True, this function returns a Symbol that will 
resolve to a list of
+        outputs: `[ndarray_output, log_likelihood_output]`, where 
`log_likelihood_output` will resolve
+        to the same shape as the sampled outputs in ndarray_output.
     """
     return _internal._sample_multinomial(data, shape, get_prob, dtype=dtype, 
**kwargs)
 
@@ -264,6 +337,12 @@ def shuffle(data, **kwargs):
     ----------
     data : NDArray
         Input data array.
+
+    Returns
+    -------
+    Symbol
+        A new symbol representing the shuffled version of input `data`.
+
     Examples
     --------
     >>> data = mx.nd.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
@@ -302,6 +381,12 @@ def randint(low, high, shape=_Null, dtype=_Null, **kwargs):
         `high` are scalars, output shape will be `(m, n)`.
     dtype : {'int32', 'int64'}, optional
         Data type of output samples. Default is 'int32'
+
+    Returns
+    -------
+    Symbol
+        If input `shape` has dimensions, e.g., `(m, n)`, and `low` and
+        `high` are scalars, returned Symbol will resolve to shape `(m, n)`.
     """
     return _random_helper(_internal._random_randint, None,
                           [low, high], shape, dtype, kwargs)

Reply via email to