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,本文給出了兩個具體代碼示例。
版權聲明
本文首發鏈接為:http://www.rzrgm.cn/dechinphy/p/tensor-size.html
作者ID:DechinPhy
更多原著文章:http://www.rzrgm.cn/dechinphy/
請博主喝咖啡:http://www.rzrgm.cn/dechinphy/gallery/image/379634.html

本文重點介紹了一下如何在PyTorch中去計算一個高維tensor的大小,也就是元素的總數。在其他框架中我們需要使用size函數來獲取,而在PyTorch框架中這個接口被調整為numel,本文給出了兩個具體代碼示例。
浙公網安備 33010602011771號