| # mypy: allow-untyped-defs |
| """Adds docstrings to Tensor functions""" |
| |
| import torch._C |
| from torch._C import _add_docstr as add_docstr |
| from torch._torch_docs import parse_kwargs, reproducibility_notes |
| |
| |
| def add_docstr_all(method, docstr): |
| add_docstr(getattr(torch._C.TensorBase, method), docstr) |
| |
| |
| common_args = parse_kwargs( |
| """ |
| memory_format (:class:`torch.memory_format`, optional): the desired memory format of |
| returned Tensor. Default: ``torch.preserve_format``. |
| """ |
| ) |
| |
| new_common_args = parse_kwargs( |
| """ |
| size (int...): a list, tuple, or :class:`torch.Size` of integers defining the |
| shape of the output tensor. |
| dtype (:class:`torch.dtype`, optional): the desired type of returned tensor. |
| Default: if None, same :class:`torch.dtype` as this tensor. |
| device (:class:`torch.device`, optional): the desired device of returned tensor. |
| Default: if None, same :class:`torch.device` as this tensor. |
| requires_grad (bool, optional): If autograd should record operations on the |
| returned tensor. Default: ``False``. |
| pin_memory (bool, optional): If set, returned tensor would be allocated in |
| the pinned memory. Works only for CPU tensors. Default: ``False``. |
| layout (:class:`torch.layout`, optional): the desired layout of returned Tensor. |
| Default: ``torch.strided``. |
| """ |
| ) |
| |
| add_docstr_all( |
| "new_tensor", |
| """ |
| new_tensor(data, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a new Tensor with :attr:`data` as the tensor data. |
| By default, the returned Tensor has the same :class:`torch.dtype` and |
| :class:`torch.device` as this tensor. |
| |
| .. warning:: |
| |
| :func:`new_tensor` always copies :attr:`data`. If you have a Tensor |
| ``data`` and want to avoid a copy, use :func:`torch.Tensor.requires_grad_` |
| or :func:`torch.Tensor.detach`. |
| If you have a numpy array and want to avoid a copy, use |
| :func:`torch.from_numpy`. |
| |
| .. warning:: |
| |
| When data is a tensor `x`, :func:`new_tensor()` reads out 'the data' from whatever it is passed, |
| and constructs a leaf variable. Therefore ``tensor.new_tensor(x)`` is equivalent to ``x.clone().detach()`` |
| and ``tensor.new_tensor(x, requires_grad=True)`` is equivalent to ``x.clone().detach().requires_grad_(True)``. |
| The equivalents using ``clone()`` and ``detach()`` are recommended. |
| |
| Args: |
| data (array_like): The returned Tensor copies :attr:`data`. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.ones((2,), dtype=torch.int8) |
| >>> data = [[0, 1], [2, 3]] |
| >>> tensor.new_tensor(data) |
| tensor([[ 0, 1], |
| [ 2, 3]], dtype=torch.int8) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "new_full", |
| """ |
| new_full(size, fill_value, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a Tensor of size :attr:`size` filled with :attr:`fill_value`. |
| By default, the returned Tensor has the same :class:`torch.dtype` and |
| :class:`torch.device` as this tensor. |
| |
| Args: |
| fill_value (scalar): the number to fill the output tensor with. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.ones((2,), dtype=torch.float64) |
| >>> tensor.new_full((3, 4), 3.141592) |
| tensor([[ 3.1416, 3.1416, 3.1416, 3.1416], |
| [ 3.1416, 3.1416, 3.1416, 3.1416], |
| [ 3.1416, 3.1416, 3.1416, 3.1416]], dtype=torch.float64) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "new_empty", |
| """ |
| new_empty(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a Tensor of size :attr:`size` filled with uninitialized data. |
| By default, the returned Tensor has the same :class:`torch.dtype` and |
| :class:`torch.device` as this tensor. |
| |
| Args: |
| size (int...): a list, tuple, or :class:`torch.Size` of integers defining the |
| shape of the output tensor. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.ones(()) |
| >>> tensor.new_empty((2, 3)) |
| tensor([[ 5.8182e-18, 4.5765e-41, -1.0545e+30], |
| [ 3.0949e-41, 4.4842e-44, 0.0000e+00]]) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "new_empty_strided", |
| """ |
| new_empty_strided(size, stride, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a Tensor of size :attr:`size` and strides :attr:`stride` filled with |
| uninitialized data. By default, the returned Tensor has the same |
| :class:`torch.dtype` and :class:`torch.device` as this tensor. |
| |
| Args: |
| size (int...): a list, tuple, or :class:`torch.Size` of integers defining the |
| shape of the output tensor. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.ones(()) |
| >>> tensor.new_empty_strided((2, 3), (3, 1)) |
| tensor([[ 5.8182e-18, 4.5765e-41, -1.0545e+30], |
| [ 3.0949e-41, 4.4842e-44, 0.0000e+00]]) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "new_ones", |
| """ |
| new_ones(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a Tensor of size :attr:`size` filled with ``1``. |
| By default, the returned Tensor has the same :class:`torch.dtype` and |
| :class:`torch.device` as this tensor. |
| |
| Args: |
| size (int...): a list, tuple, or :class:`torch.Size` of integers defining the |
| shape of the output tensor. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.tensor((), dtype=torch.int32) |
| >>> tensor.new_ones((2, 3)) |
| tensor([[ 1, 1, 1], |
| [ 1, 1, 1]], dtype=torch.int32) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "new_zeros", |
| """ |
| new_zeros(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \ |
| pin_memory=False) -> Tensor |
| """ |
| + r""" |
| |
| Returns a Tensor of size :attr:`size` filled with ``0``. |
| By default, the returned Tensor has the same :class:`torch.dtype` and |
| :class:`torch.device` as this tensor. |
| |
| Args: |
| size (int...): a list, tuple, or :class:`torch.Size` of integers defining the |
| shape of the output tensor. |
| |
| Keyword args: |
| {dtype} |
| {device} |
| {requires_grad} |
| {layout} |
| {pin_memory} |
| |
| Example:: |
| |
| >>> tensor = torch.tensor((), dtype=torch.float64) |
| >>> tensor.new_zeros((2, 3)) |
| tensor([[ 0., 0., 0.], |
| [ 0., 0., 0.]], dtype=torch.float64) |
| |
| """.format(**new_common_args), |
| ) |
| |
| add_docstr_all( |
| "abs", |
| r""" |
| abs() -> Tensor |
| |
| See :func:`torch.abs` |
| """, |
| ) |
| |
| add_docstr_all( |
| "abs_", |
| r""" |
| abs_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.abs` |
| """, |
| ) |
| |
| add_docstr_all( |
| "absolute", |
| r""" |
| absolute() -> Tensor |
| |
| Alias for :func:`abs` |
| """, |
| ) |
| |
| add_docstr_all( |
| "absolute_", |
| r""" |
| absolute_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.absolute` |
| Alias for :func:`abs_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "acos", |
| r""" |
| acos() -> Tensor |
| |
| See :func:`torch.acos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "acos_", |
| r""" |
| acos_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.acos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arccos", |
| r""" |
| arccos() -> Tensor |
| |
| See :func:`torch.arccos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arccos_", |
| r""" |
| arccos_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.arccos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "acosh", |
| r""" |
| acosh() -> Tensor |
| |
| See :func:`torch.acosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "acosh_", |
| r""" |
| acosh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.acosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arccosh", |
| r""" |
| acosh() -> Tensor |
| |
| See :func:`torch.arccosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arccosh_", |
| r""" |
| acosh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.arccosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "add", |
| r""" |
| add(other, *, alpha=1) -> Tensor |
| |
| Add a scalar or tensor to :attr:`self` tensor. If both :attr:`alpha` |
| and :attr:`other` are specified, each element of :attr:`other` is scaled by |
| :attr:`alpha` before being used. |
| |
| When :attr:`other` is a tensor, the shape of :attr:`other` must be |
| :ref:`broadcastable <broadcasting-semantics>` with the shape of the underlying |
| tensor |
| |
| See :func:`torch.add` |
| """, |
| ) |
| |
| add_docstr_all( |
| "add_", |
| r""" |
| add_(other, *, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.add` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addbmm", |
| r""" |
| addbmm(batch1, batch2, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.addbmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addbmm_", |
| r""" |
| addbmm_(batch1, batch2, *, beta=1, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addbmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addcdiv", |
| r""" |
| addcdiv(tensor1, tensor2, *, value=1) -> Tensor |
| |
| See :func:`torch.addcdiv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addcdiv_", |
| r""" |
| addcdiv_(tensor1, tensor2, *, value=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addcdiv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addcmul", |
| r""" |
| addcmul(tensor1, tensor2, *, value=1) -> Tensor |
| |
| See :func:`torch.addcmul` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addcmul_", |
| r""" |
| addcmul_(tensor1, tensor2, *, value=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addcmul` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addmm", |
| r""" |
| addmm(mat1, mat2, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.addmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addmm_", |
| r""" |
| addmm_(mat1, mat2, *, beta=1, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addmv", |
| r""" |
| addmv(mat, vec, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.addmv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addmv_", |
| r""" |
| addmv_(mat, vec, *, beta=1, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addmv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sspaddmm", |
| r""" |
| sspaddmm(mat1, mat2, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.sspaddmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "smm", |
| r""" |
| smm(mat) -> Tensor |
| |
| See :func:`torch.smm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addr", |
| r""" |
| addr(vec1, vec2, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.addr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "addr_", |
| r""" |
| addr_(vec1, vec2, *, beta=1, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.addr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "align_as", |
| r""" |
| align_as(other) -> Tensor |
| |
| Permutes the dimensions of the :attr:`self` tensor to match the dimension order |
| in the :attr:`other` tensor, adding size-one dims for any new names. |
| |
| This operation is useful for explicit broadcasting by names (see examples). |
| |
| All of the dims of :attr:`self` must be named in order to use this method. |
| The resulting tensor is a view on the original tensor. |
| |
| All dimension names of :attr:`self` must be present in ``other.names``. |
| :attr:`other` may contain named dimensions that are not in ``self.names``; |
| the output tensor has a size-one dimension for each of those new names. |
| |
| To align a tensor to a specific order, use :meth:`~Tensor.align_to`. |
| |
| Examples:: |
| |
| # Example 1: Applying a mask |
| >>> mask = torch.randint(2, [127, 128], dtype=torch.bool).refine_names('W', 'H') |
| >>> imgs = torch.randn(32, 128, 127, 3, names=('N', 'H', 'W', 'C')) |
| >>> imgs.masked_fill_(mask.align_as(imgs), 0) |
| |
| |
| # Example 2: Applying a per-channel-scale |
| >>> def scale_channels(input, scale): |
| >>> scale = scale.refine_names('C') |
| >>> return input * scale.align_as(input) |
| |
| >>> num_channels = 3 |
| >>> scale = torch.randn(num_channels, names=('C',)) |
| >>> imgs = torch.rand(32, 128, 128, num_channels, names=('N', 'H', 'W', 'C')) |
| >>> more_imgs = torch.rand(32, num_channels, 128, 128, names=('N', 'C', 'H', 'W')) |
| >>> videos = torch.randn(3, num_channels, 128, 128, 128, names=('N', 'C', 'H', 'W', 'D')) |
| |
| # scale_channels is agnostic to the dimension order of the input |
| >>> scale_channels(imgs, scale) |
| >>> scale_channels(more_imgs, scale) |
| >>> scale_channels(videos, scale) |
| |
| .. warning:: |
| The named tensor API is experimental and subject to change. |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "all", |
| r""" |
| all(dim=None, keepdim=False) -> Tensor |
| |
| See :func:`torch.all` |
| """, |
| ) |
| |
| add_docstr_all( |
| "allclose", |
| r""" |
| allclose(other, rtol=1e-05, atol=1e-08, equal_nan=False) -> Tensor |
| |
| See :func:`torch.allclose` |
| """, |
| ) |
| |
| add_docstr_all( |
| "angle", |
| r""" |
| angle() -> Tensor |
| |
| See :func:`torch.angle` |
| """, |
| ) |
| |
| add_docstr_all( |
| "any", |
| r""" |
| any(dim=None, keepdim=False) -> Tensor |
| |
| See :func:`torch.any` |
| """, |
| ) |
| |
| add_docstr_all( |
| "apply_", |
| r""" |
| apply_(callable) -> Tensor |
| |
| Applies the function :attr:`callable` to each element in the tensor, replacing |
| each element with the value returned by :attr:`callable`. |
| |
| .. note:: |
| |
| This function only works with CPU tensors and should not be used in code |
| sections that require high performance. |
| """, |
| ) |
| |
| add_docstr_all( |
| "asin", |
| r""" |
| asin() -> Tensor |
| |
| See :func:`torch.asin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "asin_", |
| r""" |
| asin_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.asin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arcsin", |
| r""" |
| arcsin() -> Tensor |
| |
| See :func:`torch.arcsin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arcsin_", |
| r""" |
| arcsin_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.arcsin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "asinh", |
| r""" |
| asinh() -> Tensor |
| |
| See :func:`torch.asinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "asinh_", |
| r""" |
| asinh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.asinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arcsinh", |
| r""" |
| arcsinh() -> Tensor |
| |
| See :func:`torch.arcsinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arcsinh_", |
| r""" |
| arcsinh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.arcsinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "as_strided", |
| r""" |
| as_strided(size, stride, storage_offset=None) -> Tensor |
| |
| See :func:`torch.as_strided` |
| """, |
| ) |
| |
| add_docstr_all( |
| "as_strided_", |
| r""" |
| as_strided_(size, stride, storage_offset=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.as_strided` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atan", |
| r""" |
| atan() -> Tensor |
| |
| See :func:`torch.atan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atan_", |
| r""" |
| atan_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.atan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctan", |
| r""" |
| arctan() -> Tensor |
| |
| See :func:`torch.arctan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctan_", |
| r""" |
| arctan_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.arctan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atan2", |
| r""" |
| atan2(other) -> Tensor |
| |
| See :func:`torch.atan2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atan2_", |
| r""" |
| atan2_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.atan2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctan2", |
| r""" |
| arctan2(other) -> Tensor |
| |
| See :func:`torch.arctan2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctan2_", |
| r""" |
| atan2_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.arctan2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atanh", |
| r""" |
| atanh() -> Tensor |
| |
| See :func:`torch.atanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "atanh_", |
| r""" |
| atanh_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.atanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctanh", |
| r""" |
| arctanh() -> Tensor |
| |
| See :func:`torch.arctanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "arctanh_", |
| r""" |
| arctanh_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.arctanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "baddbmm", |
| r""" |
| baddbmm(batch1, batch2, *, beta=1, alpha=1) -> Tensor |
| |
| See :func:`torch.baddbmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "baddbmm_", |
| r""" |
| baddbmm_(batch1, batch2, *, beta=1, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.baddbmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bernoulli", |
| r""" |
| bernoulli(*, generator=None) -> Tensor |
| |
| Returns a result tensor where each :math:`\texttt{result[i]}` is independently |
| sampled from :math:`\text{Bernoulli}(\texttt{self[i]})`. :attr:`self` must have |
| floating point ``dtype``, and the result will have the same ``dtype``. |
| |
| See :func:`torch.bernoulli` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bernoulli_", |
| r""" |
| bernoulli_(p=0.5, *, generator=None) -> Tensor |
| |
| Fills each location of :attr:`self` with an independent sample from |
| :math:`\text{Bernoulli}(\texttt{p})`. :attr:`self` can have integral |
| ``dtype``. |
| |
| :attr:`p` should either be a scalar or tensor containing probabilities to be |
| used for drawing the binary random number. |
| |
| If it is a tensor, the :math:`\text{i}^{th}` element of :attr:`self` tensor |
| will be set to a value sampled from |
| :math:`\text{Bernoulli}(\texttt{p\_tensor[i]})`. In this case `p` must have |
| floating point ``dtype``. |
| |
| See also :meth:`~Tensor.bernoulli` and :func:`torch.bernoulli` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bincount", |
| r""" |
| bincount(weights=None, minlength=0) -> Tensor |
| |
| See :func:`torch.bincount` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_not", |
| r""" |
| bitwise_not() -> Tensor |
| |
| See :func:`torch.bitwise_not` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_not_", |
| r""" |
| bitwise_not_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_not` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_and", |
| r""" |
| bitwise_and() -> Tensor |
| |
| See :func:`torch.bitwise_and` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_and_", |
| r""" |
| bitwise_and_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_and` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_or", |
| r""" |
| bitwise_or() -> Tensor |
| |
| See :func:`torch.bitwise_or` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_or_", |
| r""" |
| bitwise_or_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_or` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_xor", |
| r""" |
| bitwise_xor() -> Tensor |
| |
| See :func:`torch.bitwise_xor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_xor_", |
| r""" |
| bitwise_xor_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_xor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_left_shift", |
| r""" |
| bitwise_left_shift(other) -> Tensor |
| |
| See :func:`torch.bitwise_left_shift` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_left_shift_", |
| r""" |
| bitwise_left_shift_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_left_shift` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_right_shift", |
| r""" |
| bitwise_right_shift(other) -> Tensor |
| |
| See :func:`torch.bitwise_right_shift` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bitwise_right_shift_", |
| r""" |
| bitwise_right_shift_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.bitwise_right_shift` |
| """, |
| ) |
| |
| add_docstr_all( |
| "broadcast_to", |
| r""" |
| broadcast_to(shape) -> Tensor |
| |
| See :func:`torch.broadcast_to`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_and", |
| r""" |
| logical_and() -> Tensor |
| |
| See :func:`torch.logical_and` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_and_", |
| r""" |
| logical_and_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.logical_and` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_not", |
| r""" |
| logical_not() -> Tensor |
| |
| See :func:`torch.logical_not` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_not_", |
| r""" |
| logical_not_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.logical_not` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_or", |
| r""" |
| logical_or() -> Tensor |
| |
| See :func:`torch.logical_or` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_or_", |
| r""" |
| logical_or_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.logical_or` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_xor", |
| r""" |
| logical_xor() -> Tensor |
| |
| See :func:`torch.logical_xor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logical_xor_", |
| r""" |
| logical_xor_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.logical_xor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "bmm", |
| r""" |
| bmm(batch2) -> Tensor |
| |
| See :func:`torch.bmm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cauchy_", |
| r""" |
| cauchy_(median=0, sigma=1, *, generator=None) -> Tensor |
| |
| Fills the tensor with numbers drawn from the Cauchy distribution: |
| |
| .. math:: |
| |
| f(x) = \dfrac{1}{\pi} \dfrac{\sigma}{(x - \text{median})^2 + \sigma^2} |
| |
| .. note:: |
| Sigma (:math:`\sigma`) is used to denote the scale parameter in Cauchy distribution. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ceil", |
| r""" |
| ceil() -> Tensor |
| |
| See :func:`torch.ceil` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ceil_", |
| r""" |
| ceil_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.ceil` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cholesky", |
| r""" |
| cholesky(upper=False) -> Tensor |
| |
| See :func:`torch.cholesky` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cholesky_solve", |
| r""" |
| cholesky_solve(input2, upper=False) -> Tensor |
| |
| See :func:`torch.cholesky_solve` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cholesky_inverse", |
| r""" |
| cholesky_inverse(upper=False) -> Tensor |
| |
| See :func:`torch.cholesky_inverse` |
| """, |
| ) |
| |
| add_docstr_all( |
| "clamp", |
| r""" |
| clamp(min=None, max=None) -> Tensor |
| |
| See :func:`torch.clamp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "clamp_", |
| r""" |
| clamp_(min=None, max=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.clamp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "clip", |
| r""" |
| clip(min=None, max=None) -> Tensor |
| |
| Alias for :meth:`~Tensor.clamp`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "clip_", |
| r""" |
| clip_(min=None, max=None) -> Tensor |
| |
| Alias for :meth:`~Tensor.clamp_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "clone", |
| r""" |
| clone(*, memory_format=torch.preserve_format) -> Tensor |
| |
| See :func:`torch.clone` |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "coalesce", |
| r""" |
| coalesce() -> Tensor |
| |
| Returns a coalesced copy of :attr:`self` if :attr:`self` is an |
| :ref:`uncoalesced tensor <sparse-uncoalesced-coo-docs>`. |
| |
| Returns :attr:`self` if :attr:`self` is a coalesced tensor. |
| |
| .. warning:: |
| Throws an error if :attr:`self` is not a sparse COO tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "contiguous", |
| r""" |
| contiguous(memory_format=torch.contiguous_format) -> Tensor |
| |
| Returns a contiguous in memory tensor containing the same data as :attr:`self` tensor. If |
| :attr:`self` tensor is already in the specified memory format, this function returns the |
| :attr:`self` tensor. |
| |
| Args: |
| memory_format (:class:`torch.memory_format`, optional): the desired memory format of |
| returned Tensor. Default: ``torch.contiguous_format``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "copy_", |
| r""" |
| copy_(src, non_blocking=False) -> Tensor |
| |
| Copies the elements from :attr:`src` into :attr:`self` tensor and returns |
| :attr:`self`. |
| |
| The :attr:`src` tensor must be :ref:`broadcastable <broadcasting-semantics>` |
| with the :attr:`self` tensor. It may be of a different data type or reside on a |
| different device. |
| |
| Args: |
| src (Tensor): the source tensor to copy from |
| non_blocking (bool): if ``True`` and this copy is between CPU and GPU, |
| the copy may occur asynchronously with respect to the host. For other |
| cases, this argument has no effect. |
| """, |
| ) |
| |
| add_docstr_all( |
| "conj", |
| r""" |
| conj() -> Tensor |
| |
| See :func:`torch.conj` |
| """, |
| ) |
| |
| add_docstr_all( |
| "conj_physical", |
| r""" |
| conj_physical() -> Tensor |
| |
| See :func:`torch.conj_physical` |
| """, |
| ) |
| |
| add_docstr_all( |
| "conj_physical_", |
| r""" |
| conj_physical_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.conj_physical` |
| """, |
| ) |
| |
| add_docstr_all( |
| "resolve_conj", |
| r""" |
| resolve_conj() -> Tensor |
| |
| See :func:`torch.resolve_conj` |
| """, |
| ) |
| |
| add_docstr_all( |
| "resolve_neg", |
| r""" |
| resolve_neg() -> Tensor |
| |
| See :func:`torch.resolve_neg` |
| """, |
| ) |
| |
| add_docstr_all( |
| "copysign", |
| r""" |
| copysign(other) -> Tensor |
| |
| See :func:`torch.copysign` |
| """, |
| ) |
| |
| add_docstr_all( |
| "copysign_", |
| r""" |
| copysign_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.copysign` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cos", |
| r""" |
| cos() -> Tensor |
| |
| See :func:`torch.cos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cos_", |
| r""" |
| cos_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.cos` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cosh", |
| r""" |
| cosh() -> Tensor |
| |
| See :func:`torch.cosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cosh_", |
| r""" |
| cosh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.cosh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cpu", |
| r""" |
| cpu(memory_format=torch.preserve_format) -> Tensor |
| |
| Returns a copy of this object in CPU memory. |
| |
| If this object is already in CPU memory and on the correct device, |
| then no copy is performed and the original object is returned. |
| |
| Args: |
| {memory_format} |
| |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "count_nonzero", |
| r""" |
| count_nonzero(dim=None) -> Tensor |
| |
| See :func:`torch.count_nonzero` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cov", |
| r""" |
| cov(*, correction=1, fweights=None, aweights=None) -> Tensor |
| |
| See :func:`torch.cov` |
| """, |
| ) |
| |
| add_docstr_all( |
| "corrcoef", |
| r""" |
| corrcoef() -> Tensor |
| |
| See :func:`torch.corrcoef` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cross", |
| r""" |
| cross(other, dim=None) -> Tensor |
| |
| See :func:`torch.cross` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cuda", |
| r""" |
| cuda(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor |
| |
| Returns a copy of this object in CUDA memory. |
| |
| If this object is already in CUDA memory and on the correct device, |
| then no copy is performed and the original object is returned. |
| |
| Args: |
| device (:class:`torch.device`): The destination GPU device. |
| Defaults to the current CUDA device. |
| non_blocking (bool): If ``True`` and the source is in pinned memory, |
| the copy will be asynchronous with respect to the host. |
| Otherwise, the argument has no effect. Default: ``False``. |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "mtia", |
| r""" |
| mtia(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor |
| |
| Returns a copy of this object in MTIA memory. |
| |
| If this object is already in MTIA memory and on the correct device, |
| then no copy is performed and the original object is returned. |
| |
| Args: |
| device (:class:`torch.device`): The destination MTIA device. |
| Defaults to the current MTIA device. |
| non_blocking (bool): If ``True`` and the source is in pinned memory, |
| the copy will be asynchronous with respect to the host. |
| Otherwise, the argument has no effect. Default: ``False``. |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "ipu", |
| r""" |
| ipu(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor |
| |
| Returns a copy of this object in IPU memory. |
| |
| If this object is already in IPU memory and on the correct device, |
| then no copy is performed and the original object is returned. |
| |
| Args: |
| device (:class:`torch.device`): The destination IPU device. |
| Defaults to the current IPU device. |
| non_blocking (bool): If ``True`` and the source is in pinned memory, |
| the copy will be asynchronous with respect to the host. |
| Otherwise, the argument has no effect. Default: ``False``. |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "xpu", |
| r""" |
| xpu(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor |
| |
| Returns a copy of this object in XPU memory. |
| |
| If this object is already in XPU memory and on the correct device, |
| then no copy is performed and the original object is returned. |
| |
| Args: |
| device (:class:`torch.device`): The destination XPU device. |
| Defaults to the current XPU device. |
| non_blocking (bool): If ``True`` and the source is in pinned memory, |
| the copy will be asynchronous with respect to the host. |
| Otherwise, the argument has no effect. Default: ``False``. |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "logcumsumexp", |
| r""" |
| logcumsumexp(dim) -> Tensor |
| |
| See :func:`torch.logcumsumexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cummax", |
| r""" |
| cummax(dim) -> (Tensor, Tensor) |
| |
| See :func:`torch.cummax` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cummin", |
| r""" |
| cummin(dim) -> (Tensor, Tensor) |
| |
| See :func:`torch.cummin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cumprod", |
| r""" |
| cumprod(dim, dtype=None) -> Tensor |
| |
| See :func:`torch.cumprod` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cumprod_", |
| r""" |
| cumprod_(dim, dtype=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.cumprod` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cumsum", |
| r""" |
| cumsum(dim, dtype=None) -> Tensor |
| |
| See :func:`torch.cumsum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "cumsum_", |
| r""" |
| cumsum_(dim, dtype=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.cumsum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "data_ptr", |
| r""" |
| data_ptr() -> int |
| |
| Returns the address of the first element of :attr:`self` tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "dequantize", |
| r""" |
| dequantize() -> Tensor |
| |
| Given a quantized Tensor, dequantize it and return the dequantized float Tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "dense_dim", |
| r""" |
| dense_dim() -> int |
| |
| Return the number of dense dimensions in a :ref:`sparse tensor <sparse-docs>` :attr:`self`. |
| |
| .. note:: |
| Returns ``len(self.shape)`` if :attr:`self` is not a sparse tensor. |
| |
| See also :meth:`Tensor.sparse_dim` and :ref:`hybrid tensors <sparse-hybrid-coo-docs>`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "diag", |
| r""" |
| diag(diagonal=0) -> Tensor |
| |
| See :func:`torch.diag` |
| """, |
| ) |
| |
| add_docstr_all( |
| "diag_embed", |
| r""" |
| diag_embed(offset=0, dim1=-2, dim2=-1) -> Tensor |
| |
| See :func:`torch.diag_embed` |
| """, |
| ) |
| |
| add_docstr_all( |
| "diagflat", |
| r""" |
| diagflat(offset=0) -> Tensor |
| |
| See :func:`torch.diagflat` |
| """, |
| ) |
| |
| add_docstr_all( |
| "diagonal", |
| r""" |
| diagonal(offset=0, dim1=0, dim2=1) -> Tensor |
| |
| See :func:`torch.diagonal` |
| """, |
| ) |
| |
| add_docstr_all( |
| "diagonal_scatter", |
| r""" |
| diagonal_scatter(src, offset=0, dim1=0, dim2=1) -> Tensor |
| |
| See :func:`torch.diagonal_scatter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "as_strided_scatter", |
| r""" |
| as_strided_scatter(src, size, stride, storage_offset=None) -> Tensor |
| |
| See :func:`torch.as_strided_scatter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fill_diagonal_", |
| r""" |
| fill_diagonal_(fill_value, wrap=False) -> Tensor |
| |
| Fill the main diagonal of a tensor that has at least 2-dimensions. |
| When dims>2, all dimensions of input must be of equal length. |
| This function modifies the input tensor in-place, and returns the input tensor. |
| |
| Arguments: |
| fill_value (Scalar): the fill value |
| wrap (bool): the diagonal 'wrapped' after N columns for tall matrices. |
| |
| Example:: |
| |
| >>> a = torch.zeros(3, 3) |
| >>> a.fill_diagonal_(5) |
| tensor([[5., 0., 0.], |
| [0., 5., 0.], |
| [0., 0., 5.]]) |
| >>> b = torch.zeros(7, 3) |
| >>> b.fill_diagonal_(5) |
| tensor([[5., 0., 0.], |
| [0., 5., 0.], |
| [0., 0., 5.], |
| [0., 0., 0.], |
| [0., 0., 0.], |
| [0., 0., 0.], |
| [0., 0., 0.]]) |
| >>> c = torch.zeros(7, 3) |
| >>> c.fill_diagonal_(5, wrap=True) |
| tensor([[5., 0., 0.], |
| [0., 5., 0.], |
| [0., 0., 5.], |
| [0., 0., 0.], |
| [5., 0., 0.], |
| [0., 5., 0.], |
| [0., 0., 5.]]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "floor_divide", |
| r""" |
| floor_divide(value) -> Tensor |
| |
| See :func:`torch.floor_divide` |
| """, |
| ) |
| |
| add_docstr_all( |
| "floor_divide_", |
| r""" |
| floor_divide_(value) -> Tensor |
| |
| In-place version of :meth:`~Tensor.floor_divide` |
| """, |
| ) |
| |
| add_docstr_all( |
| "diff", |
| r""" |
| diff(n=1, dim=-1, prepend=None, append=None) -> Tensor |
| |
| See :func:`torch.diff` |
| """, |
| ) |
| |
| add_docstr_all( |
| "digamma", |
| r""" |
| digamma() -> Tensor |
| |
| See :func:`torch.digamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "digamma_", |
| r""" |
| digamma_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.digamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "dim", |
| r""" |
| dim() -> int |
| |
| Returns the number of dimensions of :attr:`self` tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "dist", |
| r""" |
| dist(other, p=2) -> Tensor |
| |
| See :func:`torch.dist` |
| """, |
| ) |
| |
| add_docstr_all( |
| "div", |
| r""" |
| div(value, *, rounding_mode=None) -> Tensor |
| |
| See :func:`torch.div` |
| """, |
| ) |
| |
| add_docstr_all( |
| "div_", |
| r""" |
| div_(value, *, rounding_mode=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.div` |
| """, |
| ) |
| |
| add_docstr_all( |
| "divide", |
| r""" |
| divide(value, *, rounding_mode=None) -> Tensor |
| |
| See :func:`torch.divide` |
| """, |
| ) |
| |
| add_docstr_all( |
| "divide_", |
| r""" |
| divide_(value, *, rounding_mode=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.divide` |
| """, |
| ) |
| |
| add_docstr_all( |
| "dot", |
| r""" |
| dot(other) -> Tensor |
| |
| See :func:`torch.dot` |
| """, |
| ) |
| |
| add_docstr_all( |
| "element_size", |
| r""" |
| element_size() -> int |
| |
| Returns the size in bytes of an individual element. |
| |
| Example:: |
| |
| >>> torch.tensor([]).element_size() |
| 4 |
| >>> torch.tensor([], dtype=torch.uint8).element_size() |
| 1 |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "eq", |
| r""" |
| eq(other) -> Tensor |
| |
| See :func:`torch.eq` |
| """, |
| ) |
| |
| add_docstr_all( |
| "eq_", |
| r""" |
| eq_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.eq` |
| """, |
| ) |
| |
| add_docstr_all( |
| "equal", |
| r""" |
| equal(other) -> bool |
| |
| See :func:`torch.equal` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erf", |
| r""" |
| erf() -> Tensor |
| |
| See :func:`torch.erf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erf_", |
| r""" |
| erf_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.erf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erfc", |
| r""" |
| erfc() -> Tensor |
| |
| See :func:`torch.erfc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erfc_", |
| r""" |
| erfc_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.erfc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erfinv", |
| r""" |
| erfinv() -> Tensor |
| |
| See :func:`torch.erfinv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "erfinv_", |
| r""" |
| erfinv_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.erfinv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "exp", |
| r""" |
| exp() -> Tensor |
| |
| See :func:`torch.exp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "exp_", |
| r""" |
| exp_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.exp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "exp2", |
| r""" |
| exp2() -> Tensor |
| |
| See :func:`torch.exp2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "exp2_", |
| r""" |
| exp2_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.exp2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "expm1", |
| r""" |
| expm1() -> Tensor |
| |
| See :func:`torch.expm1` |
| """, |
| ) |
| |
| add_docstr_all( |
| "expm1_", |
| r""" |
| expm1_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.expm1` |
| """, |
| ) |
| |
| add_docstr_all( |
| "exponential_", |
| r""" |
| exponential_(lambd=1, *, generator=None) -> Tensor |
| |
| Fills :attr:`self` tensor with elements drawn from the PDF (probability density function): |
| |
| .. math:: |
| |
| f(x) = \lambda e^{-\lambda x}, x > 0 |
| |
| .. note:: |
| In probability theory, exponential distribution is supported on interval [0, :math:`\inf`) (i.e., :math:`x >= 0`) |
| implying that zero can be sampled from the exponential distribution. |
| However, :func:`torch.Tensor.exponential_` does not sample zero, |
| which means that its actual support is the interval (0, :math:`\inf`). |
| |
| Note that :func:`torch.distributions.exponential.Exponential` is supported on the interval [0, :math:`\inf`) and can sample zero. |
| """, |
| ) |
| |
| add_docstr_all( |
| "fill_", |
| r""" |
| fill_(value) -> Tensor |
| |
| Fills :attr:`self` tensor with the specified value. |
| """, |
| ) |
| |
| add_docstr_all( |
| "floor", |
| r""" |
| floor() -> Tensor |
| |
| See :func:`torch.floor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "flip", |
| r""" |
| flip(dims) -> Tensor |
| |
| See :func:`torch.flip` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fliplr", |
| r""" |
| fliplr() -> Tensor |
| |
| See :func:`torch.fliplr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "flipud", |
| r""" |
| flipud() -> Tensor |
| |
| See :func:`torch.flipud` |
| """, |
| ) |
| |
| add_docstr_all( |
| "roll", |
| r""" |
| roll(shifts, dims) -> Tensor |
| |
| See :func:`torch.roll` |
| """, |
| ) |
| |
| add_docstr_all( |
| "floor_", |
| r""" |
| floor_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.floor` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fmod", |
| r""" |
| fmod(divisor) -> Tensor |
| |
| See :func:`torch.fmod` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fmod_", |
| r""" |
| fmod_(divisor) -> Tensor |
| |
| In-place version of :meth:`~Tensor.fmod` |
| """, |
| ) |
| |
| add_docstr_all( |
| "frac", |
| r""" |
| frac() -> Tensor |
| |
| See :func:`torch.frac` |
| """, |
| ) |
| |
| add_docstr_all( |
| "frac_", |
| r""" |
| frac_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.frac` |
| """, |
| ) |
| |
| add_docstr_all( |
| "frexp", |
| r""" |
| frexp(input) -> (Tensor mantissa, Tensor exponent) |
| |
| See :func:`torch.frexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "flatten", |
| r""" |
| flatten(start_dim=0, end_dim=-1) -> Tensor |
| |
| See :func:`torch.flatten` |
| """, |
| ) |
| |
| add_docstr_all( |
| "gather", |
| r""" |
| gather(dim, index) -> Tensor |
| |
| See :func:`torch.gather` |
| """, |
| ) |
| |
| add_docstr_all( |
| "gcd", |
| r""" |
| gcd(other) -> Tensor |
| |
| See :func:`torch.gcd` |
| """, |
| ) |
| |
| add_docstr_all( |
| "gcd_", |
| r""" |
| gcd_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.gcd` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ge", |
| r""" |
| ge(other) -> Tensor |
| |
| See :func:`torch.ge`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ge_", |
| r""" |
| ge_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.ge`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "greater_equal", |
| r""" |
| greater_equal(other) -> Tensor |
| |
| See :func:`torch.greater_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "greater_equal_", |
| r""" |
| greater_equal_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.greater_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "geometric_", |
| r""" |
| geometric_(p, *, generator=None) -> Tensor |
| |
| Fills :attr:`self` tensor with elements drawn from the geometric distribution: |
| |
| .. math:: |
| |
| P(X=k) = (1 - p)^{k - 1} p, k = 1, 2, ... |
| |
| .. note:: |
| :func:`torch.Tensor.geometric_` `k`-th trial is the first success hence draws samples in :math:`\{1, 2, \ldots\}`, whereas |
| :func:`torch.distributions.geometric.Geometric` :math:`(k+1)`-th trial is the first success |
| hence draws samples in :math:`\{0, 1, \ldots\}`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "geqrf", |
| r""" |
| geqrf() -> (Tensor, Tensor) |
| |
| See :func:`torch.geqrf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ger", |
| r""" |
| ger(vec2) -> Tensor |
| |
| See :func:`torch.ger` |
| """, |
| ) |
| |
| add_docstr_all( |
| "inner", |
| r""" |
| inner(other) -> Tensor |
| |
| See :func:`torch.inner`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "outer", |
| r""" |
| outer(vec2) -> Tensor |
| |
| See :func:`torch.outer`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "hypot", |
| r""" |
| hypot(other) -> Tensor |
| |
| See :func:`torch.hypot` |
| """, |
| ) |
| |
| add_docstr_all( |
| "hypot_", |
| r""" |
| hypot_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.hypot` |
| """, |
| ) |
| |
| add_docstr_all( |
| "i0", |
| r""" |
| i0() -> Tensor |
| |
| See :func:`torch.i0` |
| """, |
| ) |
| |
| add_docstr_all( |
| "i0_", |
| r""" |
| i0_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.i0` |
| """, |
| ) |
| |
| add_docstr_all( |
| "igamma", |
| r""" |
| igamma(other) -> Tensor |
| |
| See :func:`torch.igamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "igamma_", |
| r""" |
| igamma_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.igamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "igammac", |
| r""" |
| igammac(other) -> Tensor |
| See :func:`torch.igammac` |
| """, |
| ) |
| |
| add_docstr_all( |
| "igammac_", |
| r""" |
| igammac_(other) -> Tensor |
| In-place version of :meth:`~Tensor.igammac` |
| """, |
| ) |
| |
| add_docstr_all( |
| "indices", |
| r""" |
| indices() -> Tensor |
| |
| Return the indices tensor of a :ref:`sparse COO tensor <sparse-coo-docs>`. |
| |
| .. warning:: |
| Throws an error if :attr:`self` is not a sparse COO tensor. |
| |
| See also :meth:`Tensor.values`. |
| |
| .. note:: |
| This method can only be called on a coalesced sparse tensor. See |
| :meth:`Tensor.coalesce` for details. |
| """, |
| ) |
| |
| add_docstr_all( |
| "get_device", |
| r""" |
| get_device() -> Device ordinal (Integer) |
| |
| For CUDA tensors, this function returns the device ordinal of the GPU on which the tensor resides. |
| For CPU tensors, this function returns `-1`. |
| |
| Example:: |
| |
| >>> x = torch.randn(3, 4, 5, device='cuda:0') |
| >>> x.get_device() |
| 0 |
| >>> x.cpu().get_device() |
| -1 |
| """, |
| ) |
| |
| add_docstr_all( |
| "values", |
| r""" |
| values() -> Tensor |
| |
| Return the values tensor of a :ref:`sparse COO tensor <sparse-coo-docs>`. |
| |
| .. warning:: |
| Throws an error if :attr:`self` is not a sparse COO tensor. |
| |
| See also :meth:`Tensor.indices`. |
| |
| .. note:: |
| This method can only be called on a coalesced sparse tensor. See |
| :meth:`Tensor.coalesce` for details. |
| """, |
| ) |
| |
| add_docstr_all( |
| "gt", |
| r""" |
| gt(other) -> Tensor |
| |
| See :func:`torch.gt`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "gt_", |
| r""" |
| gt_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.gt`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "greater", |
| r""" |
| greater(other) -> Tensor |
| |
| See :func:`torch.greater`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "greater_", |
| r""" |
| greater_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.greater`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "has_names", |
| r""" |
| Is ``True`` if any of this tensor's dimensions are named. Otherwise, is ``False``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "hardshrink", |
| r""" |
| hardshrink(lambd=0.5) -> Tensor |
| |
| See :func:`torch.nn.functional.hardshrink` |
| """, |
| ) |
| |
| add_docstr_all( |
| "heaviside", |
| r""" |
| heaviside(values) -> Tensor |
| |
| See :func:`torch.heaviside` |
| """, |
| ) |
| |
| add_docstr_all( |
| "heaviside_", |
| r""" |
| heaviside_(values) -> Tensor |
| |
| In-place version of :meth:`~Tensor.heaviside` |
| """, |
| ) |
| |
| add_docstr_all( |
| "histc", |
| r""" |
| histc(bins=100, min=0, max=0) -> Tensor |
| |
| See :func:`torch.histc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "histogram", |
| r""" |
| histogram(input, bins, *, range=None, weight=None, density=False) -> (Tensor, Tensor) |
| |
| See :func:`torch.histogram` |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_add_", |
| r""" |
| index_add_(dim, index, source, *, alpha=1) -> Tensor |
| |
| Accumulate the elements of :attr:`alpha` times ``source`` into the :attr:`self` |
| tensor by adding to the indices in the order given in :attr:`index`. For example, |
| if ``dim == 0``, ``index[i] == j``, and ``alpha=-1``, then the ``i``\ th row of |
| ``source`` is subtracted from the ``j``\ th row of :attr:`self`. |
| |
| The :attr:`dim`\ th dimension of ``source`` must have the same size as the |
| length of :attr:`index` (which must be a vector), and all other dimensions must |
| match :attr:`self`, or an error will be raised. |
| |
| For a 3-D tensor the output is given as:: |
| |
| self[index[i], :, :] += alpha * src[i, :, :] # if dim == 0 |
| self[:, index[i], :] += alpha * src[:, i, :] # if dim == 1 |
| self[:, :, index[i]] += alpha * src[:, :, i] # if dim == 2 |
| |
| Note: |
| {forward_reproducibility_note} |
| |
| Args: |
| dim (int): dimension along which to index |
| index (Tensor): indices of ``source`` to select from, |
| should have dtype either `torch.int64` or `torch.int32` |
| source (Tensor): the tensor containing values to add |
| |
| Keyword args: |
| alpha (Number): the scalar multiplier for ``source`` |
| |
| Example:: |
| |
| >>> x = torch.ones(5, 3) |
| >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float) |
| >>> index = torch.tensor([0, 4, 2]) |
| >>> x.index_add_(0, index, t) |
| tensor([[ 2., 3., 4.], |
| [ 1., 1., 1.], |
| [ 8., 9., 10.], |
| [ 1., 1., 1.], |
| [ 5., 6., 7.]]) |
| >>> x.index_add_(0, index, t, alpha=-1) |
| tensor([[ 1., 1., 1.], |
| [ 1., 1., 1.], |
| [ 1., 1., 1.], |
| [ 1., 1., 1.], |
| [ 1., 1., 1.]]) |
| """.format(**reproducibility_notes), |
| ) |
| |
| add_docstr_all( |
| "index_copy_", |
| r""" |
| index_copy_(dim, index, tensor) -> Tensor |
| |
| Copies the elements of :attr:`tensor` into the :attr:`self` tensor by selecting |
| the indices in the order given in :attr:`index`. For example, if ``dim == 0`` |
| and ``index[i] == j``, then the ``i``\ th row of :attr:`tensor` is copied to the |
| ``j``\ th row of :attr:`self`. |
| |
| The :attr:`dim`\ th dimension of :attr:`tensor` must have the same size as the |
| length of :attr:`index` (which must be a vector), and all other dimensions must |
| match :attr:`self`, or an error will be raised. |
| |
| .. note:: |
| If :attr:`index` contains duplicate entries, multiple elements from |
| :attr:`tensor` will be copied to the same index of :attr:`self`. The result |
| is nondeterministic since it depends on which copy occurs last. |
| |
| Args: |
| dim (int): dimension along which to index |
| index (LongTensor): indices of :attr:`tensor` to select from |
| tensor (Tensor): the tensor containing values to copy |
| |
| Example:: |
| |
| >>> x = torch.zeros(5, 3) |
| >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float) |
| >>> index = torch.tensor([0, 4, 2]) |
| >>> x.index_copy_(0, index, t) |
| tensor([[ 1., 2., 3.], |
| [ 0., 0., 0.], |
| [ 7., 8., 9.], |
| [ 0., 0., 0.], |
| [ 4., 5., 6.]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_fill_", |
| r""" |
| index_fill_(dim, index, value) -> Tensor |
| |
| Fills the elements of the :attr:`self` tensor with value :attr:`value` by |
| selecting the indices in the order given in :attr:`index`. |
| |
| Args: |
| dim (int): dimension along which to index |
| index (LongTensor): indices of :attr:`self` tensor to fill in |
| value (float): the value to fill with |
| |
| Example:: |
| >>> x = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float) |
| >>> index = torch.tensor([0, 2]) |
| >>> x.index_fill_(1, index, -1) |
| tensor([[-1., 2., -1.], |
| [-1., 5., -1.], |
| [-1., 8., -1.]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_put_", |
| r""" |
| index_put_(indices, values, accumulate=False) -> Tensor |
| |
| Puts values from the tensor :attr:`values` into the tensor :attr:`self` using |
| the indices specified in :attr:`indices` (which is a tuple of Tensors). The |
| expression ``tensor.index_put_(indices, values)`` is equivalent to |
| ``tensor[indices] = values``. Returns :attr:`self`. |
| |
| If :attr:`accumulate` is ``True``, the elements in :attr:`values` are added to |
| :attr:`self`. If accumulate is ``False``, the behavior is undefined if indices |
| contain duplicate elements. |
| |
| Args: |
| indices (tuple of LongTensor): tensors used to index into `self`. |
| values (Tensor): tensor of same dtype as `self`. |
| accumulate (bool): whether to accumulate into self |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_put", |
| r""" |
| index_put(indices, values, accumulate=False) -> Tensor |
| |
| Out-place version of :meth:`~Tensor.index_put_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_reduce_", |
| r""" |
| index_reduce_(dim, index, source, reduce, *, include_self=True) -> Tensor |
| |
| Accumulate the elements of ``source`` into the :attr:`self` |
| tensor by accumulating to the indices in the order given in :attr:`index` |
| using the reduction given by the ``reduce`` argument. For example, if ``dim == 0``, |
| ``index[i] == j``, ``reduce == prod`` and ``include_self == True`` then the ``i``\ th |
| row of ``source`` is multiplied by the ``j``\ th row of :attr:`self`. If |
| :obj:`include_self="True"`, the values in the :attr:`self` tensor are included |
| in the reduction, otherwise, rows in the :attr:`self` tensor that are accumulated |
| to are treated as if they were filled with the reduction identites. |
| |
| The :attr:`dim`\ th dimension of ``source`` must have the same size as the |
| length of :attr:`index` (which must be a vector), and all other dimensions must |
| match :attr:`self`, or an error will be raised. |
| |
| For a 3-D tensor with :obj:`reduce="prod"` and :obj:`include_self=True` the |
| output is given as:: |
| |
| self[index[i], :, :] *= src[i, :, :] # if dim == 0 |
| self[:, index[i], :] *= src[:, i, :] # if dim == 1 |
| self[:, :, index[i]] *= src[:, :, i] # if dim == 2 |
| |
| Note: |
| {forward_reproducibility_note} |
| |
| .. note:: |
| |
| This function only supports floating point tensors. |
| |
| .. warning:: |
| |
| This function is in beta and may change in the near future. |
| |
| Args: |
| dim (int): dimension along which to index |
| index (Tensor): indices of ``source`` to select from, |
| should have dtype either `torch.int64` or `torch.int32` |
| source (FloatTensor): the tensor containing values to accumulate |
| reduce (str): the reduction operation to apply |
| (:obj:`"prod"`, :obj:`"mean"`, :obj:`"amax"`, :obj:`"amin"`) |
| |
| Keyword args: |
| include_self (bool): whether the elements from the ``self`` tensor are |
| included in the reduction |
| |
| Example:: |
| |
| >>> x = torch.empty(5, 3).fill_(2) |
| >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]], dtype=torch.float) |
| >>> index = torch.tensor([0, 4, 2, 0]) |
| >>> x.index_reduce_(0, index, t, 'prod') |
| tensor([[20., 44., 72.], |
| [ 2., 2., 2.], |
| [14., 16., 18.], |
| [ 2., 2., 2.], |
| [ 8., 10., 12.]]) |
| >>> x = torch.empty(5, 3).fill_(2) |
| >>> x.index_reduce_(0, index, t, 'prod', include_self=False) |
| tensor([[10., 22., 36.], |
| [ 2., 2., 2.], |
| [ 7., 8., 9.], |
| [ 2., 2., 2.], |
| [ 4., 5., 6.]]) |
| """.format(**reproducibility_notes), |
| ) |
| |
| add_docstr_all( |
| "index_select", |
| r""" |
| index_select(dim, index) -> Tensor |
| |
| See :func:`torch.index_select` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sparse_mask", |
| r""" |
| sparse_mask(mask) -> Tensor |
| |
| Returns a new :ref:`sparse tensor <sparse-docs>` with values from a |
| strided tensor :attr:`self` filtered by the indices of the sparse |
| tensor :attr:`mask`. The values of :attr:`mask` sparse tensor are |
| ignored. :attr:`self` and :attr:`mask` tensors must have the same |
| shape. |
| |
| .. note:: |
| |
| The returned sparse tensor might contain duplicate values if :attr:`mask` |
| is not coalesced. It is therefore advisable to pass ``mask.coalesce()`` |
| if such behavior is not desired. |
| |
| .. note:: |
| |
| The returned sparse tensor has the same indices as the sparse tensor |
| :attr:`mask`, even when the corresponding values in :attr:`self` are |
| zeros. |
| |
| Args: |
| mask (Tensor): a sparse tensor whose indices are used as a filter |
| |
| Example:: |
| |
| >>> nse = 5 |
| >>> dims = (5, 5, 2, 2) |
| >>> I = torch.cat([torch.randint(0, dims[0], size=(nse,)), |
| ... torch.randint(0, dims[1], size=(nse,))], 0).reshape(2, nse) |
| >>> V = torch.randn(nse, dims[2], dims[3]) |
| >>> S = torch.sparse_coo_tensor(I, V, dims).coalesce() |
| >>> D = torch.randn(dims) |
| >>> D.sparse_mask(S) |
| tensor(indices=tensor([[0, 0, 0, 2], |
| [0, 1, 4, 3]]), |
| values=tensor([[[ 1.6550, 0.2397], |
| [-0.1611, -0.0779]], |
| |
| [[ 0.2326, -1.0558], |
| [ 1.4711, 1.9678]], |
| |
| [[-0.5138, -0.0411], |
| [ 1.9417, 0.5158]], |
| |
| [[ 0.0793, 0.0036], |
| [-0.2569, -0.1055]]]), |
| size=(5, 5, 2, 2), nnz=4, layout=torch.sparse_coo) |
| """, |
| ) |
| |
| add_docstr_all( |
| "inverse", |
| r""" |
| inverse() -> Tensor |
| |
| See :func:`torch.inverse` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isnan", |
| r""" |
| isnan() -> Tensor |
| |
| See :func:`torch.isnan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isinf", |
| r""" |
| isinf() -> Tensor |
| |
| See :func:`torch.isinf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isposinf", |
| r""" |
| isposinf() -> Tensor |
| |
| See :func:`torch.isposinf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isneginf", |
| r""" |
| isneginf() -> Tensor |
| |
| See :func:`torch.isneginf` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isfinite", |
| r""" |
| isfinite() -> Tensor |
| |
| See :func:`torch.isfinite` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isclose", |
| r""" |
| isclose(other, rtol=1e-05, atol=1e-08, equal_nan=False) -> Tensor |
| |
| See :func:`torch.isclose` |
| """, |
| ) |
| |
| add_docstr_all( |
| "isreal", |
| r""" |
| isreal() -> Tensor |
| |
| See :func:`torch.isreal` |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_coalesced", |
| r""" |
| is_coalesced() -> bool |
| |
| Returns ``True`` if :attr:`self` is a :ref:`sparse COO tensor |
| <sparse-coo-docs>` that is coalesced, ``False`` otherwise. |
| |
| .. warning:: |
| Throws an error if :attr:`self` is not a sparse COO tensor. |
| |
| See :meth:`coalesce` and :ref:`uncoalesced tensors <sparse-uncoalesced-coo-docs>`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_contiguous", |
| r""" |
| is_contiguous(memory_format=torch.contiguous_format) -> bool |
| |
| Returns True if :attr:`self` tensor is contiguous in memory in the order specified |
| by memory format. |
| |
| Args: |
| memory_format (:class:`torch.memory_format`, optional): Specifies memory allocation |
| order. Default: ``torch.contiguous_format``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_pinned", |
| r""" |
| Returns true if this tensor resides in pinned memory. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_floating_point", |
| r""" |
| is_floating_point() -> bool |
| |
| Returns True if the data type of :attr:`self` is a floating point data type. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_complex", |
| r""" |
| is_complex() -> bool |
| |
| Returns True if the data type of :attr:`self` is a complex data type. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_inference", |
| r""" |
| is_inference() -> bool |
| |
| See :func:`torch.is_inference` |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_conj", |
| r""" |
| is_conj() -> bool |
| |
| Returns True if the conjugate bit of :attr:`self` is set to true. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_neg", |
| r""" |
| is_neg() -> bool |
| |
| Returns True if the negative bit of :attr:`self` is set to true. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_signed", |
| r""" |
| is_signed() -> bool |
| |
| Returns True if the data type of :attr:`self` is a signed data type. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_set_to", |
| r""" |
| is_set_to(tensor) -> bool |
| |
| Returns True if both tensors are pointing to the exact same memory (same |
| storage, offset, size and stride). |
| """, |
| ) |
| |
| add_docstr_all( |
| "item", |
| r""" |
| item() -> number |
| |
| Returns the value of this tensor as a standard Python number. This only works |
| for tensors with one element. For other cases, see :meth:`~Tensor.tolist`. |
| |
| This operation is not differentiable. |
| |
| Example:: |
| |
| >>> x = torch.tensor([1.0]) |
| >>> x.item() |
| 1.0 |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "kron", |
| r""" |
| kron(other) -> Tensor |
| |
| See :func:`torch.kron` |
| """, |
| ) |
| |
| add_docstr_all( |
| "kthvalue", |
| r""" |
| kthvalue(k, dim=None, keepdim=False) -> (Tensor, LongTensor) |
| |
| See :func:`torch.kthvalue` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ldexp", |
| r""" |
| ldexp(other) -> Tensor |
| |
| See :func:`torch.ldexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ldexp_", |
| r""" |
| ldexp_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.ldexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lcm", |
| r""" |
| lcm(other) -> Tensor |
| |
| See :func:`torch.lcm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lcm_", |
| r""" |
| lcm_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.lcm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "le", |
| r""" |
| le(other) -> Tensor |
| |
| See :func:`torch.le`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "le_", |
| r""" |
| le_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.le`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "less_equal", |
| r""" |
| less_equal(other) -> Tensor |
| |
| See :func:`torch.less_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "less_equal_", |
| r""" |
| less_equal_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.less_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "lerp", |
| r""" |
| lerp(end, weight) -> Tensor |
| |
| See :func:`torch.lerp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lerp_", |
| r""" |
| lerp_(end, weight) -> Tensor |
| |
| In-place version of :meth:`~Tensor.lerp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lgamma", |
| r""" |
| lgamma() -> Tensor |
| |
| See :func:`torch.lgamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lgamma_", |
| r""" |
| lgamma_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.lgamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log", |
| r""" |
| log() -> Tensor |
| |
| See :func:`torch.log` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log_", |
| r""" |
| log_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.log` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log10", |
| r""" |
| log10() -> Tensor |
| |
| See :func:`torch.log10` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log10_", |
| r""" |
| log10_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.log10` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log1p", |
| r""" |
| log1p() -> Tensor |
| |
| See :func:`torch.log1p` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log1p_", |
| r""" |
| log1p_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.log1p` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log2", |
| r""" |
| log2() -> Tensor |
| |
| See :func:`torch.log2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log2_", |
| r""" |
| log2_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.log2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logaddexp", |
| r""" |
| logaddexp(other) -> Tensor |
| |
| See :func:`torch.logaddexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logaddexp2", |
| r""" |
| logaddexp2(other) -> Tensor |
| |
| See :func:`torch.logaddexp2` |
| """, |
| ) |
| |
| add_docstr_all( |
| "log_normal_", |
| r""" |
| log_normal_(mean=1, std=2, *, generator=None) |
| |
| Fills :attr:`self` tensor with numbers samples from the log-normal distribution |
| parameterized by the given mean :math:`\mu` and standard deviation |
| :math:`\sigma`. Note that :attr:`mean` and :attr:`std` are the mean and |
| standard deviation of the underlying normal distribution, and not of the |
| returned distribution: |
| |
| .. math:: |
| |
| f(x) = \dfrac{1}{x \sigma \sqrt{2\pi}}\ e^{-\frac{(\ln x - \mu)^2}{2\sigma^2}} |
| """, |
| ) |
| |
| add_docstr_all( |
| "logsumexp", |
| r""" |
| logsumexp(dim, keepdim=False) -> Tensor |
| |
| See :func:`torch.logsumexp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "lt", |
| r""" |
| lt(other) -> Tensor |
| |
| See :func:`torch.lt`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "lt_", |
| r""" |
| lt_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.lt`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "less", |
| r""" |
| lt(other) -> Tensor |
| |
| See :func:`torch.less`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "less_", |
| r""" |
| less_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.less`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "lu_solve", |
| r""" |
| lu_solve(LU_data, LU_pivots) -> Tensor |
| |
| See :func:`torch.lu_solve` |
| """, |
| ) |
| |
| add_docstr_all( |
| "map_", |
| r""" |
| map_(tensor, callable) |
| |
| Applies :attr:`callable` for each element in :attr:`self` tensor and the given |
| :attr:`tensor` and stores the results in :attr:`self` tensor. :attr:`self` tensor and |
| the given :attr:`tensor` must be :ref:`broadcastable <broadcasting-semantics>`. |
| |
| The :attr:`callable` should have the signature:: |
| |
| def callable(a, b) -> number |
| """, |
| ) |
| |
| add_docstr_all( |
| "masked_scatter_", |
| r""" |
| masked_scatter_(mask, source) |
| |
| Copies elements from :attr:`source` into :attr:`self` tensor at positions where |
| the :attr:`mask` is True. Elements from :attr:`source` are copied into :attr:`self` |
| starting at position 0 of :attr:`source` and continuing in order one-by-one for each |
| occurrence of :attr:`mask` being True. |
| The shape of :attr:`mask` must be :ref:`broadcastable <broadcasting-semantics>` |
| with the shape of the underlying tensor. The :attr:`source` should have at least |
| as many elements as the number of ones in :attr:`mask`. |
| |
| Args: |
| mask (BoolTensor): the boolean mask |
| source (Tensor): the tensor to copy from |
| |
| .. note:: |
| |
| The :attr:`mask` operates on the :attr:`self` tensor, not on the given |
| :attr:`source` tensor. |
| |
| Example: |
| |
| >>> self = torch.tensor([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]) |
| >>> mask = torch.tensor([[0, 0, 0, 1, 1], [1, 1, 0, 1, 1]], dtype=torch.bool) |
| >>> source = torch.tensor([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) |
| >>> self.masked_scatter_(mask, source) |
| tensor([[0, 0, 0, 0, 1], |
| [2, 3, 0, 4, 5]]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "masked_fill_", |
| r""" |
| masked_fill_(mask, value) |
| |
| Fills elements of :attr:`self` tensor with :attr:`value` where :attr:`mask` is |
| True. The shape of :attr:`mask` must be |
| :ref:`broadcastable <broadcasting-semantics>` with the shape of the underlying |
| tensor. |
| |
| Args: |
| mask (BoolTensor): the boolean mask |
| value (float): the value to fill in with |
| """, |
| ) |
| |
| add_docstr_all( |
| "masked_select", |
| r""" |
| masked_select(mask) -> Tensor |
| |
| See :func:`torch.masked_select` |
| """, |
| ) |
| |
| add_docstr_all( |
| "matrix_power", |
| r""" |
| matrix_power(n) -> Tensor |
| |
| .. note:: :meth:`~Tensor.matrix_power` is deprecated, use :func:`torch.linalg.matrix_power` instead. |
| |
| Alias for :func:`torch.linalg.matrix_power` |
| """, |
| ) |
| |
| add_docstr_all( |
| "matrix_exp", |
| r""" |
| matrix_exp() -> Tensor |
| |
| See :func:`torch.matrix_exp` |
| """, |
| ) |
| |
| add_docstr_all( |
| "max", |
| r""" |
| max(dim=None, keepdim=False) -> Tensor or (Tensor, Tensor) |
| |
| See :func:`torch.max` |
| """, |
| ) |
| |
| add_docstr_all( |
| "amax", |
| r""" |
| amax(dim=None, keepdim=False) -> Tensor |
| |
| See :func:`torch.amax` |
| """, |
| ) |
| |
| add_docstr_all( |
| "maximum", |
| r""" |
| maximum(other) -> Tensor |
| |
| See :func:`torch.maximum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fmax", |
| r""" |
| fmax(other) -> Tensor |
| |
| See :func:`torch.fmax` |
| """, |
| ) |
| |
| add_docstr_all( |
| "argmax", |
| r""" |
| argmax(dim=None, keepdim=False) -> LongTensor |
| |
| See :func:`torch.argmax` |
| """, |
| ) |
| |
| add_docstr_all( |
| "argwhere", |
| r""" |
| argwhere() -> Tensor |
| |
| See :func:`torch.argwhere` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mean", |
| r""" |
| mean(dim=None, keepdim=False, *, dtype=None) -> Tensor |
| |
| See :func:`torch.mean` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nanmean", |
| r""" |
| nanmean(dim=None, keepdim=False, *, dtype=None) -> Tensor |
| |
| See :func:`torch.nanmean` |
| """, |
| ) |
| |
| add_docstr_all( |
| "median", |
| r""" |
| median(dim=None, keepdim=False) -> (Tensor, LongTensor) |
| |
| See :func:`torch.median` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nanmedian", |
| r""" |
| nanmedian(dim=None, keepdim=False) -> (Tensor, LongTensor) |
| |
| See :func:`torch.nanmedian` |
| """, |
| ) |
| |
| add_docstr_all( |
| "min", |
| r""" |
| min(dim=None, keepdim=False) -> Tensor or (Tensor, Tensor) |
| |
| See :func:`torch.min` |
| """, |
| ) |
| |
| add_docstr_all( |
| "amin", |
| r""" |
| amin(dim=None, keepdim=False) -> Tensor |
| |
| See :func:`torch.amin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "minimum", |
| r""" |
| minimum(other) -> Tensor |
| |
| See :func:`torch.minimum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "aminmax", |
| r""" |
| aminmax(*, dim=None, keepdim=False) -> (Tensor min, Tensor max) |
| |
| See :func:`torch.aminmax` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fmin", |
| r""" |
| fmin(other) -> Tensor |
| |
| See :func:`torch.fmin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "argmin", |
| r""" |
| argmin(dim=None, keepdim=False) -> LongTensor |
| |
| See :func:`torch.argmin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mm", |
| r""" |
| mm(mat2) -> Tensor |
| |
| See :func:`torch.mm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mode", |
| r""" |
| mode(dim=None, keepdim=False) -> (Tensor, LongTensor) |
| |
| See :func:`torch.mode` |
| """, |
| ) |
| |
| add_docstr_all( |
| "movedim", |
| r""" |
| movedim(source, destination) -> Tensor |
| |
| See :func:`torch.movedim` |
| """, |
| ) |
| |
| add_docstr_all( |
| "moveaxis", |
| r""" |
| moveaxis(source, destination) -> Tensor |
| |
| See :func:`torch.moveaxis` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mul", |
| r""" |
| mul(value) -> Tensor |
| |
| See :func:`torch.mul`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "mul_", |
| r""" |
| mul_(value) -> Tensor |
| |
| In-place version of :meth:`~Tensor.mul`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "multiply", |
| r""" |
| multiply(value) -> Tensor |
| |
| See :func:`torch.multiply`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "multiply_", |
| r""" |
| multiply_(value) -> Tensor |
| |
| In-place version of :meth:`~Tensor.multiply`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "multinomial", |
| r""" |
| multinomial(num_samples, replacement=False, *, generator=None) -> Tensor |
| |
| See :func:`torch.multinomial` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mv", |
| r""" |
| mv(vec) -> Tensor |
| |
| See :func:`torch.mv` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mvlgamma", |
| r""" |
| mvlgamma(p) -> Tensor |
| |
| See :func:`torch.mvlgamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "mvlgamma_", |
| r""" |
| mvlgamma_(p) -> Tensor |
| |
| In-place version of :meth:`~Tensor.mvlgamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "narrow", |
| r""" |
| narrow(dimension, start, length) -> Tensor |
| |
| See :func:`torch.narrow`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "narrow_copy", |
| r""" |
| narrow_copy(dimension, start, length) -> Tensor |
| |
| See :func:`torch.narrow_copy`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ndimension", |
| r""" |
| ndimension() -> int |
| |
| Alias for :meth:`~Tensor.dim()` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nan_to_num", |
| r""" |
| nan_to_num(nan=0.0, posinf=None, neginf=None) -> Tensor |
| |
| See :func:`torch.nan_to_num`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "nan_to_num_", |
| r""" |
| nan_to_num_(nan=0.0, posinf=None, neginf=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.nan_to_num`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ne", |
| r""" |
| ne(other) -> Tensor |
| |
| See :func:`torch.ne`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ne_", |
| r""" |
| ne_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.ne`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "not_equal", |
| r""" |
| not_equal(other) -> Tensor |
| |
| See :func:`torch.not_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "not_equal_", |
| r""" |
| not_equal_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.not_equal`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "neg", |
| r""" |
| neg() -> Tensor |
| |
| See :func:`torch.neg` |
| """, |
| ) |
| |
| add_docstr_all( |
| "negative", |
| r""" |
| negative() -> Tensor |
| |
| See :func:`torch.negative` |
| """, |
| ) |
| |
| add_docstr_all( |
| "neg_", |
| r""" |
| neg_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.neg` |
| """, |
| ) |
| |
| add_docstr_all( |
| "negative_", |
| r""" |
| negative_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.negative` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nelement", |
| r""" |
| nelement() -> int |
| |
| Alias for :meth:`~Tensor.numel` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nextafter", |
| r""" |
| nextafter(other) -> Tensor |
| See :func:`torch.nextafter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nextafter_", |
| r""" |
| nextafter_(other) -> Tensor |
| In-place version of :meth:`~Tensor.nextafter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nonzero", |
| r""" |
| nonzero() -> LongTensor |
| |
| See :func:`torch.nonzero` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nonzero_static", |
| r""" |
| nonzero_static(input, *, size, fill_value=-1) -> Tensor |
| |
| Returns a 2-D tensor where each row is the index for a non-zero value. |
| The returned Tensor has the same `torch.dtype` as `torch.nonzero()`. |
| |
| Args: |
| input (Tensor): the input tensor to count non-zero elements. |
| |
| Keyword args: |
| size (int): the size of non-zero elements expected to be included in the out |
| tensor. Pad the out tensor with `fill_value` if the `size` is larger |
| than total number of non-zero elements, truncate out tensor if `size` |
| is smaller. The size must be a non-negative integer. |
| fill_value (int): the value to fill the output tensor with when `size` is larger |
| than the total number of non-zero elements. Default is `-1` to represent |
| invalid index. |
| |
| Example: |
| |
| # Example 1: Padding |
| >>> input_tensor = torch.tensor([[1, 0], [3, 2]]) |
| >>> static_size = 4 |
| >>> t = torch.nonzero_static(input_tensor, size = static_size) |
| tensor([[ 0, 0], |
| [ 1, 0], |
| [ 1, 1], |
| [ -1, -1]], dtype=torch.int64) |
| |
| # Example 2: Truncating |
| >>> input_tensor = torch.tensor([[1, 0], [3, 2]]) |
| >>> static_size = 2 |
| >>> t = torch.nonzero_static(input_tensor, size = static_size) |
| tensor([[ 0, 0], |
| [ 1, 0]], dtype=torch.int64) |
| |
| # Example 3: 0 size |
| >>> input_tensor = torch.tensor([10]) |
| >>> static_size = 0 |
| >>> t = torch.nonzero_static(input_tensor, size = static_size) |
| tensor([], size=(0, 1), dtype=torch.int64) |
| |
| # Example 4: 0 rank input |
| >>> input_tensor = torch.tensor(10) |
| >>> static_size = 2 |
| >>> t = torch.nonzero_static(input_tensor, size = static_size) |
| tensor([], size=(2, 0), dtype=torch.int64) |
| """, |
| ) |
| |
| add_docstr_all( |
| "norm", |
| r""" |
| norm(p=2, dim=None, keepdim=False) -> Tensor |
| |
| See :func:`torch.norm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "normal_", |
| r""" |
| normal_(mean=0, std=1, *, generator=None) -> Tensor |
| |
| Fills :attr:`self` tensor with elements samples from the normal distribution |
| parameterized by :attr:`mean` and :attr:`std`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "numel", |
| r""" |
| numel() -> int |
| |
| See :func:`torch.numel` |
| """, |
| ) |
| |
| add_docstr_all( |
| "numpy", |
| r""" |
| numpy(*, force=False) -> numpy.ndarray |
| |
| Returns the tensor as a NumPy :class:`ndarray`. |
| |
| If :attr:`force` is ``False`` (the default), the conversion |
| is performed only if the tensor is on the CPU, does not require grad, |
| does not have its conjugate bit set, and is a dtype and layout that |
| NumPy supports. The returned ndarray and the tensor will share their |
| storage, so changes to the tensor will be reflected in the ndarray |
| and vice versa. |
| |
| If :attr:`force` is ``True`` this is equivalent to |
| calling ``t.detach().cpu().resolve_conj().resolve_neg().numpy()``. |
| If the tensor isn't on the CPU or the conjugate or negative bit is set, |
| the tensor won't share its storage with the returned ndarray. |
| Setting :attr:`force` to ``True`` can be a useful shorthand. |
| |
| Args: |
| force (bool): if ``True``, the ndarray may be a copy of the tensor |
| instead of always sharing memory, defaults to ``False``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "orgqr", |
| r""" |
| orgqr(input2) -> Tensor |
| |
| See :func:`torch.orgqr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ormqr", |
| r""" |
| ormqr(input2, input3, left=True, transpose=False) -> Tensor |
| |
| See :func:`torch.ormqr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "permute", |
| r""" |
| permute(*dims) -> Tensor |
| |
| See :func:`torch.permute` |
| """, |
| ) |
| |
| add_docstr_all( |
| "polygamma", |
| r""" |
| polygamma(n) -> Tensor |
| |
| See :func:`torch.polygamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "polygamma_", |
| r""" |
| polygamma_(n) -> Tensor |
| |
| In-place version of :meth:`~Tensor.polygamma` |
| """, |
| ) |
| |
| add_docstr_all( |
| "positive", |
| r""" |
| positive() -> Tensor |
| |
| See :func:`torch.positive` |
| """, |
| ) |
| |
| add_docstr_all( |
| "pow", |
| r""" |
| pow(exponent) -> Tensor |
| |
| See :func:`torch.pow` |
| """, |
| ) |
| |
| add_docstr_all( |
| "pow_", |
| r""" |
| pow_(exponent) -> Tensor |
| |
| In-place version of :meth:`~Tensor.pow` |
| """, |
| ) |
| |
| add_docstr_all( |
| "float_power", |
| r""" |
| float_power(exponent) -> Tensor |
| |
| See :func:`torch.float_power` |
| """, |
| ) |
| |
| add_docstr_all( |
| "float_power_", |
| r""" |
| float_power_(exponent) -> Tensor |
| |
| In-place version of :meth:`~Tensor.float_power` |
| """, |
| ) |
| |
| add_docstr_all( |
| "prod", |
| r""" |
| prod(dim=None, keepdim=False, dtype=None) -> Tensor |
| |
| See :func:`torch.prod` |
| """, |
| ) |
| |
| add_docstr_all( |
| "put_", |
| r""" |
| put_(index, source, accumulate=False) -> Tensor |
| |
| Copies the elements from :attr:`source` into the positions specified by |
| :attr:`index`. For the purpose of indexing, the :attr:`self` tensor is treated as if |
| it were a 1-D tensor. |
| |
| :attr:`index` and :attr:`source` need to have the same number of elements, but not necessarily |
| the same shape. |
| |
| If :attr:`accumulate` is ``True``, the elements in :attr:`source` are added to |
| :attr:`self`. If accumulate is ``False``, the behavior is undefined if :attr:`index` |
| contain duplicate elements. |
| |
| Args: |
| index (LongTensor): the indices into self |
| source (Tensor): the tensor containing values to copy from |
| accumulate (bool): whether to accumulate into self |
| |
| Example:: |
| |
| >>> src = torch.tensor([[4, 3, 5], |
| ... [6, 7, 8]]) |
| >>> src.put_(torch.tensor([1, 3]), torch.tensor([9, 10])) |
| tensor([[ 4, 9, 5], |
| [ 10, 7, 8]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "put", |
| r""" |
| put(input, index, source, accumulate=False) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.put_`. |
| `input` corresponds to `self` in :meth:`torch.Tensor.put_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "qr", |
| r""" |
| qr(some=True) -> (Tensor, Tensor) |
| |
| See :func:`torch.qr` |
| """, |
| ) |
| |
| add_docstr_all( |
| "qscheme", |
| r""" |
| qscheme() -> torch.qscheme |
| |
| Returns the quantization scheme of a given QTensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "quantile", |
| r""" |
| quantile(q, dim=None, keepdim=False, *, interpolation='linear') -> Tensor |
| |
| See :func:`torch.quantile` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nanquantile", |
| r""" |
| nanquantile(q, dim=None, keepdim=False, *, interpolation='linear') -> Tensor |
| |
| See :func:`torch.nanquantile` |
| """, |
| ) |
| |
| add_docstr_all( |
| "q_scale", |
| r""" |
| q_scale() -> float |
| |
| Given a Tensor quantized by linear(affine) quantization, |
| returns the scale of the underlying quantizer(). |
| """, |
| ) |
| |
| add_docstr_all( |
| "q_zero_point", |
| r""" |
| q_zero_point() -> int |
| |
| Given a Tensor quantized by linear(affine) quantization, |
| returns the zero_point of the underlying quantizer(). |
| """, |
| ) |
| |
| add_docstr_all( |
| "q_per_channel_scales", |
| r""" |
| q_per_channel_scales() -> Tensor |
| |
| Given a Tensor quantized by linear (affine) per-channel quantization, |
| returns a Tensor of scales of the underlying quantizer. It has the number of |
| elements that matches the corresponding dimensions (from q_per_channel_axis) of |
| the tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "q_per_channel_zero_points", |
| r""" |
| q_per_channel_zero_points() -> Tensor |
| |
| Given a Tensor quantized by linear (affine) per-channel quantization, |
| returns a tensor of zero_points of the underlying quantizer. It has the number of |
| elements that matches the corresponding dimensions (from q_per_channel_axis) of |
| the tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "q_per_channel_axis", |
| r""" |
| q_per_channel_axis() -> int |
| |
| Given a Tensor quantized by linear (affine) per-channel quantization, |
| returns the index of dimension on which per-channel quantization is applied. |
| """, |
| ) |
| |
| add_docstr_all( |
| "random_", |
| r""" |
| random_(from=0, to=None, *, generator=None) -> Tensor |
| |
| Fills :attr:`self` tensor with numbers sampled from the discrete uniform |
| distribution over ``[from, to - 1]``. If not specified, the values are usually |
| only bounded by :attr:`self` tensor's data type. However, for floating point |
| types, if unspecified, range will be ``[0, 2^mantissa]`` to ensure that every |
| value is representable. For example, `torch.tensor(1, dtype=torch.double).random_()` |
| will be uniform in ``[0, 2^53]``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "rad2deg", |
| r""" |
| rad2deg() -> Tensor |
| |
| See :func:`torch.rad2deg` |
| """, |
| ) |
| |
| add_docstr_all( |
| "rad2deg_", |
| r""" |
| rad2deg_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.rad2deg` |
| """, |
| ) |
| |
| add_docstr_all( |
| "deg2rad", |
| r""" |
| deg2rad() -> Tensor |
| |
| See :func:`torch.deg2rad` |
| """, |
| ) |
| |
| add_docstr_all( |
| "deg2rad_", |
| r""" |
| deg2rad_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.deg2rad` |
| """, |
| ) |
| |
| add_docstr_all( |
| "ravel", |
| r""" |
| ravel() -> Tensor |
| |
| see :func:`torch.ravel` |
| """, |
| ) |
| |
| add_docstr_all( |
| "reciprocal", |
| r""" |
| reciprocal() -> Tensor |
| |
| See :func:`torch.reciprocal` |
| """, |
| ) |
| |
| add_docstr_all( |
| "reciprocal_", |
| r""" |
| reciprocal_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.reciprocal` |
| """, |
| ) |
| |
| add_docstr_all( |
| "record_stream", |
| r""" |
| record_stream(stream) |
| |
| Marks the tensor as having been used by this stream. When the tensor |
| is deallocated, ensure the tensor memory is not reused for another tensor |
| until all work queued on :attr:`stream` at the time of deallocation is |
| complete. |
| |
| .. note:: |
| |
| The caching allocator is aware of only the stream where a tensor was |
| allocated. Due to the awareness, it already correctly manages the life |
| cycle of tensors on only one stream. But if a tensor is used on a stream |
| different from the stream of origin, the allocator might reuse the memory |
| unexpectedly. Calling this method lets the allocator know which streams |
| have used the tensor. |
| |
| .. warning:: |
| |
| This method is most suitable for use cases where you are providing a |
| function that created a tensor on a side stream, and want users to be able |
| to make use of the tensor without having to think carefully about stream |
| safety when making use of them. These safety guarantees come at some |
| performance and predictability cost (analogous to the tradeoff between GC |
| and manual memory management), so if you are in a situation where |
| you manage the full lifetime of your tensors, you may consider instead |
| manually managing CUDA events so that calling this method is not necessary. |
| In particular, when you call this method, on later allocations the |
| allocator will poll the recorded stream to see if all operations have |
| completed yet; you can potentially race with side stream computation and |
| non-deterministically reuse or fail to reuse memory for an allocation. |
| |
| You can safely use tensors allocated on side streams without |
| :meth:`~Tensor.record_stream`; you must manually ensure that |
| any non-creation stream uses of a tensor are synced back to the creation |
| stream before you deallocate the tensor. As the CUDA caching allocator |
| guarantees that the memory will only be reused with the same creation stream, |
| this is sufficient to ensure that writes to future reallocations of the |
| memory will be delayed until non-creation stream uses are done. |
| (Counterintuitively, you may observe that on the CPU side we have already |
| reallocated the tensor, even though CUDA kernels on the old tensor are |
| still in progress. This is fine, because CUDA operations on the new |
| tensor will appropriately wait for the old operations to complete, as they |
| are all on the same stream.) |
| |
| Concretely, this looks like this:: |
| |
| with torch.cuda.stream(s0): |
| x = torch.zeros(N) |
| |
| s1.wait_stream(s0) |
| with torch.cuda.stream(s1): |
| y = some_comm_op(x) |
| |
| ... some compute on s0 ... |
| |
| # synchronize creation stream s0 to side stream s1 |
| # before deallocating x |
| s0.wait_stream(s1) |
| del x |
| |
| Note that some discretion is required when deciding when to perform |
| ``s0.wait_stream(s1)``. In particular, if we were to wait immediately |
| after ``some_comm_op``, there wouldn't be any point in having the side |
| stream; it would be equivalent to have run ``some_comm_op`` on ``s0``. |
| Instead, the synchronization must be placed at some appropriate, later |
| point in time where you expect the side stream ``s1`` to have finished |
| work. This location is typically identified via profiling, e.g., using |
| Chrome traces produced |
| :meth:`torch.autograd.profiler.profile.export_chrome_trace`. If you |
| place the wait too early, work on s0 will block until ``s1`` has finished, |
| preventing further overlapping of communication and computation. If you |
| place the wait too late, you will use more memory than is strictly |
| necessary (as you are keeping ``x`` live for longer.) For a concrete |
| example of how this guidance can be applied in practice, see this post: |
| `FSDP and CUDACachingAllocator |
| <https://dev-discuss.pytorch.org/t/fsdp-cudacachingallocator-an-outsider-newb-perspective/1486>`_. |
| """, |
| ) |
| |
| add_docstr_all( |
| "remainder", |
| r""" |
| remainder(divisor) -> Tensor |
| |
| See :func:`torch.remainder` |
| """, |
| ) |
| |
| add_docstr_all( |
| "remainder_", |
| r""" |
| remainder_(divisor) -> Tensor |
| |
| In-place version of :meth:`~Tensor.remainder` |
| """, |
| ) |
| |
| add_docstr_all( |
| "renorm", |
| r""" |
| renorm(p, dim, maxnorm) -> Tensor |
| |
| See :func:`torch.renorm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "renorm_", |
| r""" |
| renorm_(p, dim, maxnorm) -> Tensor |
| |
| In-place version of :meth:`~Tensor.renorm` |
| """, |
| ) |
| |
| add_docstr_all( |
| "repeat", |
| r""" |
| repeat(*repeats) -> Tensor |
| |
| Repeats this tensor along the specified dimensions. |
| |
| Unlike :meth:`~Tensor.expand`, this function copies the tensor's data. |
| |
| .. warning:: |
| |
| :meth:`~Tensor.repeat` behaves differently from |
| `numpy.repeat <https://docs.scipy.org/doc/numpy/reference/generated/numpy.repeat.html>`_, |
| but is more similar to |
| `numpy.tile <https://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html>`_. |
| For the operator similar to `numpy.repeat`, see :func:`torch.repeat_interleave`. |
| |
| Args: |
| repeat (torch.Size, int..., tuple of int or list of int): The number of times to repeat this tensor along each dimension |
| |
| Example:: |
| |
| >>> x = torch.tensor([1, 2, 3]) |
| >>> x.repeat(4, 2) |
| tensor([[ 1, 2, 3, 1, 2, 3], |
| [ 1, 2, 3, 1, 2, 3], |
| [ 1, 2, 3, 1, 2, 3], |
| [ 1, 2, 3, 1, 2, 3]]) |
| >>> x.repeat(4, 2, 1).size() |
| torch.Size([4, 2, 3]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "repeat_interleave", |
| r""" |
| repeat_interleave(repeats, dim=None, *, output_size=None) -> Tensor |
| |
| See :func:`torch.repeat_interleave`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "requires_grad_", |
| r""" |
| requires_grad_(requires_grad=True) -> Tensor |
| |
| Change if autograd should record operations on this tensor: sets this tensor's |
| :attr:`requires_grad` attribute in-place. Returns this tensor. |
| |
| :func:`requires_grad_`'s main use case is to tell autograd to begin recording |
| operations on a Tensor ``tensor``. If ``tensor`` has ``requires_grad=False`` |
| (because it was obtained through a DataLoader, or required preprocessing or |
| initialization), ``tensor.requires_grad_()`` makes it so that autograd will |
| begin to record operations on ``tensor``. |
| |
| Args: |
| requires_grad (bool): If autograd should record operations on this tensor. |
| Default: ``True``. |
| |
| Example:: |
| |
| >>> # Let's say we want to preprocess some saved weights and use |
| >>> # the result as new weights. |
| >>> saved_weights = [0.1, 0.2, 0.3, 0.25] |
| >>> loaded_weights = torch.tensor(saved_weights) |
| >>> weights = preprocess(loaded_weights) # some function |
| >>> weights |
| tensor([-0.5503, 0.4926, -2.1158, -0.8303]) |
| |
| >>> # Now, start to record operations done to weights |
| >>> weights.requires_grad_() |
| >>> out = weights.pow(2).sum() |
| >>> out.backward() |
| >>> weights.grad |
| tensor([-1.1007, 0.9853, -4.2316, -1.6606]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "reshape", |
| r""" |
| reshape(*shape) -> Tensor |
| |
| Returns a tensor with the same data and number of elements as :attr:`self` |
| but with the specified shape. This method returns a view if :attr:`shape` is |
| compatible with the current shape. See :meth:`torch.Tensor.view` on when it is |
| possible to return a view. |
| |
| See :func:`torch.reshape` |
| |
| Args: |
| shape (tuple of ints or int...): the desired shape |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "reshape_as", |
| r""" |
| reshape_as(other) -> Tensor |
| |
| Returns this tensor as the same shape as :attr:`other`. |
| ``self.reshape_as(other)`` is equivalent to ``self.reshape(other.sizes())``. |
| This method returns a view if ``other.sizes()`` is compatible with the current |
| shape. See :meth:`torch.Tensor.view` on when it is possible to return a view. |
| |
| Please see :meth:`reshape` for more information about ``reshape``. |
| |
| Args: |
| other (:class:`torch.Tensor`): The result tensor has the same shape |
| as :attr:`other`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "resize_", |
| r""" |
| resize_(*sizes, memory_format=torch.contiguous_format) -> Tensor |
| |
| Resizes :attr:`self` tensor to the specified size. If the number of elements is |
| larger than the current storage size, then the underlying storage is resized |
| to fit the new number of elements. If the number of elements is smaller, the |
| underlying storage is not changed. Existing elements are preserved but any new |
| memory is uninitialized. |
| |
| .. warning:: |
| |
| This is a low-level method. The storage is reinterpreted as C-contiguous, |
| ignoring the current strides (unless the target size equals the current |
| size, in which case the tensor is left unchanged). For most purposes, you |
| will instead want to use :meth:`~Tensor.view()`, which checks for |
| contiguity, or :meth:`~Tensor.reshape()`, which copies data if needed. To |
| change the size in-place with custom strides, see :meth:`~Tensor.set_()`. |
| |
| .. note:: |
| |
| If :func:`torch.use_deterministic_algorithms()` and |
| :attr:`torch.utils.deterministic.fill_uninitialized_memory` are both set to |
| ``True``, new elements are initialized to prevent nondeterministic behavior |
| from using the result as an input to an operation. Floating point and |
| complex values are set to NaN, and integer values are set to the maximum |
| value. |
| |
| Args: |
| sizes (torch.Size or int...): the desired size |
| memory_format (:class:`torch.memory_format`, optional): the desired memory format of |
| Tensor. Default: ``torch.contiguous_format``. Note that memory format of |
| :attr:`self` is going to be unaffected if ``self.size()`` matches ``sizes``. |
| |
| Example:: |
| |
| >>> x = torch.tensor([[1, 2], [3, 4], [5, 6]]) |
| >>> x.resize_(2, 2) |
| tensor([[ 1, 2], |
| [ 3, 4]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "resize_as_", |
| r""" |
| resize_as_(tensor, memory_format=torch.contiguous_format) -> Tensor |
| |
| Resizes the :attr:`self` tensor to be the same size as the specified |
| :attr:`tensor`. This is equivalent to ``self.resize_(tensor.size())``. |
| |
| Args: |
| memory_format (:class:`torch.memory_format`, optional): the desired memory format of |
| Tensor. Default: ``torch.contiguous_format``. Note that memory format of |
| :attr:`self` is going to be unaffected if ``self.size()`` matches ``tensor.size()``. |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "rot90", |
| r""" |
| rot90(k, dims) -> Tensor |
| |
| See :func:`torch.rot90` |
| """, |
| ) |
| |
| add_docstr_all( |
| "round", |
| r""" |
| round(decimals=0) -> Tensor |
| |
| See :func:`torch.round` |
| """, |
| ) |
| |
| add_docstr_all( |
| "round_", |
| r""" |
| round_(decimals=0) -> Tensor |
| |
| In-place version of :meth:`~Tensor.round` |
| """, |
| ) |
| |
| add_docstr_all( |
| "rsqrt", |
| r""" |
| rsqrt() -> Tensor |
| |
| See :func:`torch.rsqrt` |
| """, |
| ) |
| |
| add_docstr_all( |
| "rsqrt_", |
| r""" |
| rsqrt_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.rsqrt` |
| """, |
| ) |
| |
| add_docstr_all( |
| "scatter_", |
| r""" |
| scatter_(dim, index, src, *, reduce=None) -> Tensor |
| |
| Writes all values from the tensor :attr:`src` into :attr:`self` at the indices |
| specified in the :attr:`index` tensor. For each value in :attr:`src`, its output |
| index is specified by its index in :attr:`src` for ``dimension != dim`` and by |
| the corresponding value in :attr:`index` for ``dimension = dim``. |
| |
| For a 3-D tensor, :attr:`self` is updated as:: |
| |
| self[index[i][j][k]][j][k] = src[i][j][k] # if dim == 0 |
| self[i][index[i][j][k]][k] = src[i][j][k] # if dim == 1 |
| self[i][j][index[i][j][k]] = src[i][j][k] # if dim == 2 |
| |
| This is the reverse operation of the manner described in :meth:`~Tensor.gather`. |
| |
| :attr:`self`, :attr:`index` and :attr:`src` (if it is a Tensor) should all have |
| the same number of dimensions. It is also required that |
| ``index.size(d) <= src.size(d)`` for all dimensions ``d``, and that |
| ``index.size(d) <= self.size(d)`` for all dimensions ``d != dim``. |
| Note that ``index`` and ``src`` do not broadcast. |
| |
| Moreover, as for :meth:`~Tensor.gather`, the values of :attr:`index` must be |
| between ``0`` and ``self.size(dim) - 1`` inclusive. |
| |
| .. warning:: |
| |
| When indices are not unique, the behavior is non-deterministic (one of the |
| values from ``src`` will be picked arbitrarily) and the gradient will be |
| incorrect (it will be propagated to all locations in the source that |
| correspond to the same index)! |
| |
| .. note:: |
| |
| The backward pass is implemented only for ``src.shape == index.shape``. |
| |
| Additionally accepts an optional :attr:`reduce` argument that allows |
| specification of an optional reduction operation, which is applied to all |
| values in the tensor :attr:`src` into :attr:`self` at the indices |
| specified in the :attr:`index`. For each value in :attr:`src`, the reduction |
| operation is applied to an index in :attr:`self` which is specified by |
| its index in :attr:`src` for ``dimension != dim`` and by the corresponding |
| value in :attr:`index` for ``dimension = dim``. |
| |
| Given a 3-D tensor and reduction using the multiplication operation, :attr:`self` |
| is updated as:: |
| |
| self[index[i][j][k]][j][k] *= src[i][j][k] # if dim == 0 |
| self[i][index[i][j][k]][k] *= src[i][j][k] # if dim == 1 |
| self[i][j][index[i][j][k]] *= src[i][j][k] # if dim == 2 |
| |
| Reducing with the addition operation is the same as using |
| :meth:`~torch.Tensor.scatter_add_`. |
| |
| .. warning:: |
| The reduce argument with Tensor ``src`` is deprecated and will be removed in |
| a future PyTorch release. Please use :meth:`~torch.Tensor.scatter_reduce_` |
| instead for more reduction options. |
| |
| Args: |
| dim (int): the axis along which to index |
| index (LongTensor): the indices of elements to scatter, can be either empty |
| or of the same dimensionality as ``src``. When empty, the operation |
| returns ``self`` unchanged. |
| src (Tensor): the source element(s) to scatter. |
| |
| Keyword args: |
| reduce (str, optional): reduction operation to apply, can be either |
| ``'add'`` or ``'multiply'``. |
| |
| Example:: |
| |
| >>> src = torch.arange(1, 11).reshape((2, 5)) |
| >>> src |
| tensor([[ 1, 2, 3, 4, 5], |
| [ 6, 7, 8, 9, 10]]) |
| >>> index = torch.tensor([[0, 1, 2, 0]]) |
| >>> torch.zeros(3, 5, dtype=src.dtype).scatter_(0, index, src) |
| tensor([[1, 0, 0, 4, 0], |
| [0, 2, 0, 0, 0], |
| [0, 0, 3, 0, 0]]) |
| >>> index = torch.tensor([[0, 1, 2], [0, 1, 4]]) |
| >>> torch.zeros(3, 5, dtype=src.dtype).scatter_(1, index, src) |
| tensor([[1, 2, 3, 0, 0], |
| [6, 7, 0, 0, 8], |
| [0, 0, 0, 0, 0]]) |
| |
| >>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]), |
| ... 1.23, reduce='multiply') |
| tensor([[2.0000, 2.0000, 2.4600, 2.0000], |
| [2.0000, 2.0000, 2.0000, 2.4600]]) |
| >>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]), |
| ... 1.23, reduce='add') |
| tensor([[2.0000, 2.0000, 3.2300, 2.0000], |
| [2.0000, 2.0000, 2.0000, 3.2300]]) |
| |
| .. function:: scatter_(dim, index, value, *, reduce=None) -> Tensor: |
| :noindex: |
| |
| Writes the value from :attr:`value` into :attr:`self` at the indices |
| specified in the :attr:`index` tensor. This operation is equivalent to the previous version, |
| with the :attr:`src` tensor filled entirely with :attr:`value`. |
| |
| Args: |
| dim (int): the axis along which to index |
| index (LongTensor): the indices of elements to scatter, can be either empty |
| or of the same dimensionality as ``src``. When empty, the operation |
| returns ``self`` unchanged. |
| value (Scalar): the value to scatter. |
| |
| Keyword args: |
| reduce (str, optional): reduction operation to apply, can be either |
| ``'add'`` or ``'multiply'``. |
| |
| Example:: |
| |
| >>> index = torch.tensor([[0, 1]]) |
| >>> value = 2 |
| >>> torch.zeros(3, 5).scatter_(0, index, value) |
| tensor([[2., 0., 0., 0., 0.], |
| [0., 2., 0., 0., 0.], |
| [0., 0., 0., 0., 0.]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "scatter_add_", |
| r""" |
| scatter_add_(dim, index, src) -> Tensor |
| |
| Adds all values from the tensor :attr:`src` into :attr:`self` at the indices |
| specified in the :attr:`index` tensor in a similar fashion as |
| :meth:`~torch.Tensor.scatter_`. For each value in :attr:`src`, it is added to |
| an index in :attr:`self` which is specified by its index in :attr:`src` |
| for ``dimension != dim`` and by the corresponding value in :attr:`index` for |
| ``dimension = dim``. |
| |
| For a 3-D tensor, :attr:`self` is updated as:: |
| |
| self[index[i][j][k]][j][k] += src[i][j][k] # if dim == 0 |
| self[i][index[i][j][k]][k] += src[i][j][k] # if dim == 1 |
| self[i][j][index[i][j][k]] += src[i][j][k] # if dim == 2 |
| |
| :attr:`self`, :attr:`index` and :attr:`src` should have same number of |
| dimensions. It is also required that ``index.size(d) <= src.size(d)`` for all |
| dimensions ``d``, and that ``index.size(d) <= self.size(d)`` for all dimensions |
| ``d != dim``. Note that ``index`` and ``src`` do not broadcast. |
| |
| Note: |
| {forward_reproducibility_note} |
| |
| .. note:: |
| |
| The backward pass is implemented only for ``src.shape == index.shape``. |
| |
| Args: |
| dim (int): the axis along which to index |
| index (LongTensor): the indices of elements to scatter and add, can be |
| either empty or of the same dimensionality as ``src``. When empty, the |
| operation returns ``self`` unchanged. |
| src (Tensor): the source elements to scatter and add |
| |
| Example:: |
| |
| >>> src = torch.ones((2, 5)) |
| >>> index = torch.tensor([[0, 1, 2, 0, 0]]) |
| >>> torch.zeros(3, 5, dtype=src.dtype).scatter_add_(0, index, src) |
| tensor([[1., 0., 0., 1., 1.], |
| [0., 1., 0., 0., 0.], |
| [0., 0., 1., 0., 0.]]) |
| >>> index = torch.tensor([[0, 1, 2, 0, 0], [0, 1, 2, 2, 2]]) |
| >>> torch.zeros(3, 5, dtype=src.dtype).scatter_add_(0, index, src) |
| tensor([[2., 0., 0., 1., 1.], |
| [0., 2., 0., 0., 0.], |
| [0., 0., 2., 1., 1.]]) |
| |
| """.format(**reproducibility_notes), |
| ) |
| |
| add_docstr_all( |
| "scatter_reduce_", |
| r""" |
| scatter_reduce_(dim, index, src, reduce, *, include_self=True) -> Tensor |
| |
| Reduces all values from the :attr:`src` tensor to the indices specified in |
| the :attr:`index` tensor in the :attr:`self` tensor using the applied reduction |
| defined via the :attr:`reduce` argument (:obj:`"sum"`, :obj:`"prod"`, :obj:`"mean"`, |
| :obj:`"amax"`, :obj:`"amin"`). For each value in :attr:`src`, it is reduced to an |
| index in :attr:`self` which is specified by its index in :attr:`src` for |
| ``dimension != dim`` and by the corresponding value in :attr:`index` for |
| ``dimension = dim``. If :obj:`include_self="True"`, the values in the :attr:`self` |
| tensor are included in the reduction. |
| |
| :attr:`self`, :attr:`index` and :attr:`src` should all have |
| the same number of dimensions. It is also required that |
| ``index.size(d) <= src.size(d)`` for all dimensions ``d``, and that |
| ``index.size(d) <= self.size(d)`` for all dimensions ``d != dim``. |
| Note that ``index`` and ``src`` do not broadcast. |
| |
| For a 3-D tensor with :obj:`reduce="sum"` and :obj:`include_self=True` the |
| output is given as:: |
| |
| self[index[i][j][k]][j][k] += src[i][j][k] # if dim == 0 |
| self[i][index[i][j][k]][k] += src[i][j][k] # if dim == 1 |
| self[i][j][index[i][j][k]] += src[i][j][k] # if dim == 2 |
| |
| Note: |
| {forward_reproducibility_note} |
| |
| .. note:: |
| |
| The backward pass is implemented only for ``src.shape == index.shape``. |
| |
| .. warning:: |
| |
| This function is in beta and may change in the near future. |
| |
| Args: |
| dim (int): the axis along which to index |
| index (LongTensor): the indices of elements to scatter and reduce. |
| src (Tensor): the source elements to scatter and reduce |
| reduce (str): the reduction operation to apply for non-unique indices |
| (:obj:`"sum"`, :obj:`"prod"`, :obj:`"mean"`, :obj:`"amax"`, :obj:`"amin"`) |
| include_self (bool): whether elements from the :attr:`self` tensor are |
| included in the reduction |
| |
| Example:: |
| |
| >>> src = torch.tensor([1., 2., 3., 4., 5., 6.]) |
| >>> index = torch.tensor([0, 1, 0, 1, 2, 1]) |
| >>> input = torch.tensor([1., 2., 3., 4.]) |
| >>> input.scatter_reduce(0, index, src, reduce="sum") |
| tensor([5., 14., 8., 4.]) |
| >>> input.scatter_reduce(0, index, src, reduce="sum", include_self=False) |
| tensor([4., 12., 5., 4.]) |
| >>> input2 = torch.tensor([5., 4., 3., 2.]) |
| >>> input2.scatter_reduce(0, index, src, reduce="amax") |
| tensor([5., 6., 5., 2.]) |
| >>> input2.scatter_reduce(0, index, src, reduce="amax", include_self=False) |
| tensor([3., 6., 5., 2.]) |
| |
| |
| """.format(**reproducibility_notes), |
| ) |
| |
| add_docstr_all( |
| "select", |
| r""" |
| select(dim, index) -> Tensor |
| |
| See :func:`torch.select` |
| """, |
| ) |
| |
| add_docstr_all( |
| "select_scatter", |
| r""" |
| select_scatter(src, dim, index) -> Tensor |
| |
| See :func:`torch.select_scatter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "slice_scatter", |
| r""" |
| slice_scatter(src, dim=0, start=None, end=None, step=1) -> Tensor |
| |
| See :func:`torch.slice_scatter` |
| """, |
| ) |
| |
| add_docstr_all( |
| "set_", |
| r""" |
| set_(source=None, storage_offset=0, size=None, stride=None) -> Tensor |
| |
| Sets the underlying storage, size, and strides. If :attr:`source` is a tensor, |
| :attr:`self` tensor will share the same storage and have the same size and |
| strides as :attr:`source`. Changes to elements in one tensor will be reflected |
| in the other. |
| |
| If :attr:`source` is a :class:`~torch.Storage`, the method sets the underlying |
| storage, offset, size, and stride. |
| |
| Args: |
| source (Tensor or Storage): the tensor or storage to use |
| storage_offset (int, optional): the offset in the storage |
| size (torch.Size, optional): the desired size. Defaults to the size of the source. |
| stride (tuple, optional): the desired stride. Defaults to C-contiguous strides. |
| """, |
| ) |
| |
| add_docstr_all( |
| "sigmoid", |
| r""" |
| sigmoid() -> Tensor |
| |
| See :func:`torch.sigmoid` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sigmoid_", |
| r""" |
| sigmoid_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sigmoid` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logit", |
| r""" |
| logit() -> Tensor |
| |
| See :func:`torch.logit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logit_", |
| r""" |
| logit_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.logit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sign", |
| r""" |
| sign() -> Tensor |
| |
| See :func:`torch.sign` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sign_", |
| r""" |
| sign_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sign` |
| """, |
| ) |
| |
| add_docstr_all( |
| "signbit", |
| r""" |
| signbit() -> Tensor |
| |
| See :func:`torch.signbit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sgn", |
| r""" |
| sgn() -> Tensor |
| |
| See :func:`torch.sgn` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sgn_", |
| r""" |
| sgn_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sgn` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sin", |
| r""" |
| sin() -> Tensor |
| |
| See :func:`torch.sin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sin_", |
| r""" |
| sin_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sin` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sinc", |
| r""" |
| sinc() -> Tensor |
| |
| See :func:`torch.sinc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sinc_", |
| r""" |
| sinc_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sinc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sinh", |
| r""" |
| sinh() -> Tensor |
| |
| See :func:`torch.sinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sinh_", |
| r""" |
| sinh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sinh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "size", |
| r""" |
| size(dim=None) -> torch.Size or int |
| |
| Returns the size of the :attr:`self` tensor. If ``dim`` is not specified, |
| the returned value is a :class:`torch.Size`, a subclass of :class:`tuple`. |
| If ``dim`` is specified, returns an int holding the size of that dimension. |
| |
| Args: |
| dim (int, optional): The dimension for which to retrieve the size. |
| |
| Example:: |
| |
| >>> t = torch.empty(3, 4, 5) |
| >>> t.size() |
| torch.Size([3, 4, 5]) |
| >>> t.size(dim=1) |
| 4 |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "shape", |
| r""" |
| shape() -> torch.Size |
| |
| Returns the size of the :attr:`self` tensor. Alias for :attr:`size`. |
| |
| See also :meth:`Tensor.size`. |
| |
| Example:: |
| |
| >>> t = torch.empty(3, 4, 5) |
| >>> t.size() |
| torch.Size([3, 4, 5]) |
| >>> t.shape |
| torch.Size([3, 4, 5]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "sort", |
| r""" |
| sort(dim=-1, descending=False) -> (Tensor, LongTensor) |
| |
| See :func:`torch.sort` |
| """, |
| ) |
| |
| add_docstr_all( |
| "msort", |
| r""" |
| msort() -> Tensor |
| |
| See :func:`torch.msort` |
| """, |
| ) |
| |
| add_docstr_all( |
| "argsort", |
| r""" |
| argsort(dim=-1, descending=False) -> LongTensor |
| |
| See :func:`torch.argsort` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sparse_dim", |
| r""" |
| sparse_dim() -> int |
| |
| Return the number of sparse dimensions in a :ref:`sparse tensor <sparse-docs>` :attr:`self`. |
| |
| .. note:: |
| Returns ``0`` if :attr:`self` is not a sparse tensor. |
| |
| See also :meth:`Tensor.dense_dim` and :ref:`hybrid tensors <sparse-hybrid-coo-docs>`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "sparse_resize_", |
| r""" |
| sparse_resize_(size, sparse_dim, dense_dim) -> Tensor |
| |
| Resizes :attr:`self` :ref:`sparse tensor <sparse-docs>` to the desired |
| size and the number of sparse and dense dimensions. |
| |
| .. note:: |
| If the number of specified elements in :attr:`self` is zero, then |
| :attr:`size`, :attr:`sparse_dim`, and :attr:`dense_dim` can be any |
| size and positive integers such that ``len(size) == sparse_dim + |
| dense_dim``. |
| |
| If :attr:`self` specifies one or more elements, however, then each |
| dimension in :attr:`size` must not be smaller than the corresponding |
| dimension of :attr:`self`, :attr:`sparse_dim` must equal the number |
| of sparse dimensions in :attr:`self`, and :attr:`dense_dim` must |
| equal the number of dense dimensions in :attr:`self`. |
| |
| .. warning:: |
| Throws an error if :attr:`self` is not a sparse tensor. |
| |
| Args: |
| size (torch.Size): the desired size. If :attr:`self` is non-empty |
| sparse tensor, the desired size cannot be smaller than the |
| original size. |
| sparse_dim (int): the number of sparse dimensions |
| dense_dim (int): the number of dense dimensions |
| """, |
| ) |
| |
| add_docstr_all( |
| "sparse_resize_and_clear_", |
| r""" |
| sparse_resize_and_clear_(size, sparse_dim, dense_dim) -> Tensor |
| |
| Removes all specified elements from a :ref:`sparse tensor |
| <sparse-docs>` :attr:`self` and resizes :attr:`self` to the desired |
| size and the number of sparse and dense dimensions. |
| |
| .. warning: |
| Throws an error if :attr:`self` is not a sparse tensor. |
| |
| Args: |
| size (torch.Size): the desired size. |
| sparse_dim (int): the number of sparse dimensions |
| dense_dim (int): the number of dense dimensions |
| """, |
| ) |
| |
| add_docstr_all( |
| "sqrt", |
| r""" |
| sqrt() -> Tensor |
| |
| See :func:`torch.sqrt` |
| """, |
| ) |
| |
| add_docstr_all( |
| "sqrt_", |
| r""" |
| sqrt_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.sqrt` |
| """, |
| ) |
| |
| add_docstr_all( |
| "square", |
| r""" |
| square() -> Tensor |
| |
| See :func:`torch.square` |
| """, |
| ) |
| |
| add_docstr_all( |
| "square_", |
| r""" |
| square_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.square` |
| """, |
| ) |
| |
| add_docstr_all( |
| "squeeze", |
| r""" |
| squeeze(dim=None) -> Tensor |
| |
| See :func:`torch.squeeze` |
| """, |
| ) |
| |
| add_docstr_all( |
| "squeeze_", |
| r""" |
| squeeze_(dim=None) -> Tensor |
| |
| In-place version of :meth:`~Tensor.squeeze` |
| """, |
| ) |
| |
| add_docstr_all( |
| "std", |
| r""" |
| std(dim=None, *, correction=1, keepdim=False) -> Tensor |
| |
| See :func:`torch.std` |
| """, |
| ) |
| |
| add_docstr_all( |
| "storage_offset", |
| r""" |
| storage_offset() -> int |
| |
| Returns :attr:`self` tensor's offset in the underlying storage in terms of |
| number of storage elements (not bytes). |
| |
| Example:: |
| |
| >>> x = torch.tensor([1, 2, 3, 4, 5]) |
| >>> x.storage_offset() |
| 0 |
| >>> x[3:].storage_offset() |
| 3 |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "untyped_storage", |
| r""" |
| untyped_storage() -> torch.UntypedStorage |
| |
| Returns the underlying :class:`UntypedStorage`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "stride", |
| r""" |
| stride(dim) -> tuple or int |
| |
| Returns the stride of :attr:`self` tensor. |
| |
| Stride is the jump necessary to go from one element to the next one in the |
| specified dimension :attr:`dim`. A tuple of all strides is returned when no |
| argument is passed in. Otherwise, an integer value is returned as the stride in |
| the particular dimension :attr:`dim`. |
| |
| Args: |
| dim (int, optional): the desired dimension in which stride is required |
| |
| Example:: |
| |
| >>> x = torch.tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) |
| >>> x.stride() |
| (5, 1) |
| >>> x.stride(0) |
| 5 |
| >>> x.stride(-1) |
| 1 |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "sub", |
| r""" |
| sub(other, *, alpha=1) -> Tensor |
| |
| See :func:`torch.sub`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "sub_", |
| r""" |
| sub_(other, *, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.sub` |
| """, |
| ) |
| |
| add_docstr_all( |
| "subtract", |
| r""" |
| subtract(other, *, alpha=1) -> Tensor |
| |
| See :func:`torch.subtract`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "subtract_", |
| r""" |
| subtract_(other, *, alpha=1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.subtract`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "sum", |
| r""" |
| sum(dim=None, keepdim=False, dtype=None) -> Tensor |
| |
| See :func:`torch.sum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nansum", |
| r""" |
| nansum(dim=None, keepdim=False, dtype=None) -> Tensor |
| |
| See :func:`torch.nansum` |
| """, |
| ) |
| |
| add_docstr_all( |
| "svd", |
| r""" |
| svd(some=True, compute_uv=True) -> (Tensor, Tensor, Tensor) |
| |
| See :func:`torch.svd` |
| """, |
| ) |
| |
| add_docstr_all( |
| "swapdims", |
| r""" |
| swapdims(dim0, dim1) -> Tensor |
| |
| See :func:`torch.swapdims` |
| """, |
| ) |
| |
| add_docstr_all( |
| "swapdims_", |
| r""" |
| swapdims_(dim0, dim1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.swapdims` |
| """, |
| ) |
| |
| add_docstr_all( |
| "swapaxes", |
| r""" |
| swapaxes(axis0, axis1) -> Tensor |
| |
| See :func:`torch.swapaxes` |
| """, |
| ) |
| |
| add_docstr_all( |
| "swapaxes_", |
| r""" |
| swapaxes_(axis0, axis1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.swapaxes` |
| """, |
| ) |
| |
| add_docstr_all( |
| "t", |
| r""" |
| t() -> Tensor |
| |
| See :func:`torch.t` |
| """, |
| ) |
| |
| add_docstr_all( |
| "t_", |
| r""" |
| t_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.t` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tile", |
| r""" |
| tile(dims) -> Tensor |
| |
| See :func:`torch.tile` |
| """, |
| ) |
| |
| add_docstr_all( |
| "to", |
| r""" |
| to(*args, **kwargs) -> Tensor |
| |
| Performs Tensor dtype and/or device conversion. A :class:`torch.dtype` and :class:`torch.device` are |
| inferred from the arguments of ``self.to(*args, **kwargs)``. |
| |
| .. note:: |
| |
| If the ``self`` Tensor already |
| has the correct :class:`torch.dtype` and :class:`torch.device`, then ``self`` is returned. |
| Otherwise, the returned tensor is a copy of ``self`` with the desired |
| :class:`torch.dtype` and :class:`torch.device`. |
| |
| Here are the ways to call ``to``: |
| |
| .. method:: to(dtype, non_blocking=False, copy=False, memory_format=torch.preserve_format) -> Tensor |
| :noindex: |
| |
| Returns a Tensor with the specified :attr:`dtype` |
| |
| Args: |
| {memory_format} |
| |
| .. method:: to(device=None, dtype=None, non_blocking=False, copy=False, memory_format=torch.preserve_format) -> Tensor |
| :noindex: |
| |
| Returns a Tensor with the specified :attr:`device` and (optional) |
| :attr:`dtype`. If :attr:`dtype` is ``None`` it is inferred to be ``self.dtype``. |
| When :attr:`non_blocking`, tries to convert asynchronously with respect to |
| the host if possible, e.g., converting a CPU Tensor with pinned memory to a |
| CUDA Tensor. |
| When :attr:`copy` is set, a new Tensor is created even when the Tensor |
| already matches the desired conversion. |
| |
| Args: |
| {memory_format} |
| |
| .. method:: to(other, non_blocking=False, copy=False) -> Tensor |
| :noindex: |
| |
| Returns a Tensor with same :class:`torch.dtype` and :class:`torch.device` as |
| the Tensor :attr:`other`. When :attr:`non_blocking`, tries to convert |
| asynchronously with respect to the host if possible, e.g., converting a CPU |
| Tensor with pinned memory to a CUDA Tensor. |
| When :attr:`copy` is set, a new Tensor is created even when the Tensor |
| already matches the desired conversion. |
| |
| Example:: |
| |
| >>> tensor = torch.randn(2, 2) # Initially dtype=float32, device=cpu |
| >>> tensor.to(torch.float64) |
| tensor([[-0.5044, 0.0005], |
| [ 0.3310, -0.0584]], dtype=torch.float64) |
| |
| >>> cuda0 = torch.device('cuda:0') |
| >>> tensor.to(cuda0) |
| tensor([[-0.5044, 0.0005], |
| [ 0.3310, -0.0584]], device='cuda:0') |
| |
| >>> tensor.to(cuda0, dtype=torch.float64) |
| tensor([[-0.5044, 0.0005], |
| [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0') |
| |
| >>> other = torch.randn((), dtype=torch.float64, device=cuda0) |
| >>> tensor.to(other, non_blocking=True) |
| tensor([[-0.5044, 0.0005], |
| [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0') |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "byte", |
| r""" |
| byte(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.byte()`` is equivalent to ``self.to(torch.uint8)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "bool", |
| r""" |
| bool(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.bool()`` is equivalent to ``self.to(torch.bool)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "char", |
| r""" |
| char(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.char()`` is equivalent to ``self.to(torch.int8)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "bfloat16", |
| r""" |
| bfloat16(memory_format=torch.preserve_format) -> Tensor |
| ``self.bfloat16()`` is equivalent to ``self.to(torch.bfloat16)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "double", |
| r""" |
| double(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.double()`` is equivalent to ``self.to(torch.float64)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "float", |
| r""" |
| float(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.float()`` is equivalent to ``self.to(torch.float32)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "cdouble", |
| r""" |
| cdouble(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.cdouble()`` is equivalent to ``self.to(torch.complex128)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "cfloat", |
| r""" |
| cfloat(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.cfloat()`` is equivalent to ``self.to(torch.complex64)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "chalf", |
| r""" |
| chalf(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.chalf()`` is equivalent to ``self.to(torch.complex32)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "half", |
| r""" |
| half(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.half()`` is equivalent to ``self.to(torch.float16)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "int", |
| r""" |
| int(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.int()`` is equivalent to ``self.to(torch.int32)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "int_repr", |
| r""" |
| int_repr() -> Tensor |
| |
| Given a quantized Tensor, |
| ``self.int_repr()`` returns a CPU Tensor with uint8_t as data type that stores the |
| underlying uint8_t values of the given Tensor. |
| """, |
| ) |
| |
| |
| add_docstr_all( |
| "long", |
| r""" |
| long(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.long()`` is equivalent to ``self.to(torch.int64)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "short", |
| r""" |
| short(memory_format=torch.preserve_format) -> Tensor |
| |
| ``self.short()`` is equivalent to ``self.to(torch.int16)``. See :func:`to`. |
| |
| Args: |
| {memory_format} |
| """.format(**common_args), |
| ) |
| |
| add_docstr_all( |
| "take", |
| r""" |
| take(indices) -> Tensor |
| |
| See :func:`torch.take` |
| """, |
| ) |
| |
| add_docstr_all( |
| "take_along_dim", |
| r""" |
| take_along_dim(indices, dim) -> Tensor |
| |
| See :func:`torch.take_along_dim` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tan", |
| r""" |
| tan() -> Tensor |
| |
| See :func:`torch.tan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tan_", |
| r""" |
| tan_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.tan` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tanh", |
| r""" |
| tanh() -> Tensor |
| |
| See :func:`torch.tanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "softmax", |
| r""" |
| softmax(dim) -> Tensor |
| |
| Alias for :func:`torch.nn.functional.softmax`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "tanh_", |
| r""" |
| tanh_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.tanh` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tolist", |
| r""" |
| tolist() -> list or number |
| |
| Returns the tensor as a (nested) list. For scalars, a standard |
| Python number is returned, just like with :meth:`~Tensor.item`. |
| Tensors are automatically moved to the CPU first if necessary. |
| |
| This operation is not differentiable. |
| |
| Examples:: |
| |
| >>> a = torch.randn(2, 2) |
| >>> a.tolist() |
| [[0.012766935862600803, 0.5415473580360413], |
| [-0.08909505605697632, 0.7729271650314331]] |
| >>> a[0,0].tolist() |
| 0.012766935862600803 |
| """, |
| ) |
| |
| add_docstr_all( |
| "topk", |
| r""" |
| topk(k, dim=None, largest=True, sorted=True) -> (Tensor, LongTensor) |
| |
| See :func:`torch.topk` |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_dense", |
| r""" |
| to_dense(dtype=None, *, masked_grad=True) -> Tensor |
| |
| Creates a strided copy of :attr:`self` if :attr:`self` is not a strided tensor, otherwise returns :attr:`self`. |
| |
| Keyword args: |
| {dtype} |
| masked_grad (bool, optional): If set to ``True`` (default) and |
| :attr:`self` has a sparse layout then the backward of |
| :meth:`to_dense` returns ``grad.sparse_mask(self)``. |
| |
| Example:: |
| |
| >>> s = torch.sparse_coo_tensor( |
| ... torch.tensor([[1, 1], |
| ... [0, 2]]), |
| ... torch.tensor([9, 10]), |
| ... size=(3, 3)) |
| >>> s.to_dense() |
| tensor([[ 0, 0, 0], |
| [ 9, 0, 10], |
| [ 0, 0, 0]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_sparse", |
| r""" |
| to_sparse(sparseDims) -> Tensor |
| |
| Returns a sparse copy of the tensor. PyTorch supports sparse tensors in |
| :ref:`coordinate format <sparse-coo-docs>`. |
| |
| Args: |
| sparseDims (int, optional): the number of sparse dimensions to include in the new sparse tensor |
| |
| Example:: |
| |
| >>> d = torch.tensor([[0, 0, 0], [9, 0, 10], [0, 0, 0]]) |
| >>> d |
| tensor([[ 0, 0, 0], |
| [ 9, 0, 10], |
| [ 0, 0, 0]]) |
| >>> d.to_sparse() |
| tensor(indices=tensor([[1, 1], |
| [0, 2]]), |
| values=tensor([ 9, 10]), |
| size=(3, 3), nnz=2, layout=torch.sparse_coo) |
| >>> d.to_sparse(1) |
| tensor(indices=tensor([[1]]), |
| values=tensor([[ 9, 0, 10]]), |
| size=(3, 3), nnz=1, layout=torch.sparse_coo) |
| |
| .. method:: to_sparse(*, layout=None, blocksize=None, dense_dim=None) -> Tensor |
| :noindex: |
| |
| Returns a sparse tensor with the specified layout and blocksize. If |
| the :attr:`self` is strided, the number of dense dimensions could be |
| specified, and a hybrid sparse tensor will be created, with |
| `dense_dim` dense dimensions and `self.dim() - 2 - dense_dim` batch |
| dimension. |
| |
| .. note:: If the :attr:`self` layout and blocksize parameters match |
| with the specified layout and blocksize, return |
| :attr:`self`. Otherwise, return a sparse tensor copy of |
| :attr:`self`. |
| |
| Args: |
| |
| layout (:class:`torch.layout`, optional): The desired sparse |
| layout. One of ``torch.sparse_coo``, ``torch.sparse_csr``, |
| ``torch.sparse_csc``, ``torch.sparse_bsr``, or |
| ``torch.sparse_bsc``. Default: if ``None``, |
| ``torch.sparse_coo``. |
| |
| blocksize (list, tuple, :class:`torch.Size`, optional): Block size |
| of the resulting BSR or BSC tensor. For other layouts, |
| specifying the block size that is not ``None`` will result in a |
| RuntimeError exception. A block size must be a tuple of length |
| two such that its items evenly divide the two sparse dimensions. |
| |
| dense_dim (int, optional): Number of dense dimensions of the |
| resulting CSR, CSC, BSR or BSC tensor. This argument should be |
| used only if :attr:`self` is a strided tensor, and must be a |
| value between 0 and dimension of :attr:`self` tensor minus two. |
| |
| Example:: |
| |
| >>> x = torch.tensor([[1, 0], [0, 0], [2, 3]]) |
| >>> x.to_sparse(layout=torch.sparse_coo) |
| tensor(indices=tensor([[0, 2, 2], |
| [0, 0, 1]]), |
| values=tensor([1, 2, 3]), |
| size=(3, 2), nnz=3, layout=torch.sparse_coo) |
| >>> x.to_sparse(layout=torch.sparse_bsr, blocksize=(1, 2)) |
| tensor(crow_indices=tensor([0, 1, 1, 2]), |
| col_indices=tensor([0, 0]), |
| values=tensor([[[1, 0]], |
| [[2, 3]]]), size=(3, 2), nnz=2, layout=torch.sparse_bsr) |
| >>> x.to_sparse(layout=torch.sparse_bsr, blocksize=(2, 1)) |
| RuntimeError: Tensor size(-2) 3 needs to be divisible by blocksize[0] 2 |
| >>> x.to_sparse(layout=torch.sparse_csr, blocksize=(3, 1)) |
| RuntimeError: to_sparse for Strided to SparseCsr conversion does not use specified blocksize |
| |
| >>> x = torch.tensor([[[1], [0]], [[0], [0]], [[2], [3]]]) |
| >>> x.to_sparse(layout=torch.sparse_csr, dense_dim=1) |
| tensor(crow_indices=tensor([0, 1, 1, 3]), |
| col_indices=tensor([0, 0, 1]), |
| values=tensor([[1], |
| [2], |
| [3]]), size=(3, 2, 1), nnz=3, layout=torch.sparse_csr) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_sparse_csr", |
| r""" |
| to_sparse_csr(dense_dim=None) -> Tensor |
| |
| Convert a tensor to compressed row storage format (CSR). Except for |
| strided tensors, only works with 2D tensors. If the :attr:`self` is |
| strided, then the number of dense dimensions could be specified, and a |
| hybrid CSR tensor will be created, with `dense_dim` dense dimensions |
| and `self.dim() - 2 - dense_dim` batch dimension. |
| |
| Args: |
| |
| dense_dim (int, optional): Number of dense dimensions of the |
| resulting CSR tensor. This argument should be used only if |
| :attr:`self` is a strided tensor, and must be a value between 0 |
| and dimension of :attr:`self` tensor minus two. |
| |
| Example:: |
| |
| >>> dense = torch.randn(5, 5) |
| >>> sparse = dense.to_sparse_csr() |
| >>> sparse._nnz() |
| 25 |
| |
| >>> dense = torch.zeros(3, 3, 1, 1) |
| >>> dense[0, 0] = dense[1, 2] = dense[2, 1] = 1 |
| >>> dense.to_sparse_csr(dense_dim=2) |
| tensor(crow_indices=tensor([0, 1, 2, 3]), |
| col_indices=tensor([0, 2, 1]), |
| values=tensor([[[1.]], |
| |
| [[1.]], |
| |
| [[1.]]]), size=(3, 3, 1, 1), nnz=3, |
| layout=torch.sparse_csr) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_sparse_csc", |
| r""" |
| to_sparse_csc() -> Tensor |
| |
| Convert a tensor to compressed column storage (CSC) format. Except |
| for strided tensors, only works with 2D tensors. If the :attr:`self` |
| is strided, then the number of dense dimensions could be specified, |
| and a hybrid CSC tensor will be created, with `dense_dim` dense |
| dimensions and `self.dim() - 2 - dense_dim` batch dimension. |
| |
| Args: |
| |
| dense_dim (int, optional): Number of dense dimensions of the |
| resulting CSC tensor. This argument should be used only if |
| :attr:`self` is a strided tensor, and must be a value between 0 |
| and dimension of :attr:`self` tensor minus two. |
| |
| Example:: |
| |
| >>> dense = torch.randn(5, 5) |
| >>> sparse = dense.to_sparse_csc() |
| >>> sparse._nnz() |
| 25 |
| |
| >>> dense = torch.zeros(3, 3, 1, 1) |
| >>> dense[0, 0] = dense[1, 2] = dense[2, 1] = 1 |
| >>> dense.to_sparse_csc(dense_dim=2) |
| tensor(ccol_indices=tensor([0, 1, 2, 3]), |
| row_indices=tensor([0, 2, 1]), |
| values=tensor([[[1.]], |
| |
| [[1.]], |
| |
| [[1.]]]), size=(3, 3, 1, 1), nnz=3, |
| layout=torch.sparse_csc) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_sparse_bsr", |
| r""" |
| to_sparse_bsr(blocksize, dense_dim) -> Tensor |
| |
| Convert a tensor to a block sparse row (BSR) storage format of given |
| blocksize. If the :attr:`self` is strided, then the number of dense |
| dimensions could be specified, and a hybrid BSR tensor will be |
| created, with `dense_dim` dense dimensions and `self.dim() - 2 - |
| dense_dim` batch dimension. |
| |
| Args: |
| |
| blocksize (list, tuple, :class:`torch.Size`, optional): Block size |
| of the resulting BSR tensor. A block size must be a tuple of |
| length two such that its items evenly divide the two sparse |
| dimensions. |
| |
| dense_dim (int, optional): Number of dense dimensions of the |
| resulting BSR tensor. This argument should be used only if |
| :attr:`self` is a strided tensor, and must be a value between 0 |
| and dimension of :attr:`self` tensor minus two. |
| |
| Example:: |
| |
| >>> dense = torch.randn(10, 10) |
| >>> sparse = dense.to_sparse_csr() |
| >>> sparse_bsr = sparse.to_sparse_bsr((5, 5)) |
| >>> sparse_bsr.col_indices() |
| tensor([0, 1, 0, 1]) |
| |
| >>> dense = torch.zeros(4, 3, 1) |
| >>> dense[0:2, 0] = dense[0:2, 2] = dense[2:4, 1] = 1 |
| >>> dense.to_sparse_bsr((2, 1), 1) |
| tensor(crow_indices=tensor([0, 2, 3]), |
| col_indices=tensor([0, 2, 1]), |
| values=tensor([[[[1.]], |
| |
| [[1.]]], |
| |
| |
| [[[1.]], |
| |
| [[1.]]], |
| |
| |
| [[[1.]], |
| |
| [[1.]]]]), size=(4, 3, 1), nnz=3, |
| layout=torch.sparse_bsr) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_sparse_bsc", |
| r""" |
| to_sparse_bsc(blocksize, dense_dim) -> Tensor |
| |
| Convert a tensor to a block sparse column (BSC) storage format of |
| given blocksize. If the :attr:`self` is strided, then the number of |
| dense dimensions could be specified, and a hybrid BSC tensor will be |
| created, with `dense_dim` dense dimensions and `self.dim() - 2 - |
| dense_dim` batch dimension. |
| |
| Args: |
| |
| blocksize (list, tuple, :class:`torch.Size`, optional): Block size |
| of the resulting BSC tensor. A block size must be a tuple of |
| length two such that its items evenly divide the two sparse |
| dimensions. |
| |
| dense_dim (int, optional): Number of dense dimensions of the |
| resulting BSC tensor. This argument should be used only if |
| :attr:`self` is a strided tensor, and must be a value between 0 |
| and dimension of :attr:`self` tensor minus two. |
| |
| Example:: |
| |
| >>> dense = torch.randn(10, 10) |
| >>> sparse = dense.to_sparse_csr() |
| >>> sparse_bsc = sparse.to_sparse_bsc((5, 5)) |
| >>> sparse_bsc.row_indices() |
| tensor([0, 1, 0, 1]) |
| |
| >>> dense = torch.zeros(4, 3, 1) |
| >>> dense[0:2, 0] = dense[0:2, 2] = dense[2:4, 1] = 1 |
| >>> dense.to_sparse_bsc((2, 1), 1) |
| tensor(ccol_indices=tensor([0, 1, 2, 3]), |
| row_indices=tensor([0, 1, 0]), |
| values=tensor([[[[1.]], |
| |
| [[1.]]], |
| |
| |
| [[[1.]], |
| |
| [[1.]]], |
| |
| |
| [[[1.]], |
| |
| [[1.]]]]), size=(4, 3, 1), nnz=3, |
| layout=torch.sparse_bsc) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_mkldnn", |
| r""" |
| to_mkldnn() -> Tensor |
| Returns a copy of the tensor in ``torch.mkldnn`` layout. |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "trace", |
| r""" |
| trace() -> Tensor |
| |
| See :func:`torch.trace` |
| """, |
| ) |
| |
| add_docstr_all( |
| "transpose", |
| r""" |
| transpose(dim0, dim1) -> Tensor |
| |
| See :func:`torch.transpose` |
| """, |
| ) |
| |
| add_docstr_all( |
| "transpose_", |
| r""" |
| transpose_(dim0, dim1) -> Tensor |
| |
| In-place version of :meth:`~Tensor.transpose` |
| """, |
| ) |
| |
| add_docstr_all( |
| "triangular_solve", |
| r""" |
| triangular_solve(A, upper=True, transpose=False, unitriangular=False) -> (Tensor, Tensor) |
| |
| See :func:`torch.triangular_solve` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tril", |
| r""" |
| tril(diagonal=0) -> Tensor |
| |
| See :func:`torch.tril` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tril_", |
| r""" |
| tril_(diagonal=0) -> Tensor |
| |
| In-place version of :meth:`~Tensor.tril` |
| """, |
| ) |
| |
| add_docstr_all( |
| "triu", |
| r""" |
| triu(diagonal=0) -> Tensor |
| |
| See :func:`torch.triu` |
| """, |
| ) |
| |
| add_docstr_all( |
| "triu_", |
| r""" |
| triu_(diagonal=0) -> Tensor |
| |
| In-place version of :meth:`~Tensor.triu` |
| """, |
| ) |
| |
| add_docstr_all( |
| "true_divide", |
| r""" |
| true_divide(value) -> Tensor |
| |
| See :func:`torch.true_divide` |
| """, |
| ) |
| |
| add_docstr_all( |
| "true_divide_", |
| r""" |
| true_divide_(value) -> Tensor |
| |
| In-place version of :meth:`~Tensor.true_divide_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "trunc", |
| r""" |
| trunc() -> Tensor |
| |
| See :func:`torch.trunc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fix", |
| r""" |
| fix() -> Tensor |
| |
| See :func:`torch.fix`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "trunc_", |
| r""" |
| trunc_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.trunc` |
| """, |
| ) |
| |
| add_docstr_all( |
| "fix_", |
| r""" |
| fix_() -> Tensor |
| |
| In-place version of :meth:`~Tensor.fix` |
| """, |
| ) |
| |
| add_docstr_all( |
| "type", |
| r""" |
| type(dtype=None, non_blocking=False, **kwargs) -> str or Tensor |
| Returns the type if `dtype` is not provided, else casts this object to |
| the specified type. |
| |
| If this is already of the correct type, no copy is performed and the |
| original object is returned. |
| |
| Args: |
| dtype (dtype or string): The desired type |
| non_blocking (bool): If ``True``, and the source is in pinned memory |
| and destination is on the GPU or vice versa, the copy is performed |
| asynchronously with respect to the host. Otherwise, the argument |
| has no effect. |
| **kwargs: For compatibility, may contain the key ``async`` in place of |
| the ``non_blocking`` argument. The ``async`` arg is deprecated. |
| """, |
| ) |
| |
| add_docstr_all( |
| "type_as", |
| r""" |
| type_as(tensor) -> Tensor |
| |
| Returns this tensor cast to the type of the given tensor. |
| |
| This is a no-op if the tensor is already of the correct type. This is |
| equivalent to ``self.type(tensor.type())`` |
| |
| Args: |
| tensor (Tensor): the tensor which has the desired type |
| """, |
| ) |
| |
| add_docstr_all( |
| "unfold", |
| r""" |
| unfold(dimension, size, step) -> Tensor |
| |
| Returns a view of the original tensor which contains all slices of size :attr:`size` from |
| :attr:`self` tensor in the dimension :attr:`dimension`. |
| |
| Step between two slices is given by :attr:`step`. |
| |
| If `sizedim` is the size of dimension :attr:`dimension` for :attr:`self`, the size of |
| dimension :attr:`dimension` in the returned tensor will be |
| `(sizedim - size) / step + 1`. |
| |
| An additional dimension of size :attr:`size` is appended in the returned tensor. |
| |
| Args: |
| dimension (int): dimension in which unfolding happens |
| size (int): the size of each slice that is unfolded |
| step (int): the step between each slice |
| |
| Example:: |
| |
| >>> x = torch.arange(1., 8) |
| >>> x |
| tensor([ 1., 2., 3., 4., 5., 6., 7.]) |
| >>> x.unfold(0, 2, 1) |
| tensor([[ 1., 2.], |
| [ 2., 3.], |
| [ 3., 4.], |
| [ 4., 5.], |
| [ 5., 6.], |
| [ 6., 7.]]) |
| >>> x.unfold(0, 2, 2) |
| tensor([[ 1., 2.], |
| [ 3., 4.], |
| [ 5., 6.]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "uniform_", |
| r""" |
| uniform_(from=0, to=1, *, generator=None) -> Tensor |
| |
| Fills :attr:`self` tensor with numbers sampled from the continuous uniform |
| distribution: |
| |
| .. math:: |
| f(x) = \dfrac{1}{\text{to} - \text{from}} |
| """, |
| ) |
| |
| add_docstr_all( |
| "unsqueeze", |
| r""" |
| unsqueeze(dim) -> Tensor |
| |
| See :func:`torch.unsqueeze` |
| """, |
| ) |
| |
| add_docstr_all( |
| "unsqueeze_", |
| r""" |
| unsqueeze_(dim) -> Tensor |
| |
| In-place version of :meth:`~Tensor.unsqueeze` |
| """, |
| ) |
| |
| add_docstr_all( |
| "var", |
| r""" |
| var(dim=None, *, correction=1, keepdim=False) -> Tensor |
| |
| See :func:`torch.var` |
| """, |
| ) |
| |
| add_docstr_all( |
| "vdot", |
| r""" |
| vdot(other) -> Tensor |
| |
| See :func:`torch.vdot` |
| """, |
| ) |
| |
| add_docstr_all( |
| "view", |
| r""" |
| view(*shape) -> Tensor |
| |
| Returns a new tensor with the same data as the :attr:`self` tensor but of a |
| different :attr:`shape`. |
| |
| The returned tensor shares the same data and must have the same number |
| of elements, but may have a different size. For a tensor to be viewed, the new |
| view size must be compatible with its original size and stride, i.e., each new |
| view dimension must either be a subspace of an original dimension, or only span |
| across original dimensions :math:`d, d+1, \dots, d+k` that satisfy the following |
| contiguity-like condition that :math:`\forall i = d, \dots, d+k-1`, |
| |
| .. math:: |
| |
| \text{stride}[i] = \text{stride}[i+1] \times \text{size}[i+1] |
| |
| Otherwise, it will not be possible to view :attr:`self` tensor as :attr:`shape` |
| without copying it (e.g., via :meth:`contiguous`). When it is unclear whether a |
| :meth:`view` can be performed, it is advisable to use :meth:`reshape`, which |
| returns a view if the shapes are compatible, and copies (equivalent to calling |
| :meth:`contiguous`) otherwise. |
| |
| Args: |
| shape (torch.Size or int...): the desired size |
| |
| Example:: |
| |
| >>> x = torch.randn(4, 4) |
| >>> x.size() |
| torch.Size([4, 4]) |
| >>> y = x.view(16) |
| >>> y.size() |
| torch.Size([16]) |
| >>> z = x.view(-1, 8) # the size -1 is inferred from other dimensions |
| >>> z.size() |
| torch.Size([2, 8]) |
| |
| >>> a = torch.randn(1, 2, 3, 4) |
| >>> a.size() |
| torch.Size([1, 2, 3, 4]) |
| >>> b = a.transpose(1, 2) # Swaps 2nd and 3rd dimension |
| >>> b.size() |
| torch.Size([1, 3, 2, 4]) |
| >>> c = a.view(1, 3, 2, 4) # Does not change tensor layout in memory |
| >>> c.size() |
| torch.Size([1, 3, 2, 4]) |
| >>> torch.equal(b, c) |
| False |
| |
| |
| .. method:: view(dtype) -> Tensor |
| :noindex: |
| |
| Returns a new tensor with the same data as the :attr:`self` tensor but of a |
| different :attr:`dtype`. |
| |
| If the element size of :attr:`dtype` is different than that of ``self.dtype``, |
| then the size of the last dimension of the output will be scaled |
| proportionally. For instance, if :attr:`dtype` element size is twice that of |
| ``self.dtype``, then each pair of elements in the last dimension of |
| :attr:`self` will be combined, and the size of the last dimension of the output |
| will be half that of :attr:`self`. If :attr:`dtype` element size is half that |
| of ``self.dtype``, then each element in the last dimension of :attr:`self` will |
| be split in two, and the size of the last dimension of the output will be |
| double that of :attr:`self`. For this to be possible, the following conditions |
| must be true: |
| |
| * ``self.dim()`` must be greater than 0. |
| * ``self.stride(-1)`` must be 1. |
| |
| Additionally, if the element size of :attr:`dtype` is greater than that of |
| ``self.dtype``, the following conditions must be true as well: |
| |
| * ``self.size(-1)`` must be divisible by the ratio between the element |
| sizes of the dtypes. |
| * ``self.storage_offset()`` must be divisible by the ratio between the |
| element sizes of the dtypes. |
| * The strides of all dimensions, except the last dimension, must be |
| divisible by the ratio between the element sizes of the dtypes. |
| |
| If any of the above conditions are not met, an error is thrown. |
| |
| .. warning:: |
| |
| This overload is not supported by TorchScript, and using it in a Torchscript |
| program will cause undefined behavior. |
| |
| |
| Args: |
| dtype (:class:`torch.dtype`): the desired dtype |
| |
| Example:: |
| |
| >>> x = torch.randn(4, 4) |
| >>> x |
| tensor([[ 0.9482, -0.0310, 1.4999, -0.5316], |
| [-0.1520, 0.7472, 0.5617, -0.8649], |
| [-2.4724, -0.0334, -0.2976, -0.8499], |
| [-0.2109, 1.9913, -0.9607, -0.6123]]) |
| >>> x.dtype |
| torch.float32 |
| |
| >>> y = x.view(torch.int32) |
| >>> y |
| tensor([[ 1064483442, -1124191867, 1069546515, -1089989247], |
| [-1105482831, 1061112040, 1057999968, -1084397505], |
| [-1071760287, -1123489973, -1097310419, -1084649136], |
| [-1101533110, 1073668768, -1082790149, -1088634448]], |
| dtype=torch.int32) |
| >>> y[0, 0] = 1000000000 |
| >>> x |
| tensor([[ 0.0047, -0.0310, 1.4999, -0.5316], |
| [-0.1520, 0.7472, 0.5617, -0.8649], |
| [-2.4724, -0.0334, -0.2976, -0.8499], |
| [-0.2109, 1.9913, -0.9607, -0.6123]]) |
| |
| >>> x.view(torch.cfloat) |
| tensor([[ 0.0047-0.0310j, 1.4999-0.5316j], |
| [-0.1520+0.7472j, 0.5617-0.8649j], |
| [-2.4724-0.0334j, -0.2976-0.8499j], |
| [-0.2109+1.9913j, -0.9607-0.6123j]]) |
| >>> x.view(torch.cfloat).size() |
| torch.Size([4, 2]) |
| |
| >>> x.view(torch.uint8) |
| tensor([[ 0, 202, 154, 59, 182, 243, 253, 188, 185, 252, 191, 63, 240, 22, |
| 8, 191], |
| [227, 165, 27, 190, 128, 72, 63, 63, 146, 203, 15, 63, 22, 106, |
| 93, 191], |
| [205, 59, 30, 192, 112, 206, 8, 189, 7, 95, 152, 190, 12, 147, |
| 89, 191], |
| [ 43, 246, 87, 190, 235, 226, 254, 63, 111, 240, 117, 191, 177, 191, |
| 28, 191]], dtype=torch.uint8) |
| >>> x.view(torch.uint8).size() |
| torch.Size([4, 16]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "view_as", |
| r""" |
| view_as(other) -> Tensor |
| |
| View this tensor as the same size as :attr:`other`. |
| ``self.view_as(other)`` is equivalent to ``self.view(other.size())``. |
| |
| Please see :meth:`~Tensor.view` for more information about ``view``. |
| |
| Args: |
| other (:class:`torch.Tensor`): The result tensor has the same size |
| as :attr:`other`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "expand", |
| r""" |
| expand(*sizes) -> Tensor |
| |
| Returns a new view of the :attr:`self` tensor with singleton dimensions expanded |
| to a larger size. |
| |
| Passing -1 as the size for a dimension means not changing the size of |
| that dimension. |
| |
| Tensor can be also expanded to a larger number of dimensions, and the |
| new ones will be appended at the front. For the new dimensions, the |
| size cannot be set to -1. |
| |
| Expanding a tensor does not allocate new memory, but only creates a |
| new view on the existing tensor where a dimension of size one is |
| expanded to a larger size by setting the ``stride`` to 0. Any dimension |
| of size 1 can be expanded to an arbitrary value without allocating new |
| memory. |
| |
| Args: |
| *sizes (torch.Size or int...): the desired expanded size |
| |
| .. warning:: |
| |
| More than one element of an expanded tensor may refer to a single |
| memory location. As a result, in-place operations (especially ones that |
| are vectorized) may result in incorrect behavior. If you need to write |
| to the tensors, please clone them first. |
| |
| Example:: |
| |
| >>> x = torch.tensor([[1], [2], [3]]) |
| >>> x.size() |
| torch.Size([3, 1]) |
| >>> x.expand(3, 4) |
| tensor([[ 1, 1, 1, 1], |
| [ 2, 2, 2, 2], |
| [ 3, 3, 3, 3]]) |
| >>> x.expand(-1, 4) # -1 means not changing the size of that dimension |
| tensor([[ 1, 1, 1, 1], |
| [ 2, 2, 2, 2], |
| [ 3, 3, 3, 3]]) |
| """, |
| ) |
| |
| add_docstr_all( |
| "expand_as", |
| r""" |
| expand_as(other) -> Tensor |
| |
| Expand this tensor to the same size as :attr:`other`. |
| ``self.expand_as(other)`` is equivalent to ``self.expand(other.size())``. |
| |
| Please see :meth:`~Tensor.expand` for more information about ``expand``. |
| |
| Args: |
| other (:class:`torch.Tensor`): The result tensor has the same size |
| as :attr:`other`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "sum_to_size", |
| r""" |
| sum_to_size(*size) -> Tensor |
| |
| Sum ``this`` tensor to :attr:`size`. |
| :attr:`size` must be broadcastable to ``this`` tensor size. |
| |
| Args: |
| size (int...): a sequence of integers defining the shape of the output tensor. |
| """, |
| ) |
| |
| |
| add_docstr_all( |
| "zero_", |
| r""" |
| zero_() -> Tensor |
| |
| Fills :attr:`self` tensor with zeros. |
| """, |
| ) |
| |
| add_docstr_all( |
| "matmul", |
| r""" |
| matmul(tensor2) -> Tensor |
| |
| See :func:`torch.matmul` |
| """, |
| ) |
| |
| add_docstr_all( |
| "chunk", |
| r""" |
| chunk(chunks, dim=0) -> List of Tensors |
| |
| See :func:`torch.chunk` |
| """, |
| ) |
| |
| add_docstr_all( |
| "unsafe_chunk", |
| r""" |
| unsafe_chunk(chunks, dim=0) -> List of Tensors |
| |
| See :func:`torch.unsafe_chunk` |
| """, |
| ) |
| |
| add_docstr_all( |
| "unsafe_split", |
| r""" |
| unsafe_split(split_size, dim=0) -> List of Tensors |
| |
| See :func:`torch.unsafe_split` |
| """, |
| ) |
| |
| add_docstr_all( |
| "tensor_split", |
| r""" |
| tensor_split(indices_or_sections, dim=0) -> List of Tensors |
| |
| See :func:`torch.tensor_split` |
| """, |
| ) |
| |
| add_docstr_all( |
| "hsplit", |
| r""" |
| hsplit(split_size_or_sections) -> List of Tensors |
| |
| See :func:`torch.hsplit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "vsplit", |
| r""" |
| vsplit(split_size_or_sections) -> List of Tensors |
| |
| See :func:`torch.vsplit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "dsplit", |
| r""" |
| dsplit(split_size_or_sections) -> List of Tensors |
| |
| See :func:`torch.dsplit` |
| """, |
| ) |
| |
| add_docstr_all( |
| "stft", |
| r""" |
| stft(frame_length, hop, fft_size=None, return_onesided=True, window=None, pad_end=0) -> Tensor |
| |
| See :func:`torch.stft` |
| """, |
| ) |
| |
| add_docstr_all( |
| "istft", |
| r""" |
| istft(n_fft, hop_length=None, win_length=None, window=None, |
| center=True, normalized=False, onesided=True, length=None) -> Tensor |
| |
| See :func:`torch.istft` |
| """, |
| ) |
| |
| add_docstr_all( |
| "det", |
| r""" |
| det() -> Tensor |
| |
| See :func:`torch.det` |
| """, |
| ) |
| |
| add_docstr_all( |
| "where", |
| r""" |
| where(condition, y) -> Tensor |
| |
| ``self.where(condition, y)`` is equivalent to ``torch.where(condition, self, y)``. |
| See :func:`torch.where` |
| """, |
| ) |
| |
| add_docstr_all( |
| "logdet", |
| r""" |
| logdet() -> Tensor |
| |
| See :func:`torch.logdet` |
| """, |
| ) |
| |
| add_docstr_all( |
| "slogdet", |
| r""" |
| slogdet() -> (Tensor, Tensor) |
| |
| See :func:`torch.slogdet` |
| """, |
| ) |
| |
| add_docstr_all( |
| "unbind", |
| r""" |
| unbind(dim=0) -> seq |
| |
| See :func:`torch.unbind` |
| """, |
| ) |
| |
| add_docstr_all( |
| "pin_memory", |
| r""" |
| pin_memory() -> Tensor |
| |
| Copies the tensor to pinned memory, if it's not already pinned. |
| """, |
| ) |
| |
| add_docstr_all( |
| "pinverse", |
| r""" |
| pinverse() -> Tensor |
| |
| See :func:`torch.pinverse` |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_add", |
| r""" |
| index_add(dim, index, source, *, alpha=1) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.index_add_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_copy", |
| r""" |
| index_copy(dim, index, tensor2) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.index_copy_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "index_fill", |
| r""" |
| index_fill(dim, index, value) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.index_fill_`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "scatter", |
| r""" |
| scatter(dim, index, src) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.scatter_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "scatter_add", |
| r""" |
| scatter_add(dim, index, src) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.scatter_add_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "scatter_reduce", |
| r""" |
| scatter_reduce(dim, index, src, reduce, *, include_self=True) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.scatter_reduce_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "masked_scatter", |
| r""" |
| masked_scatter(mask, tensor) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.masked_scatter_` |
| |
| .. note:: |
| |
| The inputs :attr:`self` and :attr:`mask` |
| :ref:`broadcast <broadcasting-semantics>`. |
| |
| Example: |
| |
| >>> self = torch.tensor([0, 0, 0, 0, 0]) |
| >>> mask = torch.tensor([[0, 0, 0, 1, 1], [1, 1, 0, 1, 1]], dtype=torch.bool) |
| >>> source = torch.tensor([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) |
| >>> self.masked_scatter(mask, source) |
| tensor([[0, 0, 0, 0, 1], |
| [2, 3, 0, 4, 5]]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "xlogy", |
| r""" |
| xlogy(other) -> Tensor |
| |
| See :func:`torch.xlogy` |
| """, |
| ) |
| |
| add_docstr_all( |
| "xlogy_", |
| r""" |
| xlogy_(other) -> Tensor |
| |
| In-place version of :meth:`~Tensor.xlogy` |
| """, |
| ) |
| |
| add_docstr_all( |
| "masked_fill", |
| r""" |
| masked_fill(mask, value) -> Tensor |
| |
| Out-of-place version of :meth:`torch.Tensor.masked_fill_` |
| """, |
| ) |
| |
| add_docstr_all( |
| "grad", |
| r""" |
| This attribute is ``None`` by default and becomes a Tensor the first time a call to |
| :func:`backward` computes gradients for ``self``. |
| The attribute will then contain the gradients computed and future calls to |
| :func:`backward` will accumulate (add) gradients into it. |
| """, |
| ) |
| |
| add_docstr_all( |
| "retain_grad", |
| r""" |
| retain_grad() -> None |
| |
| Enables this Tensor to have their :attr:`grad` populated during |
| :func:`backward`. This is a no-op for leaf tensors. |
| """, |
| ) |
| |
| add_docstr_all( |
| "retains_grad", |
| r""" |
| Is ``True`` if this Tensor is non-leaf and its :attr:`grad` is enabled to be |
| populated during :func:`backward`, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "requires_grad", |
| r""" |
| Is ``True`` if gradients need to be computed for this Tensor, ``False`` otherwise. |
| |
| .. note:: |
| |
| The fact that gradients need to be computed for a Tensor do not mean that the :attr:`grad` |
| attribute will be populated, see :attr:`is_leaf` for more details. |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_leaf", |
| r""" |
| All Tensors that have :attr:`requires_grad` which is ``False`` will be leaf Tensors by convention. |
| |
| For Tensors that have :attr:`requires_grad` which is ``True``, they will be leaf Tensors if they were |
| created by the user. This means that they are not the result of an operation and so |
| :attr:`grad_fn` is None. |
| |
| Only leaf Tensors will have their :attr:`grad` populated during a call to :func:`backward`. |
| To get :attr:`grad` populated for non-leaf Tensors, you can use :func:`retain_grad`. |
| |
| Example:: |
| |
| >>> a = torch.rand(10, requires_grad=True) |
| >>> a.is_leaf |
| True |
| >>> b = torch.rand(10, requires_grad=True).cuda() |
| >>> b.is_leaf |
| False |
| # b was created by the operation that cast a cpu Tensor into a cuda Tensor |
| >>> c = torch.rand(10, requires_grad=True) + 2 |
| >>> c.is_leaf |
| False |
| # c was created by the addition operation |
| >>> d = torch.rand(10).cuda() |
| >>> d.is_leaf |
| True |
| # d does not require gradients and so has no operation creating it (that is tracked by the autograd engine) |
| >>> e = torch.rand(10).cuda().requires_grad_() |
| >>> e.is_leaf |
| True |
| # e requires gradients and has no operations creating it |
| >>> f = torch.rand(10, requires_grad=True, device="cuda") |
| >>> f.is_leaf |
| True |
| # f requires grad, has no operation creating it |
| |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "names", |
| r""" |
| Stores names for each of this tensor's dimensions. |
| |
| ``names[idx]`` corresponds to the name of tensor dimension ``idx``. |
| Names are either a string if the dimension is named or ``None`` if the |
| dimension is unnamed. |
| |
| Dimension names may contain characters or underscore. Furthermore, a dimension |
| name must be a valid Python variable name (i.e., does not start with underscore). |
| |
| Tensors may not have two named dimensions with the same name. |
| |
| .. warning:: |
| The named tensor API is experimental and subject to change. |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_cuda", |
| r""" |
| Is ``True`` if the Tensor is stored on the GPU, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_cpu", |
| r""" |
| Is ``True`` if the Tensor is stored on the CPU, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_xla", |
| r""" |
| Is ``True`` if the Tensor is stored on an XLA device, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_ipu", |
| r""" |
| Is ``True`` if the Tensor is stored on the IPU, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_xpu", |
| r""" |
| Is ``True`` if the Tensor is stored on the XPU, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_quantized", |
| r""" |
| Is ``True`` if the Tensor is quantized, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_meta", |
| r""" |
| Is ``True`` if the Tensor is a meta tensor, ``False`` otherwise. Meta tensors |
| are like normal tensors, but they carry no data. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_mps", |
| r""" |
| Is ``True`` if the Tensor is stored on the MPS device, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_sparse", |
| r""" |
| Is ``True`` if the Tensor uses sparse COO storage layout, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "is_sparse_csr", |
| r""" |
| Is ``True`` if the Tensor uses sparse CSR storage layout, ``False`` otherwise. |
| """, |
| ) |
| |
| add_docstr_all( |
| "device", |
| r""" |
| Is the :class:`torch.device` where this Tensor is. |
| """, |
| ) |
| |
| add_docstr_all( |
| "ndim", |
| r""" |
| Alias for :meth:`~Tensor.dim()` |
| """, |
| ) |
| |
| add_docstr_all( |
| "itemsize", |
| r""" |
| Alias for :meth:`~Tensor.element_size()` |
| """, |
| ) |
| |
| add_docstr_all( |
| "nbytes", |
| r""" |
| Returns the number of bytes consumed by the "view" of elements of the Tensor |
| if the Tensor does not use sparse storage layout. |
| Defined to be :meth:`~Tensor.numel()` * :meth:`~Tensor.element_size()` |
| """, |
| ) |
| |
| add_docstr_all( |
| "T", |
| r""" |
| Returns a view of this tensor with its dimensions reversed. |
| |
| If ``n`` is the number of dimensions in ``x``, |
| ``x.T`` is equivalent to ``x.permute(n-1, n-2, ..., 0)``. |
| |
| .. warning:: |
| The use of :func:`Tensor.T` on tensors of dimension other than 2 to reverse their shape |
| is deprecated and it will throw an error in a future release. Consider :attr:`~.Tensor.mT` |
| to transpose batches of matrices or `x.permute(*torch.arange(x.ndim - 1, -1, -1))` to reverse |
| the dimensions of a tensor. |
| """, |
| ) |
| |
| add_docstr_all( |
| "H", |
| r""" |
| Returns a view of a matrix (2-D tensor) conjugated and transposed. |
| |
| ``x.H`` is equivalent to ``x.transpose(0, 1).conj()`` for complex matrices and |
| ``x.transpose(0, 1)`` for real matrices. |
| |
| .. seealso:: |
| |
| :attr:`~.Tensor.mH`: An attribute that also works on batches of matrices. |
| """, |
| ) |
| |
| add_docstr_all( |
| "mT", |
| r""" |
| Returns a view of this tensor with the last two dimensions transposed. |
| |
| ``x.mT`` is equivalent to ``x.transpose(-2, -1)``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "mH", |
| r""" |
| Accessing this property is equivalent to calling :func:`adjoint`. |
| """, |
| ) |
| |
| add_docstr_all( |
| "adjoint", |
| r""" |
| adjoint() -> Tensor |
| |
| Alias for :func:`adjoint` |
| """, |
| ) |
| |
| add_docstr_all( |
| "real", |
| r""" |
| Returns a new tensor containing real values of the :attr:`self` tensor for a complex-valued input tensor. |
| The returned tensor and :attr:`self` share the same underlying storage. |
| |
| Returns :attr:`self` if :attr:`self` is a real-valued tensor tensor. |
| |
| Example:: |
| >>> x=torch.randn(4, dtype=torch.cfloat) |
| >>> x |
| tensor([(0.3100+0.3553j), (-0.5445-0.7896j), (-1.6492-0.0633j), (-0.0638-0.8119j)]) |
| >>> x.real |
| tensor([ 0.3100, -0.5445, -1.6492, -0.0638]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "imag", |
| r""" |
| Returns a new tensor containing imaginary values of the :attr:`self` tensor. |
| The returned tensor and :attr:`self` share the same underlying storage. |
| |
| .. warning:: |
| :func:`imag` is only supported for tensors with complex dtypes. |
| |
| Example:: |
| >>> x=torch.randn(4, dtype=torch.cfloat) |
| >>> x |
| tensor([(0.3100+0.3553j), (-0.5445-0.7896j), (-1.6492-0.0633j), (-0.0638-0.8119j)]) |
| >>> x.imag |
| tensor([ 0.3553, -0.7896, -0.0633, -0.8119]) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "as_subclass", |
| r""" |
| as_subclass(cls) -> Tensor |
| |
| Makes a ``cls`` instance with the same data pointer as ``self``. Changes |
| in the output mirror changes in ``self``, and the output stays attached |
| to the autograd graph. ``cls`` must be a subclass of ``Tensor``. |
| """, |
| ) |
| |
| add_docstr_all( |
| "crow_indices", |
| r""" |
| crow_indices() -> IntTensor |
| |
| Returns the tensor containing the compressed row indices of the :attr:`self` |
| tensor when :attr:`self` is a sparse CSR tensor of layout ``sparse_csr``. |
| The ``crow_indices`` tensor is strictly of shape (:attr:`self`.size(0) + 1) |
| and of type ``int32`` or ``int64``. When using MKL routines such as sparse |
| matrix multiplication, it is necessary to use ``int32`` indexing in order |
| to avoid downcasting and potentially losing information. |
| |
| Example:: |
| >>> csr = torch.eye(5,5).to_sparse_csr() |
| >>> csr.crow_indices() |
| tensor([0, 1, 2, 3, 4, 5], dtype=torch.int32) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "col_indices", |
| r""" |
| col_indices() -> IntTensor |
| |
| Returns the tensor containing the column indices of the :attr:`self` |
| tensor when :attr:`self` is a sparse CSR tensor of layout ``sparse_csr``. |
| The ``col_indices`` tensor is strictly of shape (:attr:`self`.nnz()) |
| and of type ``int32`` or ``int64``. When using MKL routines such as sparse |
| matrix multiplication, it is necessary to use ``int32`` indexing in order |
| to avoid downcasting and potentially losing information. |
| |
| Example:: |
| >>> csr = torch.eye(5,5).to_sparse_csr() |
| >>> csr.col_indices() |
| tensor([0, 1, 2, 3, 4], dtype=torch.int32) |
| |
| """, |
| ) |
| |
| add_docstr_all( |
| "to_padded_tensor", |
| r""" |
| to_padded_tensor(padding, output_size=None) -> Tensor |
| See :func:`to_padded_tensor` |
| """, |
| ) |