張量的軸的概念
如果從后向前訪問軸就是使用復數,如上圖所示
使用reshape函數改變張量的形狀
將形狀參數設置為-1,代表自動判斷長度
增加和刪除維度
增加維度
tf.expand_dims(input,axis)
- input:輸入的張量
- axis:操作的軸
效果就是在選定的軸上添加維度(相當於在選定的那個軸上面添加了一個括號,將那一維變成二維)
一個多維張量的例子
刪除維度
tf.squeeze(input,axis)
- input:輸入的張量
- axis:對應要刪除的維度
注:只能刪除長度為1的維度,如果沒有指定維度,默認刪除所有長度為1的維度
交換維度
tf.transpose(a,perm)
- a:用於交換維度的張量
- perm:用於設置軸的順序
在二維的情況下,可以視為是矩陣的轉置
二維的情況下
多維的情況下
拼接和分割
拼接張量
指定一組張量在某一個軸進行拼接
tf.concat(tensors,axis)
- tensors:用於拼接的張量
- axis:拼接的軸,也可以是負數,比如-1代表最后一個軸
分割張量
t1 = tf.split(value,num_or_size_splits,axis=0)
- value:待分割的張量
- num_or_size_splits:分割的方案,如果是一個數字x,則平均分割x份,如果是一個列表則按照列表中的數字的對應的比例進行分割
- axis:代表從哪個軸進行分割
- 返回的參數是分割后的張量列表
-
堆疊和分解
堆疊
堆疊和拼接是類似的 區別是是否增加了新的維度
tf.stack(values,axis)
- values:進行堆疊的張量
- axis:從哪一個軸進行堆疊
分解
分解是堆疊的逆運算