找回密码
 立即注册
首页 业界区 安全 Torch中的tensor size

Torch中的tensor size

戟铵腴 5 天前
技术背景

其实对于市面上大多数的深度学习框架来说,或者只是一个numpy来说,要获取一个高维度矩阵的大小,只需要调用其size函数即可。但是PyTorch框架中有所不同,所以这里单独介绍一下如何在PyTorch中获取一个高维tensor的大小,或者说元素总数。
代码实例

首先我们演示一下普通的numpy框架下如何去获取高维tensor的大小:
  1. In [1]: import numpy as np
  2. In [2]: a = np.arange(10)
  3. In [3]: a.size
  4. Out[3]: 10
  5. In [4]: import torch as tc
  6. In [5]: b = tc.arange(10)
  7. In [6]: b.size
  8. Out[6]: <function Tensor.size>
  9. In [7]: b.size()
  10. Out[7]: torch.Size([10])
  11. In [8]: b.size(dim=0)
  12. Out[8]: 10
复制代码
在这个例子中我们发现,如果在PyTorch中去调用同样的size函数的时候,只能逐个维度的进行输出。也就是说,PyTorch所理解的size,是基于维度的size。那么如果我们需要在PyTorch中去获取一个高维tensor的大小,应该如何操作呢?如果不知道的情况下,只能用size函数获取每一个维度的大小之后,去做一个累计乘积。但其实PyTorch提供了一个numel函数,可以像其他框架的size一样去获取一个高维tensor的大小:
  1. In [1]: import torch as tc
  2. In [2]: b = tc.arange(60)
  3. In [3]: b = b.reshape((3,4,5))
  4. In [4]: b.shape
  5. Out[4]: torch.Size([3, 4, 5])
  6. In [6]: b.numel()
  7. Out[6]: 60
复制代码
总结概要

本文重点介绍了一下如何在PyTorch中去计算一个高维tensor的大小,也就是元素的总数。在其他框架中我们需要使用size函数来获取,而在PyTorch框架中这个接口被调整为numel,本文给出了两个具体代码示例。
版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/tensor-size.html
作者ID:DechinPhy
更多原著文章:https://www.cnblogs.com/dechinphy/
请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册