Pytorch中torch.unsqueeze()與torch.squeeze()函數(shù)詳細解析
一. torch.squeeze()函數(shù)解析
1. 官網(wǎng)鏈接
torch.squeeze(),如下圖所示:

2. torch.squeeze()函數(shù)解析
torch.squeeze(input, dim=None, out=None)
squeeze()函數(shù)的功能是維度壓縮。返回一個tensor(張量),其中 input 中維度大小為1的所有維都已刪除。
舉個例子:如果 input 的形狀為 (A×1×B×C×1×D),那么返回的tensor的形狀則為 (A×B×C×D)
當給定 dim 時,那么只在給定的維度(dimension)上進行壓縮操作,注意給定的維度大小必須是1,否則不能進行壓縮。
舉個例子:如果 input 的形狀為 (A×1×B),squeeze(input, dim=0)后,返回的tensor不變,因為第0維的大小為A,不是1;squeeze(input, 1)后,返回的tensor將被壓縮為 (A×B)。
3. 代碼舉例
3.1 輸入size=(2, 1, 2, 1, 2)的張量
x = torch.randn(size=(2, 1, 2, 1, 2)) x.shape
輸出結(jié)果如下:
torch.Size([2, 1, 2, 1, 2])
3.2 把x中維度大小為1的所有維都已刪除
y = torch.squeeze(x)#表示把x中維度大小為1的所有維都已刪除 y.shape
輸出結(jié)果如下:
torch.Size([2, 2, 2])
3.3 把x中第一維刪除,但是第一維大小為2,不為1,因此結(jié)果刪除不掉
y = torch.squeeze(x,0)#表示把x中第一維刪除,但是第一維大小為2,不為1,因此結(jié)果刪除不掉 y.shape
輸出結(jié)果如下:
torch.Size([2, 1, 2, 1, 2])
3.4 把x中第二維刪除,因為第二維大小是1,因此可以刪掉
y = torch.squeeze(x,1)#表示把x中第二維刪除,因為第二維大小是1,因此可以刪掉 y.shape
輸出結(jié)果如下:
torch.Size([2, 2, 1, 2])
3.5 把x中最后一維刪除,但是最后一維大小為2,不為1,因此結(jié)果刪除不掉
y = torch.squeeze(x,dim=-1)#表示把x中最后一維刪除,但是最后一維大小為2,不為1,因此結(jié)果刪除不掉 y.shape
輸出結(jié)果如下:
torch.Size([2, 1, 2, 1, 2])
二.torch.unsqueeze()函數(shù)解析
1. 官網(wǎng)鏈接
torch.unsqueeze(),如下圖所示:

2. torch.unsqueeze()函數(shù)解析
torch.unsqueeze(input, dim) → Tensor
unsqueeze()函數(shù)起升維的作用,參數(shù)dim表示在哪個地方加一個維度,注意dim范圍在:[-input.dim() - 1, input.dim() + 1]之間,比如輸入input是一維,則dim=0時數(shù)據(jù)為行方向擴,dim=1時為列方向擴,再大錯誤。
3. 代碼舉例
3.1 輸入一維張量,在第0維(行)擴展,第0維大小為1
x = torch.tensor([1, 2, 3, 4]) y = torch.unsqueeze(x, 0)#在第0維擴展,第0維大小為1 y,y.shape
輸出結(jié)果如下:
(tensor([[1, 2, 3, 4]]), torch.Size([1, 4]))
3.2 在第1維(列)擴展,第1維大小為1
y = torch.unsqueeze(x, 1)#在第1維擴展,第1維大小為1 y,y.shape
輸出結(jié)果如下:
(tensor([[1],
[2],
[3],
[4]]),
torch.Size([4, 1]))
3.3 在第最后一維(也就是倒數(shù)第一維進行)擴展,最后一維大小為1
y = torch.unsqueeze(x, -1)#在第最后一維擴展,最后一維大小為1 y,y.shape
輸出結(jié)果如下:
(tensor([[1],
[2],
[3],
[4]]),
torch.Size([4, 1]))
總結(jié)
到此這篇關(guān)于Pytorch中torch.unsqueeze()與torch.squeeze()函數(shù)的文章就介紹到這了,更多相關(guān)Pytorch torch.unsqueeze()與torch.squeeze()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pycharm保存不能自動同步到遠程服務(wù)器的解決方法
今天小編就為大家分享一篇Pycharm保存不能自動同步到遠程服務(wù)器的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
requests.gPython?用requests.get獲取網(wǎng)頁內(nèi)容為空?’?’問題
這篇文章主要介紹了requests.gPython?用requests.get獲取網(wǎng)頁內(nèi)容為空?’?’,溫行首先舉例說明,具有一定得參考價值,需要的小伙伴可以參考一下2022-01-01
Python使用openpyxl批量處理數(shù)據(jù)
openpyxl 是一個用于處理 xlsx 格式Excel表格文件的第三方python庫,其支持Excel表格絕大多數(shù)基本操作。本文給大家介紹Python使用openpyxl批量處理數(shù)據(jù)的操作方法,感興趣的朋友一起看看吧2021-06-06
Python?Type?Hints?學(xué)習(xí)之從入門到實踐
Type?Hints(類型注解)進一步強化了Python是一門強類型語言的特性,它在?Python3.5?中第一次被引入。使用Type?Hints可以讓我們編寫出帶有類型的Python代碼,本文將詳細介紹一下Type?Hints,感興趣的小伙伴可以關(guān)注一下2021-11-11
簡單談?wù)凱ython中的元祖(Tuple)和字典(Dict)
這篇文章主要介紹了關(guān)于Python中元祖(Tuple)和字典(Dict)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04

