def gumbel(shape, dtype=default_override_or(np.float32), loc=0.0, scale=1.0, seed=auto_select, name=''): """gumbel(shape, dtype=default_override_or(np.float32), loc=0.0, scale=1.0, seed=auto_select, name='') Generates samples from the Gumbel distribution with location `loc` and scale `scale`. Args: shape (tuple): shape of the output (entries are independent random draws) dtype (np.float32 or np.float64): data type. Default is np.float32. loc (float): location of the distribution scale (float): scale of the distribution seed (int): pseudo random number generator seed (default: automatically select a unique seed) name (str, optional): the name of the Function instance in the network Returns: :class:`~cntk.ops.functions.Function` Examples: >>> g = C.random.gumbel((2,3), seed=98052) >>> g.eval(device=C.cpu()) # explicitly setting cpu because this is tested on multiple platforms; leave it unspecified in your code array([[-0.987713, -0.522298, 0.425918], [-1.019599, 5.435177, 1.586071]], dtype=float32) See also: `The Gumbel-Max Trick <https://hips.seas.harvard.edu/blog/2013/04/06/the-gumbel-max-trick-for-discrete-distributions/>`_. """ from cntk.cntk_py import gumbel_random shape, dtype = sanitize_random_args(shape, dtype) return gumbel_random(shape, dtype, loc, scale, seed, name)