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
    
  • 用法
    返回大小为 ⌈ end − start step ⌉ \left\lceil \frac{\text{end} - \text{start}}{\text{step}} \right\rceil stependstart一维张量,其值介于区间 [ start , end ) \lbrack\text{start}, \text{end}\rparen [start,end) ,以 step \text{step} step 为步长等间隔取值

  • 参数说明

    参数类型说明
    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
  • 代码示例

        >>> 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.sum()` 函数详解 `torch.sum()` 是用于计算张量沿指定维度之和的函数[^1]。此函数支持两种调用方式: #### 形式一:无参数调用 当不提供任何额外参数时,该方法会返回输入张量所有元素的总和。 ```python import torch tensor_example = torch.tensor([1., 2., 3., 4.]) total_sum = torch.sum(tensor_example) print(total_sum) # 输出 tensor(10.) ``` #### 形式二:带参数调用 可以指定沿着哪个维度求和以及是否保留原有维度结构等选项[^2]。 - **dim (int or tuple of ints)**: 指定要缩减的轴/维度;如果给定了多个维度,则这些维度都会被压缩掉。 - **keepdim (bool, optional)**: 如果设置为 True,在输出形状中将保持减少的那一维大小为1,默认情况下会被移除。 - **dtype (:class:`torch.dtype`, optional)**: 可选的数据类型转换,这有助于防止数值溢出等问题发生。 下面是一个具体例子来展示如何利用上述参数控制求和操作的结果: ```python multi_dim_tensor = torch.arange(start=0, end=8).view((2, 4)) sum_across_columns = torch.sum(multi_dim_tensor, dim=1) print(f'Original Tensor:\n{multi_dim_tensor}') print(f'Sum across columns:\n{sum_across_columns}') # Output: # Original Tensor: # tensor([[0, 1, 2, 3], # [4, 5, 6, 7]]) # Sum across columns: # tensor([ 6, 22]) # 使用 keepdim 参数的例子 sum_with_keepdims = torch.sum(multi_dim_tensor, dim=1, keepdim=True) print(sum_with_keepdims.shape) # 输出 torch.Size([2, 1]) ``` 通过这种方式,可以根据实际需求灵活调整 `torch.sum()` 的行为以适应不同的应用场景[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_湘江夜话_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值