def zeros(*size, **kwargs): r"""Return a tensor filled with zeros. .. math:: \text{out} \leftarrow 0 Parameters ---------- size : int... The size(s) indicating the out shape. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='float32' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ out = kwargs.get('out', utils.new_leaf(size, kwargs)) return fill(out, size, 0)
def randperm(n, out=None, dtype='int64', device=None, requires_grad=False): """Return a tensor with value in the permuted range. Specify ``n`` to determine an interval :math:`[0, n)`: ```python print(torch.randperm(4)) ``` Parameters ---------- n: number The end of interval. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='int64' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.Tensor The output tensor. """ out = out if out else utils.new_leaf([n], locals()) return _functions.Permutation \ .instantiate(out.device, dtype=out.dtype) \ .apply(n, out)
def eye( n, m=None, out=None, dtype='float32', device=None, requires_grad=False, ): r"""Return a tensor constructed as the identity matrix. .. math:: \text{out} \leftarrow \text{diag}(1, 1, ..., 1) The rows and cols of matrix are determined by ``n`` and ``m``: ```python print(torch.eye(2)) # [[1., 0.], [0., 1.]] print(torch.eye(2, 3)) # [[1., 0., 0.], [0., 1., 0.]] ``` Parameters ---------- n : int The number output rows. m : int, optional The number output cols. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='float32' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ m = n if m is None else m out = utils.new_leaf([n, m], locals()) if out is None else out return _functions.Eye \ .instantiate(out.device, ndim=2, dtype=out.dtype) \ .apply(out, [n, m])
def full_like( input, fill_value, out=None, dtype='int64', device=None, requires_grad=False, ): """Return a tensor filled with a scalar with size as input. Examples: ```python print(torch.full_like(torch.zeros(1, 2), 1)) # [[1, 1]] ``` Parameters ---------- input : dragon.vm.torch.Tensor The tensor for indicating shape. fill_value : number The scalar to fill. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='int64' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ out = utils.new_leaf(input.shape, locals()) return fill_like(out, input, fill_value)
def full( size, fill_value, out=None, dtype='int64', device=None, requires_grad=False, ): """Return a tensor filled with a scalar. Examples: ```python print(torch.full((1, 2), 1)) # [[1, 1]] ``` Parameters ---------- size : Sequence[int] The output shape. fill_value : number The scalar to fill. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='int64' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ out = out if out else utils.new_leaf(size, locals()) return fill(out, size, fill_value)
def zeros_like(input, **kwargs): r"""Return a tensor of zeros with shape as the other. .. math:: \text{out} \leftarrow 0 Parameters ---------- input : dragon.vm.torch.Tensor The tensor for indicating shape. dtype : str, optional, default='float32' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ out = utils.new_leaf(input.shape, kwargs) return fill_like(out, input, 0)
def randn(*size, **kwargs): """Return a tensor from the normal distribution of N(0, 1). Parameters ---------- size : int... The size(s) indicating the out shape. out : dragon.vm.torch.Tensor, optional The output tensor. dtype : str, optional, default='float32' The optional data type. device : dragon.vm.torch.device, optional The optional device of returned tensor. requires_grad : bool, optional, default=False **True** to record gradient for returned tensor. Returns ------- dragon.vm.torch.Tensor The output tensor. """ out = kwargs.get('out', utils.new_leaf(size, kwargs)) return normal_fill(out, 0, 1)