[学习笔记] torch.tensor.size() 方法

torch 中,张量有一个方法是 size,通过查看声明可以看出 size 的参数和返回值:

@overload
def size(self) -> Size: ...
@overload
def size(self, dim: _int) -> _int: ...

通过构造一个张量,并对该张量使用 size 方法查看返回的结果:

torch.ones(1, 2, 3, 4).size()	   # torch.Size([1, 2, 3, 4])
torch.ones(1, 2, 3, 4).size(-4)    # 1
torch.ones(1, 2, 3, 4).size(-1)    # 4
torch.ones(1, 2, 3, 4).size(1)     # 2
torch.ones(1, 2, 3, 4).size(0)	   # 1

可以看出 size 在无参数的情况下,输出的是一个 Size 对象,内容为对应的张量的维度。当加入参数 dim 的时候,会直接输出一个 int 表示第 dim 个维度的值。

我的理解是,将 Size 对象视作一个元组,则 dim 与 Size[dim] 的效果是一样的:

@overload
def size(self) -> Size:
    return self.dimension    # 假设 self.dimension 是以 Size 对象形式存放的维度信息

@overload
def size(self, dim: _int) -> _int:
    return self.dimension[dim]    # 则 dim 的效果等同于直接返回 Size 对象的第 dim 个元素

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

虚叶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值