技术背景
其实对于市面上大多数的深度学习框架来说,或者只是一个numpy来说,要获取一个高维度矩阵的大小,只需要调用其size函数即可。但是PyTorch框架中有所不同,所以这里单独介绍一下如何在PyTorch中获取一个高维tensor的大小,或者说元素总数。
代码实例
首先我们演示一下普通的numpy框架下如何去获取高维tensor的大小:
In [1]: import numpy as npIn [2]: a = np.arange(10)In [3]: a.size
Out[3]: 10In [4]: import torch as tcIn [5]: b = tc.arange(10)In [6]: b.size
Out[6]: <function Tensor.size>In [7]: b.size()
Out[7]: torch.Size([10])In [8]: b.size(dim=0)
Out[8]: 10
在这个例子中我们发现,如果在PyTorch中去调用同样的size函数的时候,只能逐个维度的进行输出。也就是说,PyTorch所理解的size,是基于维度的size。那么如果我们需要在PyTorch中去获取一个高维tensor的大小,应该如何操作呢?如果不知道的情况下,只能用size函数获取每一个维度的大小之后,去做一个累计乘积。但其实PyTorch提供了一个numel函数,可以像其他框架的size一样去获取一个高维tensor的大小:
In [1]: import torch as tcIn [2]: b = tc.arange(60)In [3]: b = b.reshape((3,4,5))In [4]: b.shape
Out[4]: torch.Size([3, 4, 5])In [6]: b.numel()
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