给网友朋友们带来一篇相关的编程文章,网友惠凯捷根据主题投稿了本篇教程内容,涉及到pytorch、torch.arange函数、torch.arange()、torch.arange函数、PyTorch Torch.arange函数相关内容,已被990网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。
PyTorch Torch.arange函数
torch.arange函数详解
官方文档:torch.arange
函数原型
arange(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) -> Tensor
用法
返回大小为的一维张量,其值介于区间 为步长等间隔取值
参数说明
参数 | 类型 | 说明 |
---|---|---|
start | Number | 起始值,默认值:0 |
end | Number | 结束值 |
step | Number | 步长,默认值:1 |
关键字参数
关键字参数 | 类型 | 说明 |
---|---|---|
out | Tensor | 输出张量 |
dtype | torch.dtype | 期望的返回张量的数据类型。默认值:如果是None ,则使用全局默认值。如果未给出 dtype,则从其他输入参数推断数据类型。如果 start、end 或 stop 中的任何一个是浮点数,则 dtype 被推断为默认值,参见 get_default_dtype()。否则,dtype 被推断为 torch.int64 |
layout | torch.layout | 返回张量的期望 layout。默认值:torch.strided |
device | torch.device | 返回张量的期望设备。默认值:如果是None ,则使用当前设备作为默认张量类型,参见torch.set_default_tensor_type()。对于 CPU 类型的张量,则 device 是 CPU ,若是 CUDA 类型的张量,则 device 是当前的 CUDA 设备 |
requires_grad | bool | autograd 是否记录返回张量上所作的操作。默认值:False |
代码示例
>>> torch.arange(5) # 默认以 0 为起点 tensor([ 0, 1, 2, 3, 4]) >>> torch.arange(1, 4) # 默认间隔为 1 tensor([ 1, 2, 3]) >>> torch.arange(1, 2.5, 0.5) # 指定间隔 0.5 tensor([ 1.0000, 1.5000, 2.0000])
pyTorch中torch.range()和torch.arange()的区别
torch.range()和torch.arange()的区别
x = torch.range(-8, 8) y = torch.arange(-8, 8) print(x, x.dtype) print(y, y.dtype)
output:
tensor([-8., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.,6., 7., 8.]) torch.float32
tensor([-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]) torch.int64
可以看到,torch.range()的范围是[-8, 8],类型为torch.float32
torch.arange()的范围是[-8, 8),类型为torch.int64
在梯度设置时会出现错误:
x = torch.range(-8, 8, 1, requires_grad=True) y = torch.arange(-8, 8, 1, requires_grad=True) print(x, x.dtype) print(y, y.dtype)
即只有当类型为float时才可设置requires_grad=True,故可将
y = torch.arange(-8, 8, 1, requires_grad=True)
改为以下,即手动改变数据类型即可。
y = torch.arange(-8.0, 8.0, 1.0, requires_grad=True)
output:
tensor([-8., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.,6., 7., 8.], requires_grad=True)
torch.float32
tensor([-8., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.,6., 7.], requires_grad=True)
torch.float32
总结
到此这篇关于PyTorch中Torch.arange函数的文章就介绍到这了,更多相关PyTorch Torch.arange函数内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!