pytorch查看通道數(shù) 維數(shù) 尺寸大小方式
查看tensor
x.shape # 尺寸
x.size() # 形狀
x.ndim # 維數(shù)
例如
import torch parser = argparse.ArgumentParser(description='PyTorch') parser.add_argument('--img_w', default=144, type=int, metavar='imgw', help='img width') parser.add_argument('--img_h', default=288, type=int, metavar='imgh', help='img height') parser.add_argument('--batch-size', default=32, type=int,metavar='B', help='training batch size') parser.add_argument('--test-batch', default=64, type=int, metavar='tb', help='testing batch size') class net(nn.Module): def __init__(self, arch='resnet18'): super(net, self).__init__() model_ft = models.resnet50(pretrained=True) self.visible = model_ft def forward(self, x): print(x.shape) print(x.size()) print(x.ndim) input = self.visible.conv1(x) print(input.shape) print(input.size()) print(input.ndim)
從左至右起,32表示訓(xùn)練集batch_size大小,3是圖像通道數(shù),288是圖像高度,144是圖像寬度,圖像尺寸 288*144,維度個(gè)數(shù)是4。很多博客在介紹論文時(shí)候,沒(méi)有準(zhǔn)確表達(dá)這些參數(shù)名稱,往往出現(xiàn)張冠李戴,導(dǎo)致讀者后續(xù)使用過(guò)程中被老師ma
經(jīng)過(guò)標(biāo)準(zhǔn)resnet50第一層卷積后,結(jié)果是:32表示訓(xùn)練集batch_size大小,64是圖像通道數(shù),72是圖像高度,36是圖像寬度,圖像尺寸72*36,維數(shù)是4
補(bǔ)充知識(shí):pytorch中與維度/變換相關(guān)的幾個(gè)函數(shù)
torch.size ()
先說(shuō)torch.size()函數(shù),因?yàn)楹竺娴姆椒ǘ紩?huì)用這個(gè)方法看到變換后的矩陣的維度
通過(guò)該方法,可以查看當(dāng)前Tensor的維度,用法也很簡(jiǎn)單:
>>>import torch >>>a = torch.Tensor([[[1, 2, 3], [4, 5, 6]]]) >>>a.size() torch.Size([1, 2, 3])
torch.view()
官方文檔中的解釋:
簡(jiǎn)單說(shuō),把原本的tensor尺寸,轉(zhuǎn)變?yōu)槟阆胍某叽?,例如原尺寸?3,現(xiàn)在可以轉(zhuǎn)為32或16等,但一定要保證等式成立,不能目標(biāo)尺寸為33
此外,也可以設(shè)其中一個(gè)尺寸為-1,表示機(jī)器內(nèi)部自己計(jì)算,但同時(shí)只能有一個(gè)為-1,用法如下:
>>> b=a.view(-1, 3, 2) >>> b tensor([[[1., 2.], [3., 4.], [5., 6.]]]) >>> b.size() torch.Size([1, 3, 2])
torch.squeeze() / torch.unsqueeze()
torch.squeeze(n)函數(shù)表示壓縮tensor中第n維為1的維數(shù),比如下面第一個(gè),b.squeeze(2).size(),原始的b為上面的torch.Size([1, 3, 2]),第二維是2≠1,所以不壓縮,尺寸保持不變;而若b.squeeze(0).size(),則發(fā)現(xiàn)第一維為1,因此壓縮為3x2的tensor
>>> b.squeeze(2).size() torch.Size([1, 3, 2]) >>> b.squeeze(0).size() torch.Size([3, 2])
相反的,torch.unsqueeze(n)則是在第n維增加一個(gè)維數(shù)=1,如下,表示在原始的b的第二維增加一維,則尺寸變?yōu)? * 3 * 1 * 2
>>> b.unsqueeze(2).size() torch.Size([1, 3, 1, 2]) >>> b.unsqueeze(2) tensor([[[[1., 2.]], [[3., 4.]], [[5., 6.]]]])
torch.permute()
這個(gè)函數(shù)表示,將原始的tensor,按照自己期望的位置重新排序,例如原始tensor的第0、1、2維分別是1、3、2,那么當(dāng)我執(zhí)行permute(2, 0, 1),則將第三維放在最前,第一維放在中間,第二維放在最后,也就變成了2 * 1 * 3,注意這里表示的維數(shù)的index,而不是具體幾維:
>>> b.permute(2, 0, 1).size() torch.Size([2, 1, 3]) >>> b.permute(2, 0, 1) tensor([[[1., 3., 5.]], [[2., 4., 6.]]])
暫時(shí)只想到這些,若有錯(cuò)誤還請(qǐng)指正,或有其他相關(guān)函數(shù),我也將持續(xù)更新。
以上這篇pytorch查看通道數(shù) 維數(shù) 尺寸大小方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python設(shè)計(jì)模式編程中解釋器模式的簡(jiǎn)單程序示例分享
這篇文章主要介紹了Python設(shè)計(jì)模式編程中解釋器模式的簡(jiǎn)單程序示例分享,解釋器模式強(qiáng)調(diào)用抽象類來(lái)表達(dá)程序中將要實(shí)現(xiàn)的功能,需要的朋友可以參考下2016-03-03使用Python實(shí)現(xiàn)將多表分批次從數(shù)據(jù)庫(kù)導(dǎo)出到Excel
這篇文章主要介紹了使用Python實(shí)現(xiàn)將多表分批次從數(shù)據(jù)庫(kù)導(dǎo)出到Excel,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解
今天小編就為大家分享一篇對(duì)tensorflow 的模型保存和調(diào)用實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07python3實(shí)現(xiàn)倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08淺談Pandas Series 和 Numpy array中的相同點(diǎn)
今天小編就為大家分享一篇淺談Pandas Series 和 Numpy array中的相同點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python數(shù)據(jù)分析的八種處理缺失值方法詳解
缺失值可能是數(shù)據(jù)科學(xué)中最不受歡迎的值,然而,它們總是在身邊。忽略缺失值也是不合理的,因此我們需要找到有效且適當(dāng)?shù)靥幚硭鼈兊姆椒?/div> 2021-11-11最新評(píng)論