天天看點

pytorch argmax_【科研之路】pytorch 張量

張量Tensor

pytorch argmax_【科研之路】pytorch 張量

tensor是pytorch的一種特殊的資料格式,它表示多元數組概括了所有數學意義和計算機意義上的向量形式。

Rank/shape概念
  • Rank:表示我們需要多少個索引來通路或引用張量資料結構中包含的元素,即代表次元數
  • Shape(size):告訴我們每個軸的長度,即每個軸上有多少個資料

Rank=len(shape) Shape是很重要的東西,因為它包含了rank,size的所有東西,一般隻會用它來分析

dtype

建立一個張量的時候必須聲明類型,如果你有多個卡還需要聲明device

pytorch argmax_【科研之路】pytorch 張量
code
# array轉tensor
           

張量的運算

reshape

你可以将一個張量的shape改變成任意形狀,前提隻要它們的乘積相同,-1表示讓Pytorch自動計算最後一個位置。

squeeze

去掉所有維數為1的的次元,對不為1的次元沒有影響,不需要指定次元

t 
           
unsqueeze

對資料次元進行擴充。給指定位置加上維數為一的次元,需要指定次元(一定是會

增加一個1次元

)

t 
           
concat
  • 沿着 已存在 的軸連接配接多個tensor,把對應次元X所代表的張量進行合并
  • 所有的tensor大小一緻,除了需要連接配接那個次元,tensor不能為空
# dim=1的時候相當于
           
stack
  • 增加新的次元連接配接多個tensor
  • 會先将 原始資料次元擴充一維(unsqueeze) ,然後再按照次元進行拼接,具體拼接操作同torch.cat類似
t 
           

張量廣播

兩個張量從

尾部

的次元開始進行比對,次元尺寸必須滿足以下一個條件方可廣播:

  • ​ 或者 相等
  • ​ 或者 其中一個張量的次元尺寸為 1
  • ​ 或者 其中一個張量不存在這個次元
# 示例1:相同形狀的張量總是可廣播的,因為總能滿足以上規則。
           

張量自身元素運算

max函數就是把指定的Xdim合并為1然後去除,合并元素為最大值,保留其他維不變

t
           

整理來源

李小偉:torch的廣播機制(broadcast mechanism)​zhuanlan.zhihu.com

pytorch argmax_【科研之路】pytorch 張量