tensor 增加維度 tensor維度變換

2021-10-13 08:55:55 字數 780 閱讀 6382

維度變換是tensorflow中的重要模組之一,前面mnist實戰模組我們使用了資料的壓平操作,它就是維度變換的應用之一。

在詳解維度變換的方法之前,這裡先介紹一下view(檢視)的概念。所謂view,簡單的可以理解成我們對乙個tensor不同維度關係的認識。舉個例子,乙個[ b,28,28,1 ]的tensor(可以理解為mnist資料集的一組),對於這樣一組,我們可以有一下幾種理解方式:

(1)按照物理裝置儲存結構,即一整行的方式(28*28)儲存,這一行有連續的784個資料,這種理解方式可以用[ b,28*28 ]表示

(2)按照原有結構儲存,即保留的行列關係,以28行28列的資料理解,這種方式可以用[ b,28,28 ]表示

(3)將分塊(比如上下兩部分),這種理解方式與第二種類似,只是將一張圖變為兩張,這種方式可以用[ b,2,14*28 ]表示

(4)增加channel通道,這種理解方式也與第二種類似,只是這種對rgb三色圖區別更明顯,可以用[ b,28 28,1 ]表示

通過維度的等價變換,就可以實現思維上view的轉換

維度變換的方式:

方式1:tf.reshape(可通過破壞維度之間的關係改變tensor的維度,但不會改變原有資料的儲存順序)

a = tf.random.normal([4,28,28,3])print(a.shape)print(tf.reshape(a,[4,784,3]).shape)print(tf.reshape(a,[4,-1,3]).shape)print(tf.reshape(a,[4,784*3]).shape)print(tf.reshape(

tensor的維度變換

expand與repeat用法 t 轉置 transpose轉置 permute函式 例子 a torch.rand 4,1,28,28 a.view 4,28 28 例子2 a torch.rand 4,1,28,28 a.view 4 1,28,28 表示我們現在只關注feature map這個...

PyTorch中張量 tensor 的維度變換

example in 1 x torch.rand 4,1,28,28 in 2 x.size out 2 torch.size 4,1,28,28 in 3 y x.view 4,28 28 in 4 y.size out 4 torch.size 4,784 in 5 y x.reshape 4...

Pytorch對多維Tensor按維度操作

記憶要點 dim 0 說明是處理行 dim 1 說明是處理列 keepdim true 保留處理的行 列的特徵 keepdim false 不保留處理的行 列的特徵 網上流傳的版本有很多,但是我們根據結果來說話。我的理解是哪個維度發生了變化就是處理的是哪個維度。if name main 模型引數初始...