Torch中的tensor size

技术背景

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

代码实例

首先我们演示一下普通的numpy框架下如何去获取高维tensor的大小:

In [1]: import numpy as np

In [2]: a = np.arange(10)

In [3]: a.size
Out[3]: 10

In [4]: import torch as tc

In [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 tc

In [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

posted @ 2025-09-25 12:31  DECHIN  阅读(21)  评论(0)    收藏  举报