概览
rand(...)
rand(*size, *, generator=None, out=None, dtype=None, layout=torch.strided,
device=None, requires_grad=False, pin_memory=False) -> Tensor
-
开始的rand(…) 中的… 是:看到…,例如在文档注释中,
它可能是为了简洁地表示函数还能接受更多的参数或有进一步的细节,
而未在该摘要中全部展开列出。 -
在函数定义中,-> Tensor表示该函数的返回类型。
这是一种类型注解,用来说明函数执行后会返回一个什么样的对象。 -
在函数签名
rand(*size, *, generator=None, ...)
中,星号(*)的出现位置
具有特殊的语法意义。这里的星号并不是直接关联到某个参数,而是作为分隔符使用,
它的作用是标记参数分界点,表明之后的参数必须以关键字参数的形式传递。
在星号(*)之前,如*size
,表示的是可变数量的位置参数,
可以接收任意数量的非关键字(位置)参数。
星号(*)之后的部分,比如generator=None
,表示这些参数只能以关键字形式
(keyword argument)传递。
也就是说,当你调用这个函数时,必须明确指定参数名,而不能仅仅依靠参数的位置。
这样做可以提高代码的可读性和清晰度,尤其是在有多个可选参数的情况下。
所以,这里的星号(*)是一个语法标记,用来区分位置参数和关键字参数,
确保在它之后的参数在调用函数时必须通过参数名指定。
英文版
rand(…)
rand(size, , generator=None, out=None, dtype=None, layout=torch.strided,
device=None, requires_grad=False, pin_memory=False) -> Tensor
Returns a tensor filled with random numbers from a uniform distribution
on the interval :math:`[0, 1)`
The shape of the tensor is defined by the variable argument :attr:`size`.
Args:
size (int...): a sequence of integers defining the shape of the
output tensor.
Can be a variable number of arguments or a collection
like a list or tuple.
Keyword args:
generator (:class:`torch.Generator`, optional): a pseudorandom number
generator for sampling out (Tensor, optional): the output tensor.
dtype (:class:`torch.dtype`, optional): the desired data type of
returned tensor. Default: if ``None``, uses a global default
(see :func:`torch.set_default_dtype`).
layout (:class:`torch.layout`, optional): the desired layout of
returned Tensor. Default: ``torch.strided``.
device (:class:`torch.device`, optional): the desired device of
returned tensor. Default: if ``None``, uses the current device
for the default tensor type (see :func:`torch.set_default_device`).
:attr:`device` will be the CPU. for CPU tensor types and the current
CUDA device for CUDA tensor types.
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``.
Example::
>>> torch.rand(4)
tensor([ 0.5204, 0.2503, 0.3525, 0.5673])
>>> torch.rand(2, 3)
tensor([[ 0.8237, 0.5781, 0.6879],
[ 0.3816, 0.7249, 0.0998]])