pytorch 的 torch.arange() 函数详解:创建数值序列张量
本文将详细介绍 PyTorch 中 torch.arange() 函数的功能、参数以及使用方法,并辅以代码示例。torch.arange() 函数用于创建包含指定范围内的数值序列的张量。
函数签名:
torch.arange(start=0, end, step=1, *, out=None, dtype=None, layout=None, device=None, requires_grad=False)
参数:
- start (可选): 序列的起始值 (默认为 0)。可以是整数、浮点数、复数或布尔值,也可以是 0 维张量。必须小于等于 end。
- end (必需): 序列的结束值 (不包含在序列中)。可以是整数、浮点数、复数或布尔值,也可以是 0 维张量。必须大于等于 start。
- step (可选): 序列中元素之间的步长 (默认为 1)。必须大于 0。可以是整数、浮点数、复数或布尔值,也可以是 0 维张量。
- out (可选): 输出张量。必须使用 out= 指定。
- dtype (可选): 输出张量的类型。如果未指定,则根据 start、end 和 step 推断。对于浮点数,会使用 torch.get_default_dtype()。必须使用 dtype= 指定。
- layout (可选): 输出张量的布局。
- device (可选): 输出张量的设备。如果未指定,则使用 torch.get_default_device()。必须使用 device= 指定。
- requires_grad (可选): 指示是否需要计算梯度 (默认为 False)。必须使用 requires_grad= 指定。
返回值:
一个包含指定范围内的数值序列的一维张量。
代码示例:
import torch # 基本用法 torch.arange(5) # end=5, start=0, step=1 # tensor([0, 1, 2, 3, 4]) torch.arange(1, 5) # start=1, end=5, step=1 # tensor([1, 2, 3, 4]) torch.arange(1, 10, 2) # start=1, end=10, step=2 # tensor([1, 3, 5, 7, 9]) # 使用浮点数 torch.arange(1.0, 5.0, 0.5) # tensor([1.0000, 1.5000, 2.0000, 2.5000, 3.0000, 3.5000, 4.0000, 4.5000]) # 使用负数 torch.arange(-5, 5) # tensor([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]) # 使用张量作为参数 torch.arange(start=torch.tensor(1), end=torch.tensor(5)) # tensor([1, 2, 3, 4]) # 指定数据类型 torch.arange(5, dtype=torch.float32) # tensor([0., 1., 2., 3., 4.]) # 指定设备 (假设存在 CUDA 设备) torch.arange(5, device='cuda') # tensor([0, 1, 2, 3, 4], device='cuda:0') # requires_grad 参数 torch.arange(5, requires_grad=True) # tensor([0, 1, 2, 3, 4], requires_grad=True)
登录后复制
与 range() 函数的比较:
range() 函数与 arange() 类似,但 range() 已被弃用,建议使用 arange()。
注意: out、dtype、device 和 requires_grad 参数都需要使用关键字参数的形式指定。
希望这个详细的解释和示例能够帮助您理解和使用 PyTorch 的 torch.arange() 函数。 请记住查阅其他相关函数,例如 torch.linspace() 和 torch.logspace(),以进一步扩展您的 PyTorch 知识。
以上就是在 PyTorch 中排列的详细内容,更多请关注其它相关文章!