torch 的 unsqueeze用法
生活随笔
收集整理的這篇文章主要介紹了
torch 的 unsqueeze用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import torcha=torch.tensor([[3.0000, 3.0000],[3.0000, 4.0000],[3.6000, 3.0000],[3.5000, 3.0000]])
個(gè)人以為這個(gè)unsqueeze方法有點(diǎn)廢話,完全可以用reshape 實(shí)現(xiàn),雞肋!
a.reshape([a.shape[0],1,a.shape[1]])==a.unsqueeze(1)a.reshape([1,a.shape[0],1,a.shape[1]])==a.unsqueeze(0)a.reshape([a.shape[0],a.shape[1] ,1])==a.unsqueeze(2) a.reshape([a.shape[0],1,a.shape[1]])==a.unsqueeze(1) '''0 m ,n------> 1,m,n1 m ,n------> m,1,n2 m ,n------> m,n,2k m ,.....,n------> m,...,k,k+1,n ''' print('a=',a) print('a.shape=',a.shape) print('-'*30+'分割線'+'-'*30)print('a.unsqueeze(0).shape=',a.unsqueeze(0).shape)print('a.unsqueeze(0)=',a.unsqueeze(0))print('-'*30+'分割線'+'-'*30)print('a.unsqueeze(1).shape=',a.unsqueeze(1).shape)print('a.unsqueeze(1)=',a.unsqueeze(1))print('-'*30+'分割線'+'-'*30)print('a.unsqueeze(2).shape=',a.unsqueeze(2).shape)print('a.unsqueeze(2)=',a.unsqueeze(2))在這里是一個(gè)二位矩陣 可以在[0,1,2]三個(gè)維度上
a= tensor([[3.0000, 3.0000],[3.0000, 4.0000],[3.6000, 3.0000],[3.5000, 3.0000]]) a.shape= torch.Size([4, 2]) ------------------------------分割線------------------------------ a.unsqueeze(0).shape= torch.Size([1, 4, 2]) a.unsqueeze(0)= tensor([[[3.0000, 3.0000],[3.0000, 4.0000],[3.6000, 3.0000],[3.5000, 3.0000]]]) ------------------------------分割線------------------------------ a.unsqueeze(1).shape= torch.Size([4, 1, 2]) a.unsqueeze(1)= tensor([[[3.0000, 3.0000]],[[3.0000, 4.0000]],[[3.6000, 3.0000]],[[3.5000, 3.0000]]]) ------------------------------分割線------------------------------ a.unsqueeze(2).shape= torch.Size([4, 2, 1]) a.unsqueeze(2)= tensor([[[3.0000],[3.0000]],[[3.0000],[4.0000]],[[3.6000],[3.0000]],[[3.5000],[3.0000]]])一個(gè)是順序,一個(gè)逆序,形成一個(gè)閉環(huán)
''' -3 -2 -1 0 1 2 ''' print('a.unsqueeze(-3)==a.unsqueeze(0)',a.unsqueeze(-3)==a.unsqueeze(0))print('a.unsqueeze(-2)==a.unsqueeze(1)',a.unsqueeze(-2)==a.unsqueeze(1))print('a.unsqueeze(-1)==a.unsqueeze(2)',a.unsqueeze(-1)==a.unsqueeze(2)) a.unsqueeze(-3)==a.unsqueeze(0) tensor([[[True, True],[True, True],[True, True],[True, True]]]) a.unsqueeze(-2)==a.unsqueeze(1) tensor([[[True, True]],[[True, True]],[[True, True]],[[True, True]]]) a.unsqueeze(-1)==a.unsqueeze(2) tensor([[[True],[True]],[[True],[True]],[[True],[True]],[[True],[True]]])總結(jié)
以上是生活随笔為你收集整理的torch 的 unsqueeze用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tf.argmax tf2版本
- 下一篇: torch expand