当前位置:   article > 正文

PyTorch中Torch.arange()函数详解

PyTorch中Torch.arange()函数详解

函数原型

arange(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) -> Tensor

 用法

返回大小为一维张量,其值介于区间 为步长等间隔取值

参数说明 

参数类型说明
startNumber起始值,默认值:0
endNumber结束值
stepNumber步长,默认值:1

关键字参数 

关键字参数类型说明
outTensor输出张量
dtypetorch.dtype期望的返回张量的数据类型。默认值:如果是None,则使用全局默认值。如果未给出 dtype,则从其他输入参数推断数据类型。如果 start、end 或 stop 中的任何一个是浮点数,则 dtype被推断为默认值,参见 get_default_dtype()。否则,dtype 被推断为 torch.int64
layouttorch.layout返回张量的期望 layout。默认值:torch.strided
devicetorch.device返回张量的期望设备。默认值:如果是None,则使用当前设备作为默认张量类型,参见torch.set_default_tensor_type()。对于 CPU 类型的张量,则 device 是 CPU ,若是 CUDA 类型的张量,则 device 是当前的 CUDA 设备
requires_gradboolautograd 是否记录返回张量上所作的操作。默认值:False        

代码示例 

 

  1. >>> torch.arange(5) # 默认以 0 为起点
  2. tensor([ 0, 1, 2, 3, 4])
  3. >>> torch.arange(1, 4) # 默认间隔为 1
  4. tensor([ 1, 2, 3])
  5. >>> torch.arange(1, 2.5, 0.5) # 指定间隔 0.5
  6. tensor([ 1.0000, 1.5000, 2.0000])

pyTorch中torch.range()和torch.arange()的区别

  1. x = torch.range(-8, 8)
  2. y = torch.arange(-8, 8)
  3. print(x, x.dtype)
  4. print(y, y.dtype)

输出

     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

在梯度设置时会出现错误:

  1. x = torch.range(-8, 8, 1, requires_grad=True)
  2. y = torch.arange(-8, 8, 1, requires_grad=True)
  3. print(x, x.dtype)
  4. 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) 

输出

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 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/547299
推荐阅读
相关标签
  

闽ICP备14008679号